From f5362e927fc625d83715dce0e24862cd7cb57b53 Mon Sep 17 00:00:00 2001 From: Thomas Faber Date: Sat, 10 Jun 2017 07:59:50 +0000 Subject: [PATCH] [NTOS:EX] - Stub NtQuerySystemInformation:SystemExtendedHandleInformation. Avoids crashes in the upcoming ntdll_winetest sync. CORE-13368 #resolve svn path=/trunk/; revision=74980 --- reactos/ntoskrnl/ex/sysinfo.c | 27 ++++++++++++++++++++++++++- reactos/sdk/include/ndk/extypes.h | 24 +++++++++++++++++++++++- 2 files changed, 49 insertions(+), 2 deletions(-) diff --git a/reactos/ntoskrnl/ex/sysinfo.c b/reactos/ntoskrnl/ex/sysinfo.c index b9fed78a819..15b6c85fd2e 100644 --- a/reactos/ntoskrnl/ex/sysinfo.c +++ b/reactos/ntoskrnl/ex/sysinfo.c @@ -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); diff --git a/reactos/sdk/include/ndk/extypes.h b/reactos/sdk/include/ndk/extypes.h index c2478c96123..feaf7b95df5 100644 --- a/reactos/sdk/include/ndk/extypes.h +++ b/reactos/sdk/include/ndk/extypes.h @@ -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 -- 2.17.1