- Add DDK alignment macros and move/rename the ones in the NDK for user-mode only...
[reactos.git] / reactos / include / ndk / extypes.h
index 460af78..c34808d 100644 (file)
-/*
- * PROJECT:         ReactOS Native Headers
- * FILE:            include/ndk/extypes.h
- * PURPOSE:         Definitions for exported Executive Functions not defined in DDK/IFS
- * PROGRAMMER:      Alex Ionescu (alex@relsoft.net)
- * UPDATE HISTORY:
- *                  Created 06/10/04
- */
+/*++ NDK Version: 0095
+
+Copyright (c) Alex Ionescu.  All rights reserved.
+
+Header Name:
+
+    extypes.h
+
+Abstract:
+
+    Type definitions for the Executive.
+
+Author:
+
+    Alex Ionescu (alex.ionescu@reactos.com)   06-Oct-2004
+
+--*/
 
 #ifndef _EXTYPES_H
 #define _EXTYPES_H
 
-/* DEPENDENCIES **************************************************************/
+//
+// Dependencies
+//
+#include <umtypes.h>
 #include <cfg.h>
 #if defined(_MSC_VER) && !defined(NTOS_MODE_USER)
 #include <ntimage.h>
 #endif
-#include "cmtypes.h"
-#include "ketypes.h"
-#include "pstypes.h"
-#include "potypes.h"
+#include <cmtypes.h>
+#include <ketypes.h>
+#include <potypes.h>
+#include <lpctypes.h>
+
+//
+// Atom and Language IDs
+//
+typedef USHORT LANGID, *PLANGID;
+typedef USHORT RTL_ATOM, *PRTL_ATOM;
 
-/* EXPORTED DATA *************************************************************/
 #ifndef NTOS_MODE_USER
+
+//
+// Kernel Exported Object Types
+//
 extern POBJECT_TYPE NTSYSAPI ExIoCompletionType;
 extern POBJECT_TYPE NTSYSAPI ExMutantObjectType;
 extern POBJECT_TYPE NTSYSAPI ExTimerType;
-#endif
 
-/* CONSTANTS *****************************************************************/
-#ifndef NTOS_MODE_USER
-#define INVALID_HANDLE_VALUE (HANDLE)-1
+//
+// Exported NT Build Number
+//
+extern ULONG NTSYSAPI NtBuildNumber;
+
+//
+// Invalid Handle Value Constant
+//
+#define INVALID_HANDLE_VALUE            (HANDLE)-1
+
 #endif
 
-/* Increments */
-#define MUTANT_INCREMENT 1
-
-/* Executive Object Access Rights */
-#define CALLBACK_ALL_ACCESS     (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x0001)
-#define CALLBACK_EXECUTE        (STANDARD_RIGHTS_EXECUTE|SYNCHRONIZE|0x0001)
-#define CALLBACK_WRITE          (STANDARD_RIGHTS_WRITE|SYNCHRONIZE|0x0001)
-#define CALLBACK_READ           (STANDARD_RIGHTS_READ|SYNCHRONIZE|0x0001)
-#define EVENT_READ_ACCESS       1
-#define EVENT_WRITE_ACCESS      2
-#define PORT_ALL_ACCESS         0x1
-#define EVENT_PAIR_ALL_ACCESS   0x1F0000L
+//
+// Increments
+//
+#define MUTANT_INCREMENT                1
+
+//
+// Callback Object Access Mask
+//
+#define CALLBACK_ALL_ACCESS             (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x0001)
+#define CALLBACK_EXECUTE                (STANDARD_RIGHTS_EXECUTE|SYNCHRONIZE|0x0001)
+#define CALLBACK_WRITE                  (STANDARD_RIGHTS_WRITE|SYNCHRONIZE|0x0001)
+#define CALLBACK_READ                   (STANDARD_RIGHTS_READ|SYNCHRONIZE|0x0001)
+
+//
+// Event Object Access Masks
+//
 #ifdef NTOS_MODE_USER
