[NTOS:EX]
authorThomas Faber <thomas.faber@reactos.org>
Sat, 10 Jun 2017 07:59:50 +0000 (07:59 +0000)
committerThomas Faber <thomas.faber@reactos.org>
Sat, 10 Jun 2017 07:59:50 +0000 (07:59 +0000)
- Stub NtQuerySystemInformation:SystemExtendedHandleInformation. Avoids crashes in the upcoming ntdll_winetest sync.
CORE-13368 #resolve

svn path=/trunk/; revision=74980

reactos/ntoskrnl/ex/sysinfo.c
reactos/sdk/include/ndk/extypes.h

index b9fed78..15b6c85 100644 (file)
@@ -2372,6 +2372,27 @@ QSI_DEF(SystemNumaAvailableMemory)
     return STATUS_SUCCESS;
 }
 
+/* Class 64 - Extended handle information  */
+QSI_DEF(SystemExtendedHandleInformation)
+{
+    PSYSTEM_HANDLE_INFORMATION_EX HandleInformation = (PSYSTEM_HANDLE_INFORMATION_EX)Buffer;
+
+    DPRINT1("NtQuerySystemInformation - SystemExtendedHandleInformation not implemented\n");
+
+    /* Set initial required buffer size */
+    *ReqSize = FIELD_OFFSET(SYSTEM_HANDLE_INFORMATION_EX, Handle);
+
+    /* Validate input size */
+    if (Size < *ReqSize)
+    {
+        return STATUS_INFO_LENGTH_MISMATCH;
+    }
+
+    /* FIXME */
+    HandleInformation->Count = 0;
+    return STATUS_NOT_IMPLEMENTED;
+}
+
 
 /* Query/Set Calls Table */
 typedef
@@ -2455,7 +2476,11 @@ CallQS [] =
     SI_QX(SystemExtendedProcessInformation),
     SI_QX(SystemRecommendedSharedDataAlignment),
     SI_XX(SystemComPlusPackage),
-    SI_QX(SystemNumaAvailableMemory)
+    SI_QX(SystemNumaAvailableMemory),
+    SI_XX(SystemProcessorPowerInformation), /* FIXME: not implemented */
+    SI_XX(SystemEmulationBasicInformation), /* FIXME: not implemented */
+    SI_XX(SystemEmulationProcessorInformation), /* FIXME: not implemented */
+    SI_QX(SystemExtendedHandleInformation),
 };
 
 C_ASSERT(SystemBasicInformation == 0);
index c2478c9..feaf7b9 100644 (file)
@@ -1398,7 +1398,29 @@ typedef struct _SYSTEM_NUMA_INFORMATION
     };
 } SYSTEM_NUMA_INFORMATION, *PSYSTEM_NUMA_INFORMATION;
 
-// FIXME: Class 56-97
+// FIXME: Class 56-63
+
+// Class 64
+typedef struct _SYSTEM_HANDLE_TABLE_ENTRY_INFO_EX
+{
+    PVOID Object;
+    ULONG_PTR UniqueProcessId;
+    ULONG_PTR HandleValue;
+    ULONG GrantedAccess;
+    USHORT CreatorBackTraceIndex;
+    USHORT ObjectTypeIndex;
+    ULONG HandleAttributes;
+    ULONG Reserved;
+} SYSTEM_HANDLE_TABLE_ENTRY_INFO_EX, *PSYSTEM_HANDLE_TABLE_ENTRY_INFO_EX;
+
+typedef struct _SYSTEM_HANDLE_INFORMATION_EX
+{
+    ULONG_PTR Count;
+    ULONG_PTR Reserved;
+    SYSTEM_HANDLE_TABLE_ENTRY_INFO_EX Handle[1];
+} SYSTEM_HANDLE_INFORMATION_EX, *PSYSTEM_HANDLE_INFORMATION_EX;
+
+// FIXME: Class 65-97
 
 //
 // Hotpatch flags