Fixed some system information stuff

svn path=/trunk/; revision=1423
This commit is contained in:
Eric Kohl 2000-11-04 13:52:12 +00:00
parent 3f82e28a32
commit 93647509cc
4 changed files with 307 additions and 293 deletions

View file

@ -120,48 +120,48 @@ enum _SYSTEM_INFORMATION_CLASS
SystemBasicInformation = 0, /* Q */ SystemBasicInformation = 0, /* Q */
SystemProcessorInformation = 1, /* Q */ SystemProcessorInformation = 1, /* Q */
SystemPerformanceInformation = 2, /* Q */ SystemPerformanceInformation = 2, /* Q */
SystemTimeInformation = 3, /* Q */ SystemTimeOfDayInformation = 3, /* Q */
SystemPathInformation = 4, SystemPathInformation = 4, /* Q (checked build only) */
SystemProcessInformation = 5, /* Q */ SystemProcessInformation = 5, /* Q */
SystemServiceDescriptorTableInfo = 6, /* Q */ SystemCallCountInfoInformation = 6, /* Q */
SystemIoConfigInformation = 7, /* Q */ SystemDeviceInformation = 7, /* Q */
SystemProcessorTimeInformation = 8, /* Q */ SystemProcessorPerformanceInformation = 8, /* Q */
SystemNtGlobalFlagInformation = 9, /* QS */ SystemFlagsInformation = 9, /* QS */
SystemInformation10 = 10, SystemCallTimeInformation = 10,
SystemModuleInformation = 11, /* Q */ SystemModuleInformation = 11, /* Q */
SystemResourceLockInformation = 12, /* Q */ SystemLocksInformation = 12, /* Q */
SystemInformation13 = 13, SystemStackTraceInformation = 13,
SystemInformation14 = 14, SystemPagedPoolInformation = 14,
SystemInformation15 = 15, SystemNonPagedPoolInformation = 15,
SystemHandleInformation = 16, /* Q */ SystemHandleInformation = 16, /* Q */
SystemObjectInformation = 17, /* Q */ SystemObjectInformation = 17, /* Q */
SystemPageFileInformation = 18, /* Q */ SystemPageFileInformation = 18, /* Q */
SystemInstructionEmulationInfo = 19, /* Q */ SystemVdmInstemulInformation = 19, /* Q */
SystemInformation20 = 20, SystemVdmBopInformation = 20,
SystemCacheInformation = 21, /* QS */ SystemFileCacheInformation = 21, /* QS */
SystemPoolTagInformation = 22, /* Q (checked build only) */ SystemPoolTagInformation = 22, /* Q (checked build only) */
SystemProcessorScheduleInfo = 23, /* Q */ SystemInterruptInformation = 23, /* Q */
SystemDpcInformation = 24, /* QS */ SystemDpcBehaviourInformation = 24, /* QS */
SystemFullMemoryInformation = 25, SystemFullMemoryInformation = 25,
SystemLoadGdiDriverInformation = 26, /* S (callable) */ SystemLoadGdiDriverInformation = 26, /* S (callable) */
SystemUnloadGdiDriverInformation = 27, /* S (callable) */ SystemUnloadGdiDriverInformation = 27, /* S (callable) */
SystemTimeAdjustmentInformation = 28, /* QS */ SystemTimeAdjustmentInformation = 28, /* QS */
SystemInformation29 = 29, SystemSummryMemoryInformation = 29,
SystemInformation30 = 30, SystemNextEventIdInformation = 30,
SystemInformation31 = 31, SystemEventIdsInformation = 31,
SystemCrashDumpSectionInfo = 32, /* Q */ SystemCrashDumpInformation = 32, /* Q */
SystemProcessorFaultCountInfo = 33, /* Q */ SystemExceptionInformation = 33, /* Q */
SystemCrashDumpStateInfo = 34, /* Q */ SystemCrashDumpStateInformation = 34, /* Q */
SystemDebuggerInformation = 35, /* Q */ SystemKernelDebuggerInformation = 35, /* Q */
SystemThreadSwitchCountersInfo = 36, /* Q */ SystemContextSwitchInformation = 36, /* Q */
SystemQuotaInformation = 37, /* QS */ SystemRegistryQuotaInformation = 37, /* QS */
SystemLoadDriver = 38, /* S */ SystemExtendServiceTableInformation = 38, /* S */
SystemPrioritySeparationInfo = 39, /* S */ SystemPrioritySeperation = 39, /* S */
SystemInformation40 = 40, SystemPlugPlayBusInformation = 40,
SystemInformation41 = 41, SystemDockInformation = 41,
SystemInformation42 = 42, SystemPowerInformation = 42,
SystemInformation43 = 43, SystemProcessorSpeedInformation = 43,
SystemTimeZoneInformation = 44, /* QS */ SystemCurrentTimeZoneInformation = 44, /* QS */
SystemLookasideInformation = 45, /* Q */ SystemLookasideInformation = 45, /* Q */
SystemInformationClassMax SystemInformationClassMax
@ -171,62 +171,60 @@ enum _SYSTEM_INFORMATION_CLASS
typedef typedef
struct _SYSTEM_BASIC_INFORMATION struct _SYSTEM_BASIC_INFORMATION
{ {
DWORD AlwaysZero; ULONG Reserved;
ULONG KeMaximumIncrement; ULONG TimerResolution;
ULONG MmPageSize; ULONG PageSize;
ULONG MmNumberOfPhysicalPages; ULONG NumberOfPhysicalPages;
ULONG MmLowestPhysicalPage; ULONG LowestPhysicalPageNumber;
ULONG MmHighestPhysicalPage; ULONG HighestPhysicalPageNumber;
PVOID MmLowestUserAddress; ULONG AllocationGranularity;
PVOID MmLowestUserAddress1; ULONG MinimumUserModeAddress;
PVOID MmHighestUserAddress; ULONG MaximumUserModeAddress;
DWORD KeActiveProcessors; KAFFINITY ActiveProcessorsAffinityMask;
USHORT KeNumberProcessors; CCHAR NumberOfProcessors;
} SYSTEM_BASIC_INFORMATION, *PSYSTEM_BASIC_INFORMATION; } SYSTEM_BASIC_INFORMATION, *PSYSTEM_BASIC_INFORMATION;
// SystemProcessorInformation (1) // SystemProcessorInformation (1)
typedef typedef
struct _SYSTEM_PROCESSOR_INFORMATION struct _SYSTEM_PROCESSOR_INFORMATION
{ {
USHORT KeProcessorArchitecture; USHORT ProcessorArchitecture;
USHORT KeProcessorLevel; USHORT ProcessorLevel;
USHORT KeProcessorRevision; USHORT ProcessorRevision;
USHORT AlwaysZero; USHORT Reserved;
DWORD KeFeatureBits; ULONG ProcessorFeatureBits;
} SYSTEM_PROCESSOR_INFORMATION, *PSYSTEM_PROCESSOR_INFORMATION; } SYSTEM_PROCESSOR_INFORMATION, *PSYSTEM_PROCESSOR_INFORMATION;
// SystemPerformanceInfo (2) // SystemPerformanceInfo (2)
typedef typedef
struct _SYSTEM_PERFORMANCE_INFO struct _SYSTEM_PERFORMANCE_INFORMATION
{ {
LARGE_INTEGER TotalProcessorTime; LARGE_INTEGER IdleProcessorTime;
LARGE_INTEGER IoReadTransferCount; LARGE_INTEGER IoReadTransferCount;
LARGE_INTEGER IoWriteTransferCount; LARGE_INTEGER IoWriteTransferCount;
LARGE_INTEGER IoOtherTransferCount; LARGE_INTEGER IoOtherTransferCount;
ULONG IoReadOperationCount; ULONG IoReadOperationCount;
ULONG IoWriteOperationCount; ULONG IoWriteOperationCount;
ULONG IoOtherOperationCount; ULONG IoOtherOperationCount;
ULONG MmAvailablePages; ULONG AvailablePages;
ULONG MmTotalCommitedPages; ULONG CommitedPages;
ULONG MmTotalCommitLimit; ULONG CommitLimit;
ULONG MmPeakLimit; ULONG PeakCommitment;
ULONG PageFaults; ULONG PageFaultCount;
ULONG WriteCopies; ULONG CopyOnWriteCount;
ULONG TransitionFaults; ULONG TransitionCount;
ULONG Unknown1; ULONG CacheTransitionCount;
ULONG DemandZeroFaults; ULONG DemandZeroCount;
ULONG PagesInput; ULONG PageReadCount;
ULONG PagesRead; ULONG PageReadIoCount;
ULONG Unknown2; ULONG CacheReadCount;
ULONG Unknown3; ULONG CacheIoCount;
ULONG PagesOutput; ULONG DirtyPagesWriteCount;
ULONG PageWrites; ULONG DirtyWriteIoCount;
ULONG Unknown4; ULONG MappedPagesWriteCount;
ULONG Unknown5; ULONG MappedWriteIoCount;
ULONG PoolPagedBytes; ULONG PagedPoolPages;
ULONG PoolNonPagedBytes; ULONG NonPagedPoolPages;
ULONG Unknown6; ULONG Unknown6;
ULONG Unknown7; ULONG Unknown7;
ULONG Unknown8; ULONG Unknown8;
@ -278,17 +276,16 @@ struct _SYSTEM_PERFORMANCE_INFO
} SYSTEM_PERFORMANCE_INFO, *PSYSTEM_PERFORMANCE_INFO; } SYSTEM_PERFORMANCE_INFO, *PSYSTEM_PERFORMANCE_INFO;
// SystemTimeInformation (3) // SystemTimeOfDayInformation (3)
typedef typedef
struct _SYSTEM_TIME_INFORMATION struct _SYSTEM_TIMEOFDAY_INFORMATION
{ {
TIME KeBootTime; LARGE_INTEGER BootTime;
TIME KeSystemTime; LARGE_INTEGER CurrentTime;
TIME ExpTimeZoneBias; LARGE_INTEGER TimeZoneBias;
ULONG ExpTimeZoneId; ULONG TimeZoneId;
ULONG Unused; ULONG Reserved;
} SYSTEM_TIMEOFDAY_INFORMATION, *PSYSTEM_TIMEOFDAY_INFORMATION;
} SYSTEM_TIME_INFORMATION, *PSYSTEM_TIME_INFORMATION;
// SystemPathInformation (4) // SystemPathInformation (4)
// IT DOES NOT WORK // IT DOES NOT WORK
@ -299,7 +296,7 @@ struct _SYSTEM_PATH_INFORMATION
} SYSTEM_PATH_INFORMATION, * PSYSTEM_PATH_INFORMATION; } SYSTEM_PATH_INFORMATION, * PSYSTEM_PATH_INFORMATION;
// SystemProcessThreadInfo (5) // SystemProcessInformation (5)
typedef typedef
struct _SYSTEM_THREAD_INFORMATION struct _SYSTEM_THREAD_INFORMATION
{ {
@ -348,7 +345,7 @@ struct SYSTEM_PROCESS_INFORMATION
} SYSTEM_PROCESS_INFORMATION, *PSYSTEM_PROCESS_INFORMATION; } SYSTEM_PROCESS_INFORMATION, *PSYSTEM_PROCESS_INFORMATION;
// SystemServiceDescriptorTableInfo (6) // SystemCallCountInformation (6)
typedef typedef
struct _SYSTEM_SDT_INFORMATION struct _SYSTEM_SDT_INFORMATION
{ {
@ -359,20 +356,19 @@ struct _SYSTEM_SDT_INFORMATION
} SYSTEM_SDT_INFORMATION, *PSYSTEM_SDT_INFORMATION; } SYSTEM_SDT_INFORMATION, *PSYSTEM_SDT_INFORMATION;
// SystemIoConfigInformation (7) // SystemDeviceInformation (7)
typedef typedef
struct _SYSTEM_IOCONFIG_INFORMATION struct _SYSTEM_DEVICE_INFORMATION
{ {
ULONG DiskCount; ULONG NumberOfDisks;
ULONG FloppyCount; ULONG NumberOfFloppies;
ULONG CdRomCount; ULONG NumberOfCdRoms;
ULONG TapeCount; ULONG NumberOfTapes;
ULONG SerialCount; ULONG NumberOfSerialPorts;
ULONG ParallelCount; ULONG NumberOfParallelPorts;
} SYSTEM_DEVICE_INFORMATION, *PSYSTEM_DEVICE_INFORMATION;
} SYSTEM_IOCONFIG_INFORMATION, *PSYSTEM_IOCONFIG_INFORMATION;
// SystemProcessorTimeInformation (8) // SystemProcessorPerformanceInformation (8)
typedef typedef
struct _SYSTEM_PROCESSORTIME_INFO struct _SYSTEM_PROCESSORTIME_INFO
{ {
@ -383,18 +379,18 @@ struct _SYSTEM_PROCESSORTIME_INFO
TIME TotalInterruptTime; TIME TotalInterruptTime;
ULONG TotalInterrupts; ULONG TotalInterrupts;
ULONG Unused; ULONG Unused;
} SYSTEM_PROCESSORTIME_INFO, *PSYSTEM_PROCESSORTIME_INFO; } SYSTEM_PROCESSORTIME_INFO, *PSYSTEM_PROCESSORTIME_INFO;
// SystemNtGlobalFlagInformation (9) // SystemFlagsInformation (9)
typedef typedef
struct _SYSTEM_GLOBAL_FLAG_INFO struct _SYSTEM_FLAGS_INFORMATION
{ {
ULONG NtGlobalFlag; ULONG Flags;
} SYSTEM_GLOBAL_FLAG_INFO, * PSYSTEM_GLOBAL_FLAG_INFO; } SYSTEM_FLAGS_INFORMATION, * PSYSTEM_FLAGS_INFORMATION;
// SystemInformation10 (10) // SystemCallTimeInformation (10)
// UNKNOWN // UNKNOWN
// SystemModuleInformation (11) // SystemModuleInformation (11)
@ -421,7 +417,7 @@ struct _SYSTEM_MODULE_INFORMATION
} SYSTEM_MODULE_INFORMATION, *PSYSTEM_MODULE_INFORMATION; } SYSTEM_MODULE_INFORMATION, *PSYSTEM_MODULE_INFORMATION;
// SystemResourceLockInformation (12) // SystemLocksInformation (12)
typedef typedef
struct _SYSTEM_RESOURCE_LOCK_ENTRY struct _SYSTEM_RESOURCE_LOCK_ENTRY
{ {

View file

@ -1,4 +1,4 @@
/* $Id: sysinfo.c,v 1.1 2000/04/25 23:22:54 ea Exp $ /* $Id: sysinfo.c,v 1.2 2000/11/04 13:52:12 ekohl Exp $
* *
* reactos/lib/kernel32/misc/sysinfo.c * reactos/lib/kernel32/misc/sysinfo.c
* *
@ -52,14 +52,14 @@ GetSystemInfo (
* PROCESSOR_ARCHITECTURE_PPC 3 * PROCESSOR_ARCHITECTURE_PPC 3
* PROCESSOR_ARCHITECTURE_UNKNOWN 0xFFFF * PROCESSOR_ARCHITECTURE_UNKNOWN 0xFFFF
*/ */
Si->u.s.wProcessorArchitecture = Spi.KeProcessorArchitecture; Si->u.s.wProcessorArchitecture = Spi.ProcessorArchitecture;
/* For future use: always zero */ /* For future use: always zero */
Si->u.s.wReserved = 0; Si->u.s.wReserved = 0;
Si->dwPageSize = Sbi.MmPageSize; Si->dwPageSize = Sbi.PageSize;
Si->lpMinimumApplicationAddress = Sbi.MmLowestUserAddress; Si->lpMinimumApplicationAddress = (PVOID)Sbi.MinimumUserModeAddress;
Si->lpMaximumApplicationAddress = Sbi.MmHighestUserAddress; Si->lpMaximumApplicationAddress = (PVOID)Sbi.MaximumUserModeAddress;
Si->dwActiveProcessorMask = Sbi.KeActiveProcessors; Si->dwActiveProcessorMask = Sbi.ActiveProcessorsAffinityMask;
Si->dwNumberOfProcessors = Sbi.KeNumberProcessors; Si->dwNumberOfProcessors = Sbi.NumberOfProcessors;
/* /*
* Compatibility: * Compatibility:
* PROCESSOR_INTEL_386 386 * PROCESSOR_INTEL_386 386
@ -69,7 +69,7 @@ GetSystemInfo (
* PROCESSOR_ALPHA_21064 21064 * PROCESSOR_ALPHA_21064 21064
*/ */
#if 0 #if 0
switch (Spi.KeProcessorArchitecture) switch (Spi.ProcessorArchitecture)
{ {
case : case :
#endif #endif
@ -78,8 +78,8 @@ GetSystemInfo (
break; break;
} }
#endif #endif
Si->dwAllocationGranularity = 65536; /* hard coded on Intel? */ Si->dwAllocationGranularity = Sbi.AllocationGranularity;
Si->wProcessorRevision = Spi.KeProcessorRevision; Si->wProcessorRevision = Spi.ProcessorRevision;
/* /*
* Get the version of Windows on which * Get the version of Windows on which
* the process expects to run. * the process expects to run.

View file

@ -1,4 +1,4 @@
/* $Id: time.c,v 1.7 2000/06/29 23:35:32 dwelch Exp $ /* $Id: time.c,v 1.8 2000/11/04 13:51:41 ekohl Exp $
* *
* COPYRIGHT: See COPYING in the top level directory * COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel * PROJECT: ReactOS kernel
@ -274,18 +274,18 @@ RtlLocalTimeToSystemTime (
PLARGE_INTEGER SystemTime PLARGE_INTEGER SystemTime
) )
{ {
SYSTEM_TIME_INFORMATION TimeInformation; SYSTEM_TIMEOFDAY_INFORMATION TimeInformation;
NTSTATUS Status; NTSTATUS Status;
Status = NtQuerySystemInformation (SystemTimeInformation, Status = NtQuerySystemInformation (SystemTimeOfDayInformation,
&TimeInformation, &TimeInformation,
sizeof(SYSTEM_TIME_INFORMATION), sizeof(SYSTEM_TIMEOFDAY_INFORMATION),
NULL); NULL);
if (!NT_SUCCESS(Status)) if (!NT_SUCCESS(Status))
return Status; return Status;
SystemTime->QuadPart = LocalTime->QuadPart + SystemTime->QuadPart = LocalTime->QuadPart +
TimeInformation.ExpTimeZoneBias.QuadPart; TimeInformation.TimeZoneBias.QuadPart;
return STATUS_SUCCESS; return STATUS_SUCCESS;
} }
@ -298,18 +298,18 @@ RtlSystemTimeToLocalTime (
PLARGE_INTEGER LocalTime PLARGE_INTEGER LocalTime
) )
{ {
SYSTEM_TIME_INFORMATION TimeInformation; SYSTEM_TIMEOFDAY_INFORMATION TimeInformation;
NTSTATUS Status; NTSTATUS Status;
Status = NtQuerySystemInformation (SystemTimeInformation, Status = NtQuerySystemInformation (SystemTimeOfDayInformation,
&TimeInformation, &TimeInformation,
sizeof(SYSTEM_TIME_INFORMATION), sizeof(SYSTEM_TIMEOFDAY_INFORMATION),
NULL); NULL);
if (!NT_SUCCESS(Status)) if (!NT_SUCCESS(Status))
return Status; return Status;
LocalTime->QuadPart = SystemTime->QuadPart - LocalTime->QuadPart = SystemTime->QuadPart -
TimeInformation.ExpTimeZoneBias.QuadPart; TimeInformation.TimeZoneBias.QuadPart;
return STATUS_SUCCESS; return STATUS_SUCCESS;
} }

View file

@ -1,4 +1,4 @@
/* $Id: sysinfo.c,v 1.7 2000/10/22 16:36:49 ekohl Exp $ /* $Id: sysinfo.c,v 1.8 2000/11/04 13:51:03 ekohl Exp $
* *
* COPYRIGHT: See COPYING in the top level directory * COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel * PROJECT: ReactOS kernel
@ -75,17 +75,17 @@ QSI_DEF(SystemBasicInformation)
return (STATUS_INFO_LENGTH_MISMATCH); return (STATUS_INFO_LENGTH_MISMATCH);
} }
Sbi->AlwaysZero = 0; Sbi->Reserved = 0;
Sbi->KeMaximumIncrement = 0; /* FIXME */ Sbi->TimerResolution = 0; /* FIXME */
Sbi->MmPageSize = PAGESIZE; /* FIXME: it should be PAGE_SIZE */ Sbi->PageSize = PAGESIZE; /* FIXME: it should be PAGE_SIZE */
Sbi->MmNumberOfPhysicalPages = 0; /* FIXME */ Sbi->NumberOfPhysicalPages = 0; /* FIXME */
Sbi->MmLowestPhysicalPage = 0; /* FIXME */ Sbi->LowestPhysicalPageNumber = 0; /* FIXME */
Sbi->MmHighestPhysicalPage = 0; /* FIXME */ Sbi->HighestPhysicalPageNumber = 0; /* FIXME */
Sbi->MmLowestUserAddress = 0; /* FIXME */ Sbi->AllocationGranularity = 65536; /* hard coded on Intel? */
Sbi->MmLowestUserAddress1 = 0; /* FIXME */ Sbi->MinimumUserModeAddress = 0; /* FIXME */
Sbi->MmHighestUserAddress = 0; /* FIXME */ Sbi->MaximumUserModeAddress = 0; /* FIXME */
Sbi->KeActiveProcessors = 0x00000001; /* FIXME */ Sbi->ActiveProcessorsAffinityMask = 0x00000001; /* FIXME */
Sbi->KeNumberProcessors = 1; /* FIXME */ Sbi->NumberOfProcessors = 1; /* FIXME */
return (STATUS_SUCCESS); return (STATUS_SUCCESS);
} }
@ -106,17 +106,17 @@ QSI_DEF(SystemProcessorInformation)
} }
/* FIXME: add CPU type detection code */ /* FIXME: add CPU type detection code */
Spi->KeProcessorArchitecture = 0; /* FIXME */ Spi->ProcessorArchitecture = 0; /* FIXME */
Spi->KeProcessorLevel = 0; /* FIXME */ Spi->ProcessorLevel = 0; /* FIXME */
Spi->KeProcessorRevision = 0; /* FIXME */ Spi->ProcessorRevision = 0; /* FIXME */
Spi->AlwaysZero = 0; Spi->Reserved = 0;
Spi->KeFeatureBits = 0x00000000; /* FIXME */ Spi->ProcessorFeatureBits = 0x00000000; /* FIXME */
return (STATUS_SUCCESS); return (STATUS_SUCCESS);
} }
/* Class 2 - Performance Information */ /* Class 2 - Performance Information */
QSI_DEF(SystemPerformanceInfo) QSI_DEF(SystemPerformanceInformation)
{ {
PSYSTEM_PERFORMANCE_INFO Spi PSYSTEM_PERFORMANCE_INFO Spi
= (PSYSTEM_PERFORMANCE_INFO) Buffer; = (PSYSTEM_PERFORMANCE_INFO) Buffer;
@ -130,32 +130,32 @@ QSI_DEF(SystemPerformanceInfo)
return (STATUS_INFO_LENGTH_MISMATCH); return (STATUS_INFO_LENGTH_MISMATCH);
} }
Spi->TotalProcessorTime.QuadPart = 0; /* FIXME */ Spi->IdleProcessorTime.QuadPart = 0; /* FIXME */
Spi->IoReadTransferCount.QuadPart = 0; /* FIXME */ Spi->IoReadTransferCount.QuadPart = 0; /* FIXME */
Spi->IoWriteTransferCount.QuadPart = 0; /* FIXME */ Spi->IoWriteTransferCount.QuadPart = 0; /* FIXME */
Spi->IoOtherTransferCount.QuadPart = 0; /* FIXME */ Spi->IoOtherTransferCount.QuadPart = 0; /* FIXME */
Spi->IoReadOperationCount = 0; /* FIXME */ Spi->IoReadOperationCount = 0; /* FIXME */
Spi->IoWriteOperationCount = 0; /* FIXME */ Spi->IoWriteOperationCount = 0; /* FIXME */
Spi->IoOtherOperationCount = 0; /* FIXME */ Spi->IoOtherOperationCount = 0; /* FIXME */
Spi->MmAvailablePages = 0; /* FIXME */ Spi->AvailablePages = 0; /* FIXME */
Spi->MmTotalCommitedPages = 0; /* FIXME */ Spi->CommitedPages = 0; /* FIXME */
Spi->MmTotalCommitLimit = 0; /* FIXME */ Spi->CommitLimit = 0; /* FIXME */
Spi->MmPeakLimit = 0; /* FIXME */ Spi->PeakCommitment = 0; /* FIXME */
Spi->PageFaults = 0; /* FIXME */ Spi->PageFaultCount = 0; /* FIXME */
Spi->WriteCopies = 0; /* FIXME */ Spi->CopyOnWriteCount = 0; /* FIXME */
Spi->TransitionFaults = 0; /* FIXME */ Spi->TransitionCount = 0; /* FIXME */
Spi->Unknown1 = 0; /* FIXME */ Spi->CacheTransitionCount = 0; /* FIXME */
Spi->DemandZeroFaults = 0; /* FIXME */ Spi->DemandZeroCount = 0; /* FIXME */
Spi->PagesInput = 0; /* FIXME */ Spi->PageReadCount = 0; /* FIXME */
Spi->PagesRead = 0; /* FIXME */ Spi->PageReadIoCount = 0; /* FIXME */
Spi->Unknown2 = 0; /* FIXME */ Spi->CacheReadCount = 0; /* FIXME */
Spi->Unknown3 = 0; /* FIXME */ Spi->CacheIoCount = 0; /* FIXME */
Spi->PagesOutput = 0; /* FIXME */ Spi->DirtyPagesWriteCount = 0; /* FIXME */
Spi->PageWrites = 0; /* FIXME */ Spi->DirtyWriteIoCount = 0; /* FIXME */
Spi->Unknown4 = 0; /* FIXME */ Spi->MappedPagesWriteCount = 0; /* FIXME */
Spi->Unknown5 = 0; /* FIXME */ Spi->MappedWriteIoCount = 0; /* FIXME */
Spi->PoolPagedBytes = 0; /* FIXME */ Spi->PagedPoolPages = 0; /* FIXME */
Spi->PoolNonPagedBytes = 0; /* FIXME */ Spi->NonPagedPoolPages = 0; /* FIXME */
Spi->Unknown6 = 0; /* FIXME */ Spi->Unknown6 = 0; /* FIXME */
Spi->Unknown7 = 0; /* FIXME */ Spi->Unknown7 = 0; /* FIXME */
Spi->Unknown8 = 0; /* FIXME */ Spi->Unknown8 = 0; /* FIXME */
@ -208,26 +208,26 @@ QSI_DEF(SystemPerformanceInfo)
return (STATUS_SUCCESS); return (STATUS_SUCCESS);
} }
/* Class 3 - Time Information */ /* Class 3 - Time Of Day Information */
QSI_DEF(SystemTimeInformation) QSI_DEF(SystemTimeOfDayInformation)
{ {
PSYSTEM_TIME_INFORMATION Sti PSYSTEM_TIMEOFDAY_INFORMATION Sti
= (PSYSTEM_TIME_INFORMATION) Buffer; = (PSYSTEM_TIMEOFDAY_INFORMATION) Buffer;
*ReqSize = sizeof (SYSTEM_TIME_INFORMATION); *ReqSize = sizeof (SYSTEM_TIMEOFDAY_INFORMATION);
/* /*
* Check user buffer's size * Check user buffer's size
*/ */
if (Size < sizeof (SYSTEM_TIME_INFORMATION)) if (Size < sizeof (SYSTEM_TIMEOFDAY_INFORMATION))
{ {
return (STATUS_INFO_LENGTH_MISMATCH); return (STATUS_INFO_LENGTH_MISMATCH);
} }
Sti->KeBootTime.QuadPart = 0; /* FIXME */ Sti->BootTime.QuadPart = 0; /* FIXME */
Sti->KeSystemTime.QuadPart = 0; /* FIXME */ Sti->CurrentTime.QuadPart = 0; /* FIXME */
Sti->ExpTimeZoneBias.QuadPart = 0; /* FIXME */ Sti->TimeZoneBias.QuadPart = 0; /* FIXME */
Sti->ExpTimeZoneId = 0; /* FIXME */ Sti->TimeZoneId = 0; /* FIXME */
Sti->Unused = 0; /* FIXME */ Sti->Reserved = 0; /* FIXME */
return (STATUS_SUCCESS); return (STATUS_SUCCESS);
} }
@ -246,93 +246,111 @@ QSI_DEF(SystemProcessInformation)
return (STATUS_NOT_IMPLEMENTED); return (STATUS_NOT_IMPLEMENTED);
} }
/* Class 6 - SDT Information */ /* Class 6 - Call Count Information */
QSI_DEF(SystemServiceDescriptorTableInfo) QSI_DEF(SystemCallCountInformation)
{ {
/* FIXME */ /* FIXME */
return (STATUS_NOT_IMPLEMENTED); return (STATUS_NOT_IMPLEMENTED);
} }
/* Class 7 - I/O Configuration Information */ /* Class 7 - Device Information */
QSI_DEF(SystemIoConfigInfo) QSI_DEF(SystemDeviceInformation)
{ {
/* FIXME */ PSYSTEM_DEVICE_INFORMATION Sdi
return (STATUS_NOT_IMPLEMENTED); = (PSYSTEM_DEVICE_INFORMATION) Buffer;
}
/* Class 8 - Processor Time Information */ *ReqSize = sizeof (SYSTEM_DEVICE_INFORMATION);
QSI_DEF(SystemProcessorTimeInfo) /*
{ * Check user buffer's size
/* FIXME */ */
return (STATUS_NOT_IMPLEMENTED); if (Size < sizeof (SYSTEM_DEVICE_INFORMATION))
}
/* Class 9 - Global Flag Information */
QSI_DEF(SystemNtGlobalFlagInformation)
{
if (sizeof (SYSTEM_GLOBAL_FLAG_INFO) != Size)
{
* ReqSize = sizeof (SYSTEM_GLOBAL_FLAG_INFO);
return (STATUS_INFO_LENGTH_MISMATCH);
}
((PSYSTEM_GLOBAL_FLAG_INFO) Buffer)->NtGlobalFlag = NtGlobalFlag;
return (STATUS_SUCCESS);
}
SSI_DEF(SystemNtGlobalFlagInformation)
{
if (sizeof (SYSTEM_GLOBAL_FLAG_INFO) != Size)
{ {
return (STATUS_INFO_LENGTH_MISMATCH); return (STATUS_INFO_LENGTH_MISMATCH);
} }
NtGlobalFlag = ((PSYSTEM_GLOBAL_FLAG_INFO) Buffer)->NtGlobalFlag;
Sdi->NumberOfDisks = 0; /* FIXME */
Sdi->NumberOfFloppies = 0; /* FIXME */
Sdi->NumberOfCdRoms = 0; /* FIXME */
Sdi->NumberOfTapes = 0; /* FIXME */
Sdi->NumberOfSerialPorts = 0; /* FIXME */
Sdi->NumberOfParallelPorts = 0; /* FIXME */
return (STATUS_SUCCESS); return (STATUS_SUCCESS);
} }
/* Class 10 - ? Information */ /* Class 8 - Processor Performance Information */
QSI_DEF(SystemInformation10) QSI_DEF(SystemProcessorPerformanceInformation)
{
/* FIXME */
return (STATUS_NOT_IMPLEMENTED);
}
/* Class 9 - Flags Information */
QSI_DEF(SystemFlagsInformation)
{
if (sizeof (SYSTEM_FLAGS_INFORMATION) != Size)
{
* ReqSize = sizeof (SYSTEM_FLAGS_INFORMATION);
return (STATUS_INFO_LENGTH_MISMATCH);
}
((PSYSTEM_FLAGS_INFORMATION) Buffer)->Flags = NtGlobalFlag;
return (STATUS_SUCCESS);
}
SSI_DEF(SystemFlagsInformation)
{
if (sizeof (SYSTEM_FLAGS_INFORMATION) != Size)
{
return (STATUS_INFO_LENGTH_MISMATCH);
}
NtGlobalFlag = ((PSYSTEM_FLAGS_INFORMATION) Buffer)->Flags;
return (STATUS_SUCCESS);
}
/* Class 10 - Call Time Information */
QSI_DEF(SystemCallTimeInformation)
{ {
/* FIXME */ /* FIXME */
return (STATUS_NOT_IMPLEMENTED); return (STATUS_NOT_IMPLEMENTED);
} }
/* Class 11 - Modules Information */ /* Class 11 - Modules Information */
QSI_DEF(SystemModuleInfo) QSI_DEF(SystemModuleInformation)
{ {
/* FIXME */ /* FIXME */
return (STATUS_NOT_IMPLEMENTED); return (STATUS_NOT_IMPLEMENTED);
} }
/* Class 12 - Resource Lock Information */ /* Class 12 - Locks Information */
QSI_DEF(SystemResourceLockInfo) QSI_DEF(SystemLocksInformation)
{ {
/* FIXME */ /* FIXME */
return (STATUS_NOT_IMPLEMENTED); return (STATUS_NOT_IMPLEMENTED);
} }
/* Class 13 - ? Information */ /* Class 13 - Stack Trace Information */
QSI_DEF(SystemInformation13) QSI_DEF(SystemStackTraceInformation)
{ {
/* FIXME */ /* FIXME */
return (STATUS_NOT_IMPLEMENTED); return (STATUS_NOT_IMPLEMENTED);
} }
/* Class 14 - ? Information */ /* Class 14 - Paged Pool Information */
QSI_DEF(SystemInformation14) QSI_DEF(SystemPagedPoolInformation)
{ {
/* FIXME */ /* FIXME */
return (STATUS_NOT_IMPLEMENTED); return (STATUS_NOT_IMPLEMENTED);
} }
/* Class 15 - ? Information */ /* Class 15 - Non Paged Pool Information */
QSI_DEF(SystemInformation15) QSI_DEF(SystemNonPagedPoolInformation)
{ {
/* FIXME */ /* FIXME */
return (STATUS_NOT_IMPLEMENTED); return (STATUS_NOT_IMPLEMENTED);
} }
/* Class 16 - Handle Information */ /* Class 16 - Handle Information */
QSI_DEF(SystemHandleInfo) QSI_DEF(SystemHandleInformation)
{ {
/* FIXME */ /* FIXME */
return (STATUS_NOT_IMPLEMENTED); return (STATUS_NOT_IMPLEMENTED);
@ -352,22 +370,22 @@ QSI_DEF(SystemPageFileInformation)
return (STATUS_NOT_IMPLEMENTED); return (STATUS_NOT_IMPLEMENTED);
} }
/* Class 19 - Information */ /* Class 19 - Vdm Instemul Information */
QSI_DEF(SystemInstructionEmulationInfo) QSI_DEF(SystemVdmInstemulInformation)
{ {
/* FIXME */ /* FIXME */
return (STATUS_NOT_IMPLEMENTED); return (STATUS_NOT_IMPLEMENTED);
} }
/* Class 20 - ? Information */ /* Class 20 - Vdm Bop Information */
QSI_DEF(SystemInformation20) QSI_DEF(SystemVdmBopInformation)
{ {
/* FIXME */ /* FIXME */
return (STATUS_NOT_IMPLEMENTED); return (STATUS_NOT_IMPLEMENTED);
} }
/* Class 21 - Information */ /* Class 21 - File Cache Information */
QSI_DEF(SystemCacheInformation) QSI_DEF(SystemFileCacheInformation)
{ {
if (Size < sizeof (SYSTEM_CACHE_INFORMATION)) if (Size < sizeof (SYSTEM_CACHE_INFORMATION))
{ {
@ -378,7 +396,7 @@ QSI_DEF(SystemCacheInformation)
return (STATUS_NOT_IMPLEMENTED); return (STATUS_NOT_IMPLEMENTED);
} }
SSI_DEF(SystemCacheInformation) SSI_DEF(SystemFileCacheInformation)
{ {
if (Size < sizeof (SYSTEM_CACHE_INFORMATION)) if (Size < sizeof (SYSTEM_CACHE_INFORMATION))
{ {
@ -395,28 +413,28 @@ QSI_DEF(SystemPoolTagInformation)
return (STATUS_NOT_IMPLEMENTED); return (STATUS_NOT_IMPLEMENTED);
} }
/* Class 23 - Processor Schedule Information */ /* Class 23 - Interrupt Information */
QSI_DEF(SystemProcessorScheduleInfo) QSI_DEF(SystemInterruptInformation)
{ {
/* FIXME */ /* FIXME */
return (STATUS_NOT_IMPLEMENTED); return (STATUS_NOT_IMPLEMENTED);
} }
/* Class 24 - DPC Information */ /* Class 24 - DPC Behaviour Information */
QSI_DEF(SystemDpcInformation) QSI_DEF(SystemDpcBehaviourInformation)
{ {
/* FIXME */ /* FIXME */
return (STATUS_NOT_IMPLEMENTED); return (STATUS_NOT_IMPLEMENTED);
} }
SSI_DEF(SystemDpcInformation) SSI_DEF(SystemDpcBehaviourInformation)
{ {
/* FIXME */ /* FIXME */
return (STATUS_NOT_IMPLEMENTED); return (STATUS_NOT_IMPLEMENTED);
} }
/* Class 25 - ? Information */ /* Class 25 - Full Memory Information */
QSI_DEF(SystemInformation25) QSI_DEF(SystemFullMemoryInformation)
{ {
/* FIXME */ /* FIXME */
return (STATUS_NOT_IMPLEMENTED); return (STATUS_NOT_IMPLEMENTED);
@ -447,7 +465,7 @@ SSI_DEF(SystemUnloadGdiDriverInformation)
return (STATUS_NOT_IMPLEMENTED); return (STATUS_NOT_IMPLEMENTED);
} }
/* Class 28 - Information */ /* Class 28 - Time Adjustment Information */
QSI_DEF(SystemTimeAdjustmentInformation) QSI_DEF(SystemTimeAdjustmentInformation)
{ {
if (sizeof (SYSTEM_TIME_ADJUSTMENT_INFO) > Size) if (sizeof (SYSTEM_TIME_ADJUSTMENT_INFO) > Size)
@ -469,119 +487,119 @@ SSI_DEF(SystemTimeAdjustmentInformation)
return (STATUS_NOT_IMPLEMENTED); return (STATUS_NOT_IMPLEMENTED);
} }
/* Class 29 - ? Information */ /* Class 29 - Summary Memory Information */
QSI_DEF(SystemInformation29) QSI_DEF(SystemSummaryMemoryInformation)
{ {
/* FIXME */ /* FIXME */
return (STATUS_NOT_IMPLEMENTED); return (STATUS_NOT_IMPLEMENTED);
} }
/* Class 30 - ? Information */ /* Class 30 - Next Event Id Information */
QSI_DEF(SystemInformation30) QSI_DEF(SystemNextEventIdInformation)
{ {
/* FIXME */ /* FIXME */
return (STATUS_NOT_IMPLEMENTED); return (STATUS_NOT_IMPLEMENTED);
} }
/* Class 31 - ? Information */ /* Class 31 - Event Ids Information */
QSI_DEF(SystemInformation31) QSI_DEF(SystemEventIdsInformation)
{ {
/* FIXME */ /* FIXME */
return (STATUS_NOT_IMPLEMENTED); return (STATUS_NOT_IMPLEMENTED);
} }
/* Class 32 - Crach Dump Information */ /* Class 32 - Crach Dump Information */
QSI_DEF(SystemCrashDumpSectionInfo) QSI_DEF(SystemCrashDumpInformation)
{ {
/* FIXME */ /* FIXME */
return (STATUS_NOT_IMPLEMENTED); return (STATUS_NOT_IMPLEMENTED);
} }
/* Class 33 - Processor Fault Information */ /* Class 33 - Exception Information */
QSI_DEF(SystemProcessorFaultCountInfo) QSI_DEF(SystemExceptionInformation)
{ {
/* FIXME */ /* FIXME */
return (STATUS_NOT_IMPLEMENTED); return (STATUS_NOT_IMPLEMENTED);
} }
/* Class 34 - Crach Dump State Information */ /* Class 34 - Crach Dump State Information */
QSI_DEF(SystemCrashDumpStateInfo) QSI_DEF(SystemCrashDumpStateInformation)
{ {
/* FIXME */ /* FIXME */
return (STATUS_NOT_IMPLEMENTED); return (STATUS_NOT_IMPLEMENTED);
} }
/* Class 35 - Debugger Information */ /* Class 35 - Kernel Debugger Information */
QSI_DEF(SystemDebuggerInfo) QSI_DEF(SystemKernelDebuggerInformation)
{ {
/* FIXME */ /* FIXME */
return (STATUS_NOT_IMPLEMENTED); return (STATUS_NOT_IMPLEMENTED);
} }
/* Class 36 - Thread Switch Counters Information */ /* Class 36 - Context Switch Information */
QSI_DEF(SystemThreadSwitchCountersInfo) QSI_DEF(SystemContextSwitchInformation)
{ {
/* FIXME */ /* FIXME */
return (STATUS_NOT_IMPLEMENTED); return (STATUS_NOT_IMPLEMENTED);
} }
/* Class 37 - Quota Information */ /* Class 37 - Registry Quota Information */
QSI_DEF(SystemQuotaInformation) QSI_DEF(SystemRegistryQuotaInformation)
{ {
/* FIXME */ /* FIXME */
return (STATUS_NOT_IMPLEMENTED); return (STATUS_NOT_IMPLEMENTED);
} }
SSI_DEF(SystemQuotaInformation) SSI_DEF(SystemRegistryQuotaInformation)
{ {
/* FIXME */ /* FIXME */
return (STATUS_NOT_IMPLEMENTED); return (STATUS_NOT_IMPLEMENTED);
} }
/* Class 38 - Load Driver Information */ /* Class 38 - Extend Service Table Information */
SSI_DEF(SystemLoadDriverInfo) SSI_DEF(SystemExtendServiceTableInformation)
{ {
/* FIXME */ /* FIXME */
return (STATUS_NOT_IMPLEMENTED); return (STATUS_NOT_IMPLEMENTED);
} }
/* Class 39 - Priority Separation Information */ /* Class 39 - Priority Seperation */
SSI_DEF(SystemPrioritySeparationInfo) SSI_DEF(SystemPrioritySeperation)
{ {
/* FIXME */ /* FIXME */
return (STATUS_NOT_IMPLEMENTED); return (STATUS_NOT_IMPLEMENTED);
} }
/* Class 40 - ? Information */ /* Class 40 - Plug Play Bus Information */
QSI_DEF(SystemInformation40) QSI_DEF(SystemPlugPlayBusInformation)
{ {
/* FIXME */ /* FIXME */
return (STATUS_NOT_IMPLEMENTED); return (STATUS_NOT_IMPLEMENTED);
} }
/* Class 41 - ? Information */ /* Class 41 - Dock Information */
QSI_DEF(SystemInformation41) QSI_DEF(SystemDockInformation)
{ {
/* FIXME */ /* FIXME */
return (STATUS_NOT_IMPLEMENTED); return (STATUS_NOT_IMPLEMENTED);
} }
/* Class 42 - ? Information */ /* Class 42 - Power Information */
QSI_DEF(SystemInformation42) QSI_DEF(SystemPowerInformation)
{ {
/* FIXME */ /* FIXME */
return (STATUS_NOT_IMPLEMENTED); return (STATUS_NOT_IMPLEMENTED);
} }
/* Class 43 - ? Information */ /* Class 43 - Processor Speed Information */
QSI_DEF(SystemInformation43) QSI_DEF(SystemProcessorSpeedInformation)
{ {
/* FIXME */ /* FIXME */
return (STATUS_NOT_IMPLEMENTED); return (STATUS_NOT_IMPLEMENTED);
} }
/* Class 44 - Information */ /* Class 44 - Current Time Zone Information */
QSI_DEF(SystemTimeZoneInformation) QSI_DEF(SystemCurrentTimeZoneInformation)
{ {
* ReqSize = sizeof (TIME_ZONE_INFORMATION); * ReqSize = sizeof (TIME_ZONE_INFORMATION);
@ -600,7 +618,7 @@ QSI_DEF(SystemTimeZoneInformation)
} }
SSI_DEF(SystemTimeZoneInformation) SSI_DEF(SystemCurrentTimeZoneInformation)
{ {
/* /*
* Check user buffer's size * Check user buffer's size
@ -619,7 +637,7 @@ SSI_DEF(SystemTimeZoneInformation)
} }
/* Class 45 - Information */ /* Class 45 - Lookaside Information */
QSI_DEF(SystemLookasideInformation) QSI_DEF(SystemLookasideInformation)
{ {
/* FIXME */ /* FIXME */
@ -652,49 +670,49 @@ CallQS [] =
{ {
SI_QX(SystemBasicInformation), SI_QX(SystemBasicInformation),
SI_QX(SystemProcessorInformation), SI_QX(SystemProcessorInformation),
SI_QX(SystemPerformanceInfo), SI_QX(SystemPerformanceInformation),
SI_QX(SystemTimeInformation), SI_QX(SystemTimeOfDayInformation),
SI_QX(SystemPathInformation), /* should be SI_XX */ SI_QX(SystemPathInformation), /* should be SI_XX */
SI_QX(SystemProcessInformation), SI_QX(SystemProcessInformation),
SI_QX(SystemServiceDescriptorTableInfo), SI_QX(SystemCallCountInformation),
SI_QX(SystemIoConfigInfo), SI_QX(SystemDeviceInformation),
SI_QX(SystemProcessorTimeInfo), SI_QX(SystemProcessorPerformanceInformation),
SI_QS(SystemNtGlobalFlagInformation), SI_QS(SystemFlagsInformation),
SI_QX(SystemInformation10), /* should be SI_XX */ SI_QX(SystemCallTimeInformation), /* should be SI_XX */
SI_QX(SystemModuleInfo), SI_QX(SystemModuleInformation),
SI_QX(SystemResourceLockInfo), SI_QX(SystemLocksInformation),
SI_QX(SystemInformation13), /* should be SI_XX */ SI_QX(SystemStackTraceInformation), /* should be SI_XX */
SI_QX(SystemInformation14), /* should be SI_XX */ SI_QX(SystemPagedPoolInformation), /* should be SI_XX */
SI_QX(SystemInformation15), /* should be SI_XX */ SI_QX(SystemNonPagedPoolInformation), /* should be SI_XX */
SI_QX(SystemHandleInfo), SI_QX(SystemHandleInformation),
SI_QX(SystemObjectInformation), SI_QX(SystemObjectInformation),
SI_QX(SystemPageFileInformation), SI_QX(SystemPageFileInformation),
SI_QX(SystemInstructionEmulationInfo), SI_QX(SystemVdmInstemulInformation),
SI_QX(SystemInformation20), /* it should be SI_XX */ SI_QX(SystemVdmBopInformation), /* it should be SI_XX */
SI_QS(SystemCacheInformation), SI_QS(SystemFileCacheInformation),
SI_QX(SystemPoolTagInformation), SI_QX(SystemPoolTagInformation),
SI_QX(SystemProcessorScheduleInfo), SI_QX(SystemInterruptInformation),
SI_QS(SystemDpcInformation), SI_QS(SystemDpcBehaviourInformation),
SI_QX(SystemInformation25), /* it should be SI_XX */ SI_QX(SystemFullMemoryInformation), /* it should be SI_XX */
SI_XS(SystemLoadGdiDriverInformation), SI_XS(SystemLoadGdiDriverInformation),
SI_XS(SystemUnloadGdiDriverInformation), SI_XS(SystemUnloadGdiDriverInformation),
SI_QS(SystemTimeAdjustmentInformation), SI_QS(SystemTimeAdjustmentInformation),
SI_QX(SystemInformation29), /* it should be SI_XX */ SI_QX(SystemSummaryMemoryInformation), /* it should be SI_XX */
SI_QX(SystemInformation30), /* it should be SI_XX */ SI_QX(SystemNextEventIdInformation), /* it should be SI_XX */
SI_QX(SystemInformation31), /* it should be SI_XX */ SI_QX(SystemEventIdsInformation), /* it should be SI_XX */
SI_QX(SystemCrashDumpSectionInfo), SI_QX(SystemCrashDumpInformation),
SI_QX(SystemProcessorFaultCountInfo), SI_QX(SystemExceptionInformation),
SI_QX(SystemCrashDumpStateInfo), SI_QX(SystemCrashDumpStateInformation),
SI_QX(SystemDebuggerInfo), SI_QX(SystemKernelDebuggerInformation),
SI_QX(SystemThreadSwitchCountersInfo), SI_QX(SystemContextSwitchInformation),
SI_QS(SystemQuotaInformation), SI_QS(SystemRegistryQuotaInformation),
SI_XS(SystemLoadDriverInfo), SI_XS(SystemExtendServiceTableInformation),
SI_XS(SystemPrioritySeparationInfo), SI_XS(SystemPrioritySeperation),
SI_QX(SystemInformation40), /* it should be SI_XX */ SI_QX(SystemPlugPlayBusInformation), /* it should be SI_XX */
SI_QX(SystemInformation41), /* it should be SI_XX */ SI_QX(SystemDockInformation), /* it should be SI_XX */
SI_QX(SystemInformation42), /* it should be SI_XX */ SI_QX(SystemPowerInformation), /* it should be SI_XX */
SI_QX(SystemInformation43), /* it should be SI_XX */ SI_QX(SystemProcessorSpeedInformation), /* it should be SI_XX */
SI_QS(SystemTimeZoneInformation), /* it should be SI_QX */ SI_QS(SystemCurrentTimeZoneInformation), /* it should be SI_QX */
SI_QX(SystemLookasideInformation) SI_QX(SystemLookasideInformation)
}; };