-#define EVENT_QUERY_STATE       0x0001
-#define SEMAPHORE_QUERY_STATE   0x0001
+#define EVENT_QUERY_STATE               0x0001
+
+//
+// Semaphore Object Acess Masks
+//
+#define SEMAPHORE_QUERY_STATE           0x0001
 #endif
 
-#define MAXIMUM_HARDERROR_PARAMETERS 4
+//
+// Event Pair Access Masks
+//
+#define EVENT_PAIR_ALL_ACCESS           0x1F0000L
+
+//
+// Maximum Parameters for NtRaiseHardError
+//
+#define MAXIMUM_HARDERROR_PARAMETERS    4
 
-/* ENUMERATIONS **************************************************************/
+//
+// Shutdown types for NtShutdownSystem
+//
 typedef enum _SHUTDOWN_ACTION
 {
     ShutdownNoReboot,
@@ -59,6 +104,9 @@ typedef enum _SHUTDOWN_ACTION
     ShutdownPowerOff
 } SHUTDOWN_ACTION;
 
+//
+// Responses for NtRaiseHardError
+//
 typedef enum _HARDERROR_RESPONSE_OPTION
 {
     OptionAbortRetryIgnore,
@@ -83,13 +131,16 @@ typedef enum _HARDERROR_RESPONSE
     ResponseYes
 } HARDERROR_RESPONSE, *PHARDERROR_RESPONSE;
 
+//
+//  System Information Classes for NtQuerySystemInformation
+//
 typedef enum _SYSTEM_INFORMATION_CLASS
 {
     SystemBasicInformation,
     SystemProcessorInformation,
     SystemPerformanceInformation,
     SystemTimeOfDayInformation,
-    SystemPathInformation, /* OBSOLETE: USE KUSER_SHARED_DATA */
+    SystemPathInformation, /// Obsolete: Use KUSER_SHARED_DATA
     SystemProcessInformation,
     SystemCallCountInformation,
     SystemDeviceInformation,
@@ -127,7 +178,7 @@ typedef enum _SYSTEM_INFORMATION_CLASS
     SystemPrioritySeperation,
     SystemPlugPlayBusInformation,
     SystemDockInformation,
-    _SystemPowerInformation, /* FIXME */
+    SystemPowerInformationNative,
     SystemProcessorSpeedInformation,
     SystemCurrentTimeZoneInformation,
     SystemLookasideInformation,
@@ -142,38 +193,52 @@ typedef enum _SYSTEM_INFORMATION_CLASS
     SystemInformationClassMax
 } SYSTEM_INFORMATION_CLASS;
 
+//
+//  System Information Classes for NtQueryMutant
+//
 typedef enum _MUTANT_INFORMATION_CLASS
 {
     MutantBasicInformation
 } MUTANT_INFORMATION_CLASS;
 
+//
+//  System Information Classes for NtQueryAtom
+//
 typedef enum _ATOM_INFORMATION_CLASS
 {
     AtomBasicInformation,
     AtomTableInformation,
 } ATOM_INFORMATION_CLASS;
 
+//
+//  System Information Classes for NtQueryTimer
+//
 typedef enum _TIMER_INFORMATION_CLASS
 {
     TimerBasicInformation
 } TIMER_INFORMATION_CLASS;
 
+//
+//  System Information Classes for NtQuerySemaphore
+//
 typedef enum _SEMAPHORE_INFORMATION_CLASS
 {
     SemaphoreBasicInformation
 } SEMAPHORE_INFORMATION_CLASS;
 
+//
+//  System Information Classes for NtQueryEvent
+//
 typedef enum _EVENT_INFORMATION_CLASS
 {
     EventBasicInformation
 } EVENT_INFORMATION_CLASS;
 
-/* TYPES *********************************************************************/
-
-typedef USHORT LANGID, *PLANGID;
-typedef USHORT RTL_ATOM, *PRTL_ATOM;
-
 #ifndef NTOS_MODE_USER
+
+//
+// Executive Work Queue Structures
+//
 typedef struct _EX_QUEUE_WORKER_INFO
 {
     ULONG QueueDisabled:1;
@@ -192,6 +257,9 @@ typedef struct _EX_WORK_QUEUE
     EX_QUEUE_WORKER_INFO Info;
 } EX_WORK_QUEUE, *PEX_WORK_QUEUE;
 
