diff --git a/src/core/hle/service/am/am.cpp b/src/core/hle/service/am/am.cpp
index c575dc478..919a12962 100644
--- a/src/core/hle/service/am/am.cpp
+++ b/src/core/hle/service/am/am.cpp
@@ -701,11 +701,21 @@ void ListDataTitleTicketInfos(Service::Interface* self) {
                 ticket_count, title_id, start_index, ticket_info_out);
 }
 
-void GetNumContentInfos(Service::Interface* self) {
+void GetDLCContentInfoCount(Service::Interface* self) {
     IPC::RequestParser rp(Kernel::GetCommandBuffer(), 0x1001, 3, 0); // 0x100100C0
     auto media_type = static_cast<Service::FS::MediaType>(rp.Pop<u8>());
     u64 title_id = rp.Pop<u64>();
 
+    // Validate that only DLC TIDs are passed in
+    u32 tid_high = static_cast<u32>(title_id >> 32);
+    if (tid_high != TID_HIGH_DLC) {
+        IPC::RequestBuilder rb = rp.MakeBuilder(2, 2);
+        rb.Push(ResultCode(ErrCodes::InvalidTID, ErrorModule::AM, ErrorSummary::InvalidArgument,
+                           ErrorLevel::Usage));
+        rb.Push<u32>(0);
+        return;
+    }
+
     IPC::RequestBuilder rb = rp.MakeBuilder(2, 0);
     rb.Push(RESULT_SUCCESS); // No error
 
diff --git a/src/core/hle/service/am/am.h b/src/core/hle/service/am/am.h
index 8a2887bcd..04493d943 100644
--- a/src/core/hle/service/am/am.h
+++ b/src/core/hle/service/am/am.h
@@ -22,6 +22,7 @@ namespace AM {
 namespace ErrCodes {
 enum {
     CIACurrentlyInstalling = 4,
+    InvalidTID = 31,
     EmptyCIA = 32,
     InvalidTIDInList = 60,
     InvalidCIAHeader = 104,
@@ -204,7 +205,8 @@ void GetPatchTitleInfos(Service::Interface* self);
 void ListDataTitleTicketInfos(Service::Interface* self);
 
 /**
- * AM::GetNumContentInfos service function
+ * AM::GetDLCContentInfoCount service function
+ * Explicitly checks that TID high value is 0004008C or an error is returned.
  *  Inputs:
  *      0 : Command header (0x100100C0)
  *      1 : MediaType
@@ -213,7 +215,7 @@ void ListDataTitleTicketInfos(Service::Interface* self);
  *      1 : Result, 0 on success, otherwise error code
  *      2 : Number of content infos plus one
  */
-void GetNumContentInfos(Service::Interface* self);
+void GetDLCContentInfoCount(Service::Interface* self);
 
 /**
  * AM::DeleteTicket service function
diff --git a/src/core/hle/service/am/am_app.cpp b/src/core/hle/service/am/am_app.cpp
index 4007e2d1c..2be9582bb 100644
--- a/src/core/hle/service/am/am_app.cpp
+++ b/src/core/hle/service/am/am_app.cpp
@@ -9,7 +9,7 @@ namespace Service {
 namespace AM {
 
 const Interface::FunctionInfo FunctionTable[] = {
-    {0x100100C0, GetNumContentInfos, "GetNumContentInfos"},
+    {0x100100C0, GetDLCContentInfoCount, "GetDLCContentInfoCount"},
     {0x10020104, FindDLCContentInfos, "FindDLCContentInfos"},
     {0x10030142, ListDLCContentInfos, "ListDLCContentInfos"},
     {0x10040102, DeleteContents, "DeleteContents"},
diff --git a/src/core/hle/service/am/am_sys.cpp b/src/core/hle/service/am/am_sys.cpp
index 921221f39..a809ef4ca 100644
--- a/src/core/hle/service/am/am_sys.cpp
+++ b/src/core/hle/service/am/am_sys.cpp
@@ -54,7 +54,7 @@ const Interface::FunctionInfo FunctionTable[] = {
     {0x002B0142, nullptr, "ListExistingContentInfosSystem"},
     {0x002C0084, nullptr, "GetProgramInfosIgnorePlatform"},
     {0x002D00C0, CheckContentRightsIgnorePlatform, "CheckContentRightsIgnorePlatform"},
-    {0x100100C0, GetNumContentInfos, "GetNumContentInfos"},
+    {0x100100C0, GetDLCContentInfoCount, "GetDLCContentInfoCount"},
     {0x10020104, FindDLCContentInfos, "FindDLCContentInfos"},
     {0x10030142, ListDLCContentInfos, "ListDLCContentInfos"},
     {0x10040102, DeleteContents, "DeleteContents"},