+//
+// Executive Fast Reference Structure
+//
 typedef struct _EX_FAST_REF
 {
     union
@@ -202,17 +270,18 @@ typedef struct _EX_FAST_REF
     };
 } EX_FAST_REF, *PEX_FAST_REF;
 
-typedef struct _HANDLE_TABLE_ENTRY_INFO
-{
-    ULONG AuditMask;
-} HANDLE_TABLE_ENTRY_INFO, *PHANDLE_TABLE_ENTRY_INFO;
-
+//
+// FIXME
+//
 typedef struct _RUNDOWN_DESCRIPTOR
 {
     ULONG_PTR References;
     KEVENT RundownEvent;
 } RUNDOWN_DESCRIPTOR, *PRUNDOWN_DESCRIPTOR;
 
+//
+// Callback Object
+//
 typedef struct _CALLBACK_OBJECT
 {
     ULONG Name;
@@ -221,6 +290,14 @@ typedef struct _CALLBACK_OBJECT
     ULONG AllowMultipleCallbacks;
 } CALLBACK_OBJECT , *PCALLBACK_OBJECT;
 
+//
+// Handle Table Structures
+//
+typedef struct _HANDLE_TABLE_ENTRY_INFO
+{
+    ULONG AuditMask;
+} HANDLE_TABLE_ENTRY_INFO, *PHANDLE_TABLE_ENTRY_INFO;
+
 typedef struct _HANDLE_TABLE_ENTRY
 {
     union
@@ -254,6 +331,24 @@ typedef struct _HANDLE_TABLE
 
 #endif
 
+//
+// Hard Error LPC Message
+//
+typedef struct _HARDERROR_MSG
+{
+    PORT_MESSAGE h;
+    NTSTATUS Status;
+    LARGE_INTEGER ErrorTime;
+    ULONG ValidResponseOptions;
+    ULONG Response;
+    ULONG NumberOfParameters;
+    ULONG UnicodeStringParameterMask;
+    ULONG Parameters[MAXIMUM_HARDERROR_PARAMETERS];
+} HARDERROR_MSG, *PHARDERROR_MSG;
+
+//
+// Information Structures for NtQueryMutant
+//
 typedef struct _MUTANT_BASIC_INFORMATION
 {
     LONG CurrentCount;
@@ -261,6 +356,9 @@ typedef struct _MUTANT_BASIC_INFORMATION
     BOOLEAN AbandonedState;
 } MUTANT_BASIC_INFORMATION, *PMUTANT_BASIC_INFORMATION;
 
+//
+// Information Structures for NtQueryAtom
+//
 typedef struct _ATOM_BASIC_INFORMATION
 {
     USHORT UsageCount;
@@ -275,25 +373,36 @@ typedef struct _ATOM_TABLE_INFORMATION
     USHORT Atoms[1];
 } ATOM_TABLE_INFORMATION, *PATOM_TABLE_INFORMATION;
 
+//
+// Information Structures for NtQueryTimer
+//
 typedef struct _TIMER_BASIC_INFORMATION
 {
     LARGE_INTEGER TimeRemaining;
     BOOLEAN SignalState;
 } TIMER_BASIC_INFORMATION, *PTIMER_BASIC_INFORMATION;
 
+//
+// Information Structures for NtQuerySemaphore
+//
 typedef struct _SEMAPHORE_BASIC_INFORMATION
 {
     LONG CurrentCount;
     LONG MaximumCount;
 } SEMAPHORE_BASIC_INFORMATION, *PSEMAPHORE_BASIC_INFORMATION;
 
+//
+// Information Structures for NtQueryEvent
+//
 typedef struct _EVENT_BASIC_INFORMATION
 {
     EVENT_TYPE EventType;
     LONG EventState;
 } EVENT_BASIC_INFORMATION, *PEVENT_BASIC_INFORMATION;
 
-/* Class 0 */
+//
+// Information Structures for NtQuerySystemInformation
+//
 typedef struct _SYSTEM_BASIC_INFORMATION
 {
     ULONG Reserved;
@@ -309,7 +418,7 @@ typedef struct _SYSTEM_BASIC_INFORMATION
     CCHAR NumberOfProcessors;
 } SYSTEM_BASIC_INFORMATION, *PSYSTEM_BASIC_INFORMATION;
 
-/* Class 1 */
+// Class 1
 typedef struct _SYSTEM_PROCESSOR_INFORMATION
 {
     USHORT ProcessorArchitecture;
@@ -319,7 +428,7 @@ typedef struct _SYSTEM_PROCESSOR_INFORMATION
     ULONG ProcessorFeatureBits;
 } SYSTEM_PROCESSOR_INFORMATION, *PSYSTEM_PROCESSOR_INFORMATION;
 
-/* Class 2 */
+// Class 2
 typedef struct _SYSTEM_PERFORMANCE_INFORMATION
 {
     LARGE_INTEGER IdleProcessTime;
@@ -398,7 +507,7 @@ typedef struct _SYSTEM_PERFORMANCE_INFORMATION
     ULONG SystemCalls;
 } SYSTEM_PERFORMANCE_INFORMATION, *PSYSTEM_PERFORMANCE_INFORMATION;
 
-/* Class 3 */
+// Class 3 
 typedef struct _SYSTEM_TIMEOFDAY_INFORMATION
 {
     LARGE_INTEGER BootTime;
@@ -408,10 +517,10 @@ typedef struct _SYSTEM_TIMEOFDAY_INFORMATION
     ULONG Reserved;
 } SYSTEM_TIMEOFDAY_INFORMATION, *PSYSTEM_TIMEOFDAY_INFORMATION;
 
-/* Class 4 */
-/* This class is obsoleted, please use KUSER_SHARED_DATA instead */
+// Class 4
+// This class is obsolete, please use KUSER_SHARED_DATA instead
 
-/* Class 5 */
+// Class 5
 typedef struct _SYSTEM_THREAD_INFORMATION
 {
     LARGE_INTEGER KernelTime;
@@ -445,10 +554,10 @@ typedef struct _SYSTEM_PROCESS_INFORMATION
     ULONG SessionId;
     ULONG PageDirectoryFrame;
 
-    /*
-     * This part corresponds to VM_COUNTERS_EX.
-     * NOTE: *NOT* THE SAME AS VM_COUNTERS!
-     */
+    //
+    // This part corresponds to VM_COUNTERS_EX.
+    // NOTE: *NOT* THE SAME AS VM_COUNTERS!
+    //
     ULONG PeakVirtualSize;
     ULONG VirtualSize;
     ULONG PageFaultCount;
@@ -462,7 +571,9 @@ typedef struct _SYSTEM_PROCESS_INFORMATION
     ULONG PeakPagefileUsage;
     ULONG PrivateUsage;
 
-    /* This part corresponds to IO_COUNTERS */
+    //
+    // This part corresponds to IO_COUNTERS
+    //
     LARGE_INTEGER ReadOperationCount;
     LARGE_INTEGER WriteOperationCount;
     LARGE_INTEGER OtherOperationCount;
@@ -470,18 +581,17 @@ typedef struct _SYSTEM_PROCESS_INFORMATION
     LARGE_INTEGER WriteTransferCount;
     LARGE_INTEGER OtherTransferCount;
 
-    /* Finally, the array of Threads */
     SYSTEM_THREAD_INFORMATION TH[1];
 } SYSTEM_PROCESS_INFORMATION, *PSYSTEM_PROCESS_INFORMATION;
 
-/* Class 6 */
+// Class 6
 typedef struct _SYSTEM_CALL_COUNT_INFORMATION
 {
     ULONG Length;
     ULONG NumberOfTables;
 } SYSTEM_CALL_COUNT_INFORMATION, *PSYSTEM_CALL_COUNT_INFORMATION;
 
-/* Class 7 */
+// Class 7
 typedef struct _SYSTEM_DEVICE_INFORMATION
 {
     ULONG NumberOfDisks;
@@ -492,7 +602,7 @@ typedef struct _SYSTEM_DEVICE_INFORMATION
     ULONG NumberOfParallelPorts;
 } SYSTEM_DEVICE_INFORMATION, *PSYSTEM_DEVICE_INFORMATION;
 
-/* Class 8 */
+// Class 8
 typedef struct _SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION
 {
     LARGE_INTEGER IdleTime;
@@ -503,13 +613,13 @@ typedef struct _SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION
     ULONG InterruptCount;
 } SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION, *PSYSTEM_PROCESSOR_PERFORMANCE_INFORMATION;
 
-/* Class 9 */
+// Class 9
 typedef struct _SYSTEM_FLAGS_INFORMATION
 {
     ULONG Flags;
 } SYSTEM_FLAGS_INFORMATION, *PSYSTEM_FLAGS_INFORMATION;
 
-/* Class 10 */
+// Class 10
 typedef struct _SYSTEM_CALL_TIME_INFORMATION
 {
     ULONG Length;
@@ -517,7 +627,7 @@ typedef struct _SYSTEM_CALL_TIME_INFORMATION
     LARGE_INTEGER TimeOfCalls[1];
 } SYSTEM_CALL_TIME_INFORMATION, *PSYSTEM_CALL_TIME_INFORMATION;
 
-/* Class 11 */
+// Class 11
 typedef struct _SYSTEM_MODULE_INFORMATION_ENTRY
 {
     ULONG  Unknown1;
@@ -537,7 +647,7 @@ typedef struct _SYSTEM_MODULE_INFORMATION
     SYSTEM_MODULE_INFORMATION_ENTRY Module[1];
 } SYSTEM_MODULE_INFORMATION, *PSYSTEM_MODULE_INFORMATION;
 
-/* Class 12 */
+// Class 12
 typedef struct _SYSTEM_RESOURCE_LOCK_ENTRY
 {
     ULONG  ResourceAddress;
@@ -556,22 +666,20 @@ typedef struct _SYSTEM_RESOURCE_LOCK_INFO
     SYSTEM_RESOURCE_LOCK_ENTRY Lock[1];
 } SYSTEM_RESOURCE_LOCK_INFO, *PSYSTEM_RESOURCE_LOCK_INFO;
 
-/* Class 13 */
+// FIXME: Class 13
 typedef struct _SYSTEM_BACKTRACE_INFORMATION_ENTRY
 {
     ULONG Dummy;
-    /* FIXME */
 } SYSTEM_BACKTRACE_INFORMATION_ENTRY, *PSYSTEM_BACKTRACE_INFORMATION_ENTRY;
 
 typedef struct _SYSTEM_BACKTRACE_INFORMATION
 {
-    /* FIXME */
     ULONG Unknown[4];
     ULONG Count;
     SYSTEM_BACKTRACE_INFORMATION_ENTRY Trace[1];
 } SYSTEM_BACKTRACE_INFORMATION, *PSYSTEM_BACKTRACE_INFORMATION;
 
-/* Class 14 - 15 */
+// Class 14 - 15
 typedef struct _SYSTEM_POOL_ENTRY
 {
     BOOLEAN Allocated;
@@ -597,7 +705,7 @@ typedef struct _SYSTEM_POOL_INFORMATION
     SYSTEM_POOL_ENTRY Entries[1];
 } SYSTEM_POOL_INFORMATION, *PSYSTEM_POOL_INFORMATION;
 
-/* Class 16 */
+// Class 16
 typedef struct _SYSTEM_HANDLE_TABLE_ENTRY_INFO
 {
     USHORT UniqueProcessId;
@@ -615,7 +723,7 @@ typedef struct _SYSTEM_HANDLE_INFORMATION
     SYSTEM_HANDLE_TABLE_ENTRY_INFO Handles[1];
 } SYSTEM_HANDLE_INFORMATION, *PSYSTEM_HANDLE_INFORMATION;
 
-/* Class 17 */
+// Class 17
 typedef struct _SYSTEM_OBJECTTYPE_INFORMATION
 {
     ULONG NextEntryOffset;
@@ -647,7 +755,7 @@ typedef struct _SYSTEM_OBJECT_INFORMATION
     OBJECT_NAME_INFORMATION NameInfo;
 } SYSTEM_OBJECT_INFORMATION, *PSYSTEM_OBJECT_INFORMATION;
 
-/* Class 18 */
+// Class 18
 typedef struct _SYSTEM_PAGEFILE_INFORMATION
 {
     ULONG NextEntryOffset;
@@ -657,7 +765,7 @@ typedef struct _SYSTEM_PAGEFILE_INFORMATION
     UNICODE_STRING PageFileName;
 } SYSTEM_PAGEFILE_INFORMATION, *PSYSTEM_PAGEFILE_INFORMATION;
 
-/* Class 19 */
+// Class 19
 typedef struct _SYSTEM_VDM_INSTEMUL_INFO
 {
     ULONG SegmentNotPresent;
@@ -696,14 +804,13 @@ typedef struct _SYSTEM_VDM_INSTEMUL_INFO
     ULONG BopCount;
 } SYSTEM_VDM_INSTEMUL_INFO, *PSYSTEM_VDM_INSTEMUL_INFO;
 
-/* Class 20 */
+// FIXME: Class 20
 typedef struct _SYSTEM_VDM_BOP_INFO
 {
-    /* FIXME */
     PVOID Dummy;
 } SYSTEM_VDM_BOP_INFO, *PSYSTEM_VDM_BOP_INFO;
 
-/* Class 21 */
+// Class 21
 typedef struct _SYSTEM_CACHE_INFORMATION
 {
     ULONG CurrentSize;
@@ -716,7 +823,7 @@ typedef struct _SYSTEM_CACHE_INFORMATION
     ULONG Unused[2];
 } SYSTEM_CACHE_INFORMATION, *PSYSTEM_CACHE_INFORMATION;
 
-/* Class 22 */
+// Class 22
 typedef struct _SYSTEM_POOLTAG
 {
     union
@@ -737,7 +844,7 @@ typedef struct _SYSTEM_POOLTAG_INFORMATION
     SYSTEM_POOLTAG TagInfo[1];
 } SYSTEM_POOLTAG_INFORMATION, *PSYSTEM_POOLTAG_INFORMATION;
 
-/* Class 23 */
+// Class 23
 typedef struct _SYSTEM_INTERRUPT_INFORMATION
 {
     ULONG ContextSwitches;
@@ -748,7 +855,7 @@ typedef struct _SYSTEM_INTERRUPT_INFORMATION
     ULONG ApcBypassCount;
 } SYSTEM_INTERRUPT_INFORMATION, *PSYSTEM_INTERRUPT_INFORMATION;
 
-/* Class 24 */
+// Class 24
 typedef struct _SYSTEM_DPC_BEHAVIOR_INFORMATION
 {
     ULONG Spare;
@@ -758,7 +865,7 @@ typedef struct _SYSTEM_DPC_BEHAVIOR_INFORMATION
     ULONG IdealDpcRate;
 } SYSTEM_DPC_BEHAVIOR_INFORMATION, *PSYSTEM_DPC_BEHAVIOR_INFORMATION;
 
-/* Class 25 */
+// Class 25
 typedef struct _SYSTEM_MEMORY_INFO
 {
     PUCHAR StringOffset;
@@ -774,7 +881,7 @@ typedef struct _SYSTEM_MEMORY_INFORMATION
     SYSTEM_MEMORY_INFO Memory[1];
 } SYSTEM_MEMORY_INFORMATION, *PSYSTEM_MEMORY_INFORMATION;
 
-/* Class 26 */
+// Class 26
 typedef struct _SYSTEM_GDI_DRIVER_INFORMATION
 {
     UNICODE_STRING DriverName;
@@ -784,10 +891,10 @@ typedef struct _SYSTEM_GDI_DRIVER_INFORMATION
     PIMAGE_EXPORT_DIRECTORY ExportSectionPointer;
 } SYSTEM_GDI_DRIVER_INFORMATION, *PSYSTEM_GDI_DRIVER_INFORMATION;
 
-/* Class 27 */
-/* Not an actuall class, simply a PVOID to the ImageAddress */
+// Class 27
+// Not an actually class, simply a PVOID to the ImageAddress 
 
-/* Class 28 */
+// Class 28
 typedef struct _SYSTEM_QUERY_TIME_ADJUST_INFORMATION
 {
     ULONG TimeAdjustment;
@@ -801,18 +908,17 @@ typedef struct _SYSTEM_SET_TIME_ADJUST_INFORMATION
     BOOLEAN Enable;
 } SYSTEM_SET_TIME_ADJUST_INFORMATION, *PSYSTEM_SET_TIME_ADJUST_INFORMATION;
 
-/* Class 29 - Same as 25 */
+// Class 29 - Same as 25
 
-/* Class 30 - 31 */
-/* FIXME */
+// FIXME: Class 30 - 31
 
-/* Class 32 */
+// Class 32
 typedef struct _SYSTEM_CRASH_DUMP_INFORMATION
 {
     HANDLE CrashDumpSection;
 } SYSTEM_CRASH_DUMP_INFORMATION, *PSYSTEM_CRASH_DUMP_INFORMATION;
 
-/* Class 33 */
+// Class 33
 typedef struct _SYSTEM_EXCEPTION_INFORMATION
 {
     ULONG AlignmentFixupCount;
@@ -821,20 +927,20 @@ typedef struct _SYSTEM_EXCEPTION_INFORMATION
     ULONG ByteWordEmulationCount;
 } SYSTEM_EXCEPTION_INFORMATION, *PSYSTEM_EXCEPTION_INFORMATION;
 
-/* Class 34 */
+// Class 34
 typedef struct _SYSTEM_CRASH_STATE_INFORMATION
 {
     ULONG ValidCrashDump;
 } SYSTEM_CRASH_STATE_INFORMATION, *PSYSTEM_CRASH_STATE_INFORMATION;
 
-/* Class 35 */
+// Class 35
 typedef struct _SYSTEM_KERNEL_DEBUGGER_INFORMATION
 {
     BOOLEAN KernelDebuggerEnabled;
     BOOLEAN KernelDebuggerNotPresent;
 } SYSTEM_KERNEL_DEBUGGER_INFORMATION, *PSYSTEM_KERNEL_DEBUGGER_INFORMATION;
 
-/* Class 36 */
+// Class 36
 typedef struct _SYSTEM_CONTEXT_SWITCH_INFORMATION
 {
     ULONG ContextSwitches;
@@ -851,7 +957,7 @@ typedef struct _SYSTEM_CONTEXT_SWITCH_INFORMATION
     ULONG SwitchToIdle;
 } SYSTEM_CONTEXT_SWITCH_INFORMATION, *PSYSTEM_CONTEXT_SWITCH_INFORMATION;
 
-/* Class 37 */
+// Class 37
 typedef struct _SYSTEM_REGISTRY_QUOTA_INFORMATION
 {
     ULONG RegistryQuotaAllowed;
@@ -859,20 +965,20 @@ typedef struct _SYSTEM_REGISTRY_QUOTA_INFORMATION
     ULONG PagedPoolSize;
 } SYSTEM_REGISTRY_QUOTA_INFORMATION, *PSYSTEM_REGISTRY_QUOTA_INFORMATION;
 
-/* Class 38 */
-/* Not a structure, simply send the UNICODE_STRING */
+// Class 38
+// Not a structure, simply send the UNICODE_STRING
 
-/* Class 39 */
-/* Not a structure, simply send a ULONG containing the new separation */
+// Class 39
+// Not a structure, simply send a ULONG containing the new separation
 
-/* Class 40 */
+// Class 40
 typedef struct _SYSTEM_PLUGPLAY_BUS_INFORMATION
 {
     ULONG BusCount;
     PLUGPLAY_BUS_INSTANCE BusInstance[1];
 } SYSTEM_PLUGPLAY_BUS_INFORMATION, *PSYSTEM_PLUGPLAY_BUS_INFORMATION;
 
-/* Class 41 */
+// Class 41
 typedef struct _SYSTEM_DOCK_INFORMATION
 {
     SYSTEM_DOCK_STATE DockState;
@@ -881,9 +987,8 @@ typedef struct _SYSTEM_DOCK_INFORMATION
     ULONG SlotNumber;
 } SYSTEM_DOCK_INFORMATION, *PSYSTEM_DOCK_INFORMATION;
 
-/* Class 42 */
-/* FIXME: Conflict with WINNT.H */
-typedef struct __SYSTEM_POWER_INFORMATION
+// Class 42
+typedef struct _SYSTEM_POWER_INFORMATION_NATIVE
 {
     BOOLEAN SystemSuspendSupported;
     BOOLEAN SystemHibernateSupported;
@@ -895,20 +1000,20 @@ typedef struct __SYSTEM_POWER_INFORMATION
     BOOLEAN SystemAcOrDc;
     BOOLEAN PowerDownDisabled;
     LARGE_INTEGER SpindownDrives;
-} _SYSTEM_POWER_INFORMATION, *P_SYSTEM_POWER_INFORMATION;
+} SYSTEM_POWER_INFORMATION_NATIVE, *PSYSTEM_POWER_INFORMATION_NATIVE;
 
-/* Class 43 */
+// Class 43
 typedef struct _SYSTEM_LEGACY_DRIVER_INFORMATION
 {
     PNP_VETO_TYPE VetoType;
     UNICODE_STRING VetoDriver;
-    /* Buffer Follows */
+    // CHAR Buffer[0];
 } SYSTEM_LEGACY_DRIVER_INFORMATION, *PSYSTEM_LEGACY_DRIVER_INFORMATION;
 
-/* Class 44 */
+// Class 44
 typedef struct _TIME_ZONE_INFORMATION RTL_TIME_ZONE_INFORMATION;
 
-/* Class 45 */
+// Class 45
 typedef struct _SYSTEM_LOOKASIDE_INFORMATION
 {
     USHORT CurrentDepth;
@@ -922,34 +1027,30 @@ typedef struct _SYSTEM_LOOKASIDE_INFORMATION
     ULONG Size;
 } SYSTEM_LOOKASIDE_INFORMATION, *PSYSTEM_LOOKASIDE_INFORMATION;
 
-/* Class 46 */
-/* Not a structure. Only a HANDLE for the SlipEvent; */
+// Class 46
+// Not a structure. Only a HANDLE for the SlipEvent;
 
-/* Class 47 */
-/* Not a structure. Only a ULONG for the SessionId; */
+// Class 47
+// Not a structure. Only a ULONG for the SessionId;
 
-/* Class 48 */
-/* Not a structure. Only a ULONG for the SessionId; */
+// Class 48
+// Not a structure. Only a ULONG for the SessionId;
 
-/* Class 49 */
-/* FIXME */
+// FIXME: Class 49
 
-/* Class 50 */
-/* Not a structure. Only a ULONG_PTR for the SystemRangeStart */
+// Class 50
+// Not a structure. Only a ULONG_PTR for the SystemRangeStart
 
-/* Class 51 */
-/* FIXME. Based on MM_DRIVER_VERIFIER_DATA */
+// FIXME: Class 51 (Based on MM_DRIVER_VERIFIER_DATA)
 
-/* Class 52 */
-/* FIXME */
+// FIXME: Class 52
 
-/* Class 53 */
+// Class 53 
 typedef struct _SYSTEM_SESSION_PROCESSES_INFORMATION
 {
-    ULONG    SessionId;
-    ULONG    BufferSize;
-    PVOID    Buffer; /* same format as in SystemProcessInformation */
-} SYSTEM_SESSION_PROCESSES_INFORMATION, * PSYSTEM_SESSION_PROCESSES_INFORMATION;
+    ULONG SessionId;
+    ULONG BufferSize;
+    PVOID Buffer; // Same format as in SystemProcessInformation
+} SYSTEM_SESSION_PROCESSES_INFORMATION, *PSYSTEM_SESSION_PROCESSES_INFORMATION;
 
 #endif
-