- Remove deprecated zwtypes.h and spread out the types in the NT subsystems where...
authorAlex Ionescu <aionescu@gmail.com>
Tue, 6 Sep 2005 15:57:42 +0000 (15:57 +0000)
committerAlex Ionescu <aionescu@gmail.com>
Tue, 6 Sep 2005 15:57:42 +0000 (15:57 +0000)
svn path=/trunk/; revision=17699

reactos/include/ndk/cmtypes.h
reactos/include/ndk/extypes.h
reactos/include/ndk/iotypes.h
reactos/include/ndk/ldrfuncs.h
reactos/include/ndk/lpctypes.h
reactos/include/ndk/mmtypes.h
reactos/include/ndk/ntndk.h
reactos/include/ndk/obtypes.h
reactos/include/ndk/potypes.h
reactos/include/ndk/pstypes.h
reactos/include/ndk/zwtypes.h [deleted file]

index 062dd9a..4a2e020 100644 (file)
 #define _CMTYPES_H\r
 \r
 /* DEPENDENCIES **************************************************************/\r
 #define _CMTYPES_H\r
 \r
 /* DEPENDENCIES **************************************************************/\r
+#include <cfg.h>\r
+#include "iotypes.h"\r
 \r
 /* EXPORTED DATA *************************************************************/\r
 \r
 /* CONSTANTS *****************************************************************/\r
 \r
 /* EXPORTED DATA *************************************************************/\r
 \r
 /* CONSTANTS *****************************************************************/\r
+#define MAX_BUS_NAME 24\r
+\r
+/* PLUGPLAY_CONTROL_RELATED_DEVICE_DATA.Relation values */\r
+#define PNP_GET_PARENT_DEVICE  1\r
+#define PNP_GET_CHILD_DEVICE   2\r
+#define PNP_GET_SIBLING_DEVICE 3\r
+\r
+/* PLUGPLAY_CONTROL_STATUS_DATA.Operation values */\r
+#define PNP_GET_DEVICE_STATUS    0\r
+#define PNP_SET_DEVICE_STATUS    1\r
+#define PNP_CLEAR_DEVICE_STATUS  2\r
 \r
 /* ENUMERATIONS **************************************************************/\r
 \r
 \r
 /* ENUMERATIONS **************************************************************/\r
 \r
@@ -44,9 +57,46 @@ typedef enum _KEY_SET_INFORMATION_CLASS
     KeyUserFlagsInformation,\r
     MaxKeySetInfoClass\r
 } KEY_SET_INFORMATION_CLASS;\r
     KeyUserFlagsInformation,\r
     MaxKeySetInfoClass\r
 } KEY_SET_INFORMATION_CLASS;\r
+#endif\r
+\r
+typedef enum _PLUGPLAY_CONTROL_CLASS\r
+{\r
+    PlugPlayControlUserResponse = 0x07,\r
+    PlugPlayControlProperty = 0x0A,\r
+    PlugPlayControlGetRelatedDevice = 0x0C,\r
+    PlugPlayControlDeviceStatus = 0x0E,\r
+    PlugPlayControlGetDeviceDepth\r
+} PLUGPLAY_CONTROL_CLASS;\r
+\r
+typedef enum _PLUGPLAY_BUS_CLASS\r
+{\r
+    SystemBus,\r
+    PlugPlayVirtualBus,\r
+    MaxPlugPlayBusClass\r
+} PLUGPLAY_BUS_CLASS, *PPLUGPLAY_BUS_CLASS;\r
 \r
 \r
+typedef enum _PLUGPLAY_VIRTUAL_BUS_TYPE\r
+{\r
+    Root,\r
+    MaxPlugPlayVirtualBusType\r
+} PLUGPLAY_VIRTUAL_BUS_TYPE, *PPLUGPLAY_VIRTUAL_BUS_TYPE;\r
+\r
+typedef enum _PLUGPLAY_EVENT_CATEGORY\r
+{\r
+    HardwareProfileChangeEvent,\r
+    TargetDeviceChangeEvent,\r
+    DeviceClassChangeEvent,\r
+    CustomDeviceEvent,\r
+    DeviceInstallEvent,\r
+    DeviceArrivalEvent,\r
+    PowerEvent,\r
+    VetoEvent,\r
+    BlockedDriverEvent,\r
+    MaxPlugEventCategory\r
+} PLUGPLAY_EVENT_CATEGORY;\r
 /* TYPES *********************************************************************/\r
 \r
 /* TYPES *********************************************************************/\r
 \r
+#ifdef NTOS_MODE_USER\r
 typedef struct _KEY_WRITE_TIME_INFORMATION\r
 {\r
     LARGE_INTEGER LastWriteTime;\r
 typedef struct _KEY_WRITE_TIME_INFORMATION\r
 {\r
     LARGE_INTEGER LastWriteTime;\r
@@ -125,5 +175,105 @@ typedef struct _KEY_BASIC_INFORMATION
 } KEY_BASIC_INFORMATION, *PKEY_BASIC_INFORMATION;\r
 \r
 #endif\r
 } KEY_BASIC_INFORMATION, *PKEY_BASIC_INFORMATION;\r
 \r
 #endif\r
+\r
+typedef struct _PLUGPLAY_EVENT_BLOCK\r
+{\r
+    GUID EventGuid;\r
+    PLUGPLAY_EVENT_CATEGORY EventCategory;\r
+    PULONG Result;\r
+    ULONG Flags;\r
+    ULONG TotalSize;\r
+    PVOID DeviceObject;\r
+    union\r
+    {\r
+        struct\r
+        {\r
+            GUID ClassGuid;\r
+            WCHAR SymbolicLinkName[ANYSIZE_ARRAY];\r
+        } DeviceClass;\r
+        struct\r
+        {\r
+            WCHAR DeviceIds[ANYSIZE_ARRAY];\r
+        } TargetDevice;\r
+        struct\r
+        {\r
+            WCHAR DeviceId[ANYSIZE_ARRAY];\r
+        } InstallDevice;\r
+        struct\r
+        {\r
+            PVOID NotificationStructure;\r
+            WCHAR DeviceIds[ANYSIZE_ARRAY];\r
+        } CustomNotification;\r
+        struct\r
+        {\r
+            PVOID Notification;\r
+        } ProfileNotification;\r
+        struct\r
+        {\r
+            ULONG NotificationCode;\r
+            ULONG NotificationData;\r
+        } PowerNotification;\r
+        struct\r
+        {\r
+            PNP_VETO_TYPE VetoType;\r
+            WCHAR DeviceIdVetoNameBuffer[ANYSIZE_ARRAY];\r
+        } VetoNotification;\r
+        struct\r
+        {\r
+            GUID BlockedDriverGuid;\r
+        } BlockedDriverNotification;\r
+    };\r
+} PLUGPLAY_EVENT_BLOCK, *PPLUGPLAY_EVENT_BLOCK;\r
+\r
+/* Class 0x0A */\r
+typedef struct _PLUGPLAY_CONTROL_PROPERTY_DATA\r
+{\r
+    UNICODE_STRING DeviceInstance;\r
+    ULONG Property;\r
+    PVOID Buffer;\r
+    ULONG BufferSize;\r
+} PLUGPLAY_CONTROL_PROPERTY_DATA, *PPLUGPLAY_CONTROL_PROPERTY_DATA;\r
+\r
+/* Class 0x0C */\r
+typedef struct _PLUGPLAY_CONTROL_RELATED_DEVICE_DATA\r
+{\r
+    UNICODE_STRING TargetDeviceInstance;\r
+    ULONG Relation; /* 1: Parent  2: Child  3: Sibling */\r
+    UNICODE_STRING RelatedDeviceInstance;\r
+} PLUGPLAY_CONTROL_RELATED_DEVICE_DATA, *PPLUGPLAY_CONTROL_RELATED_DEVICE_DATA;\r
+\r
+/* Class 0x0E */\r
+typedef struct _PLUGPLAY_CONTOL_STATUS_DATA\r
+{\r
+    UNICODE_STRING DeviceInstance;\r
+    ULONG Operation;       /* 0: Get  1: Set  2: Clear */\r
+    ULONG DeviceStatus;    /* DN_       see cfg.h */\r
+    ULONG DeviceProblem;   /* CM_PROB_  see cfg.h */\r
+} PLUGPLAY_CONTROL_STATUS_DATA, *PPLUGPLAY_CONTROL_STATUS_DATA;\r
+\r
+/* Class 0x0F */\r
+typedef struct _PLUGPLAY_CONTOL_DEPTH_DATA\r
+{\r
+    UNICODE_STRING DeviceInstance;\r
+    ULONG Depth;\r
+} PLUGPLAY_CONTROL_DEPTH_DATA, *PPLUGPLAY_CONTROL_DEPTH_DATA;\r
+\r
+typedef struct _PLUGPLAY_BUS_TYPE\r
+{\r
+    PLUGPLAY_BUS_CLASS BusClass;\r
+    union\r
+    {\r
+        INTERFACE_TYPE SystemBusType;\r
+        PLUGPLAY_VIRTUAL_BUS_TYPE PlugPlayVirtualBusType;\r
+    };\r
+} PLUGPLAY_BUS_TYPE, *PPLUGPLAY_BUS_TYPE;\r
+\r
+typedef struct _PLUGPLAY_BUS_INSTANCE\r
+{\r
+    PLUGPLAY_BUS_TYPE BusType;\r
+    ULONG BusNumber;\r
+    WCHAR BusName[MAX_BUS_NAME];\r
+} PLUGPLAY_BUS_INSTANCE, *PPLUGPLAY_BUS_INSTANCE;\r
+\r
 #endif\r
 \r
 #endif\r
 \r
index 1160075..4d1a052 100644 (file)
 #define _EXTYPES_H
 
 /* DEPENDENCIES **************************************************************/
 #define _EXTYPES_H
 
 /* DEPENDENCIES **************************************************************/
+#include <cfg.h>
+/* FIXME: this needs be implemented in the w32api ddk */
+#ifdef _MSC_VER
+#include <ntimage.h>
+#endif
+#include "cmtypes.h"
+#include "ketypes.h"
+#include "pstypes.h"
+#include "potypes.h"
 
 /* EXPORTED DATA *************************************************************/
 #ifndef NTOS_MODE_USER
 
 /* EXPORTED DATA *************************************************************/
 #ifndef NTOS_MODE_USER
@@ -32,6 +41,10 @@ extern POBJECT_TYPE NTSYSAPI ExTimerType;
 #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 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
 #ifdef NTOS_MODE_USER
 #define EVENT_QUERY_STATE       0x0001
 #define SEMAPHORE_QUERY_STATE   0x0001
 #ifdef NTOS_MODE_USER
 #define EVENT_QUERY_STATE       0x0001
 #define SEMAPHORE_QUERY_STATE   0x0001
@@ -40,9 +53,127 @@ extern POBJECT_TYPE NTSYSAPI ExTimerType;
 #define MAXIMUM_HARDERROR_PARAMETERS 4
 
 /* ENUMERATIONS **************************************************************/
 #define MAXIMUM_HARDERROR_PARAMETERS 4
 
 /* ENUMERATIONS **************************************************************/
+typedef enum _SHUTDOWN_ACTION
+{
+    ShutdownNoReboot,
+    ShutdownReboot,
+    ShutdownPowerOff
+} SHUTDOWN_ACTION;
+
+typedef enum _HARDERROR_RESPONSE_OPTION
+{
+    OptionAbortRetryIgnore,
+    OptionOk,
+    OptionOkCancel,
+    OptionRetryCancel,
+    OptionYesNo,
+    OptionYesNoCancel,
+    OptionShutdownSystem
+} HARDERROR_RESPONSE_OPTION, *PHARDERROR_RESPONSE_OPTION;
+
+typedef enum _HARDERROR_RESPONSE
+{
+    ResponseReturnToCaller,
+    ResponseNotHandled,
+    ResponseAbort,
+    ResponseCancel,
+    ResponseIgnore,
+    ResponseNo,
+    ResponseOk,
+    ResponseRetry,
+    ResponseYes
+} HARDERROR_RESPONSE, *PHARDERROR_RESPONSE;
+
+typedef enum _SYSTEM_INFORMATION_CLASS
+{
+    SystemBasicInformation,
+    SystemProcessorInformation,
+    SystemPerformanceInformation,
+    SystemTimeOfDayInformation,
+    SystemPathInformation, /* OBSOLETE: USE KUSER_SHARED_DATA */
+    SystemProcessInformation,
+    SystemCallCountInformation,
+    SystemDeviceInformation,
+    SystemProcessorPerformanceInformation,
+    SystemFlagsInformation,
+    SystemCallTimeInformation,
+    SystemModuleInformation,
+    SystemLocksInformation,
+    SystemStackTraceInformation,
+    SystemPagedPoolInformation,
+    SystemNonPagedPoolInformation,
+    SystemHandleInformation,
+    SystemObjectInformation,
+    SystemPageFileInformation,
+    SystemVdmInstemulInformation,
+    SystemVdmBopInformation,
+    SystemFileCacheInformation,
+    SystemPoolTagInformation,
+    SystemInterruptInformation,
+    SystemDpcBehaviorInformation,
+    SystemFullMemoryInformation,
+    SystemLoadGdiDriverInformation,
+    SystemUnloadGdiDriverInformation,
+    SystemTimeAdjustmentInformation,
+    SystemSummaryMemoryInformation,
+    SystemNextEventIdInformation,
+    SystemEventIdsInformation,
+    SystemCrashDumpInformation,
+    SystemExceptionInformation,
+    SystemCrashDumpStateInformation,
+    SystemKernelDebuggerInformation,
+    SystemContextSwitchInformation,
+    SystemRegistryQuotaInformation,
+    SystemExtendServiceTableInformation,
+    SystemPrioritySeperation,
+    SystemPlugPlayBusInformation,
+    SystemDockInformation,
+    _SystemPowerInformation, /* FIXME */
+    SystemProcessorSpeedInformation,
+    SystemCurrentTimeZoneInformation,
+    SystemLookasideInformation,
+    SystemTimeSlipNotification,
+    SystemSessionCreate,
+    SystemSessionDetach,
+    SystemSessionInformation,
+    SystemRangeStartInformation,
+    SystemVerifierInformation,
+    SystemAddVerifier,
+    SystemSessionProcessesInformation,
+    SystemInformationClassMax
+} SYSTEM_INFORMATION_CLASS;
+
+typedef enum _MUTANT_INFORMATION_CLASS
+{
+    MutantBasicInformation
+} MUTANT_INFORMATION_CLASS;
+
+typedef enum _ATOM_INFORMATION_CLASS
+{
+    AtomBasicInformation,
+    AtomTableInformation,
+} ATOM_INFORMATION_CLASS;
+
+typedef enum _TIMER_INFORMATION_CLASS
+{
+    TimerBasicInformation
+} TIMER_INFORMATION_CLASS;
+
+typedef enum _SEMAPHORE_INFORMATION_CLASS
+{
+    SemaphoreBasicInformation
+} SEMAPHORE_INFORMATION_CLASS;
+
+typedef enum _EVENT_INFORMATION_CLASS
+{
+    EventBasicInformation
+} EVENT_INFORMATION_CLASS;
 
 /* TYPES *********************************************************************/
 
 
 /* TYPES *********************************************************************/
 
+typedef USHORT LANGID, *PLANGID;
+typedef USHORT RTL_ATOM, *PRTL_ATOM;
+
 #ifndef NTOS_MODE_USER
 typedef struct _EX_QUEUE_WORKER_INFO
 {
 #ifndef NTOS_MODE_USER
 typedef struct _EX_QUEUE_WORKER_INFO
 {
@@ -123,5 +254,703 @@ typedef struct _HANDLE_TABLE
 } HANDLE_TABLE, *PHANDLE_TABLE;
 
 #endif
 } HANDLE_TABLE, *PHANDLE_TABLE;
 
 #endif
+
+typedef struct _MUTANT_BASIC_INFORMATION
+{
+    LONG CurrentCount;
+    BOOLEAN OwnedByCaller;
+    BOOLEAN AbandonedState;
+} MUTANT_BASIC_INFORMATION, *PMUTANT_BASIC_INFORMATION;
+
+typedef struct _ATOM_BASIC_INFORMATION
+{
+    USHORT UsageCount;
+    USHORT Flags;
+    USHORT NameLength;
+    WCHAR Name[1];
+} ATOM_BASIC_INFORMATION, *PATOM_BASIC_INFORMATION;
+
+typedef struct _ATOM_TABLE_INFORMATION
+{
+    ULONG NumberOfAtoms;
+    USHORT Atoms[1];
+} ATOM_TABLE_INFORMATION, *PATOM_TABLE_INFORMATION;
+
+typedef struct _TIMER_BASIC_INFORMATION
+{
+    LARGE_INTEGER TimeRemaining;
+    BOOLEAN SignalState;
+} TIMER_BASIC_INFORMATION, *PTIMER_BASIC_INFORMATION;
+
+typedef struct _SEMAPHORE_BASIC_INFORMATION
+{
+    LONG CurrentCount;
+    LONG MaximumCount;
+} SEMAPHORE_BASIC_INFORMATION, *PSEMAPHORE_BASIC_INFORMATION;
+
+typedef struct _EVENT_BASIC_INFORMATION
+{
+    EVENT_TYPE EventType;
+    LONG EventState;
+} EVENT_BASIC_INFORMATION, *PEVENT_BASIC_INFORMATION;
+
+/* Class 0 */
+typedef struct _SYSTEM_BASIC_INFORMATION
+{
+    ULONG Reserved;
+    ULONG TimerResolution;
+    ULONG PageSize;
+    ULONG NumberOfPhysicalPages;
+    ULONG LowestPhysicalPageNumber;
+    ULONG HighestPhysicalPageNumber;
+    ULONG AllocationGranularity;
+    ULONG MinimumUserModeAddress;
+    ULONG MaximumUserModeAddress;
+    KAFFINITY ActiveProcessorsAffinityMask;
+    CCHAR NumberOfProcessors;
+} SYSTEM_BASIC_INFORMATION, *PSYSTEM_BASIC_INFORMATION;
+
+/* Class 1 */
+typedef struct _SYSTEM_PROCESSOR_INFORMATION
+{
+    USHORT ProcessorArchitecture;
+    USHORT ProcessorLevel;
+    USHORT ProcessorRevision;
+    USHORT Reserved;
+    ULONG ProcessorFeatureBits;
+} SYSTEM_PROCESSOR_INFORMATION, *PSYSTEM_PROCESSOR_INFORMATION;
+
+/* Class 2 */
+typedef struct _SYSTEM_PERFORMANCE_INFORMATION
+{
+    LARGE_INTEGER IdleProcessTime;
+    LARGE_INTEGER IoReadTransferCount;
+    LARGE_INTEGER IoWriteTransferCount;
+    LARGE_INTEGER IoOtherTransferCount;
+    ULONG IoReadOperationCount;
+    ULONG IoWriteOperationCount;
+    ULONG IoOtherOperationCount;
+    ULONG AvailablePages;
+    ULONG CommittedPages;
+    ULONG CommitLimit;
+    ULONG PeakCommitment;
+    ULONG PageFaultCount;
+    ULONG CopyOnWriteCount;
+    ULONG TransitionCount;
+    ULONG CacheTransitionCount;
+    ULONG DemandZeroCount;
+    ULONG PageReadCount;
+    ULONG PageReadIoCount;
+    ULONG CacheReadCount;
+    ULONG CacheIoCount;
+    ULONG DirtyPagesWriteCount;
+    ULONG DirtyWriteIoCount;
+    ULONG MappedPagesWriteCount;
+    ULONG MappedWriteIoCount;
+    ULONG PagedPoolPages;
+    ULONG NonPagedPoolPages;
+    ULONG PagedPoolAllocs;
+    ULONG PagedPoolFrees;
+    ULONG NonPagedPoolAllocs;
+    ULONG NonPagedPoolFrees;
+    ULONG FreeSystemPtes;
+    ULONG ResidentSystemCodePage;
+    ULONG TotalSystemDriverPages;
+    ULONG TotalSystemCodePages;
+    ULONG NonPagedPoolLookasideHits;
+    ULONG PagedPoolLookasideHits;
+    ULONG Spare3Count;
+    ULONG ResidentSystemCachePage;
+    ULONG ResidentPagedPoolPage;
+    ULONG ResidentSystemDriverPage;
+    ULONG CcFastReadNoWait;
+    ULONG CcFastReadWait;
+    ULONG CcFastReadResourceMiss;
+    ULONG CcFastReadNotPossible;
+    ULONG CcFastMdlReadNoWait;
+    ULONG CcFastMdlReadWait;
+    ULONG CcFastMdlReadResourceMiss;
+    ULONG CcFastMdlReadNotPossible;
+    ULONG CcMapDataNoWait;
+    ULONG CcMapDataWait;
+    ULONG CcMapDataNoWaitMiss;
+    ULONG CcMapDataWaitMiss;
+    ULONG CcPinMappedDataCount;
+    ULONG CcPinReadNoWait;
+    ULONG CcPinReadWait;
+    ULONG CcPinReadNoWaitMiss;
+    ULONG CcPinReadWaitMiss;
+    ULONG CcCopyReadNoWait;
+    ULONG CcCopyReadWait;
+    ULONG CcCopyReadNoWaitMiss;
+    ULONG CcCopyReadWaitMiss;
+    ULONG CcMdlReadNoWait;
+    ULONG CcMdlReadWait;
+    ULONG CcMdlReadNoWaitMiss;
+    ULONG CcMdlReadWaitMiss;
+    ULONG CcReadAheadIos;
+    ULONG CcLazyWriteIos;
+    ULONG CcLazyWritePages;
+    ULONG CcDataFlushes;
+    ULONG CcDataPages;
+    ULONG ContextSwitches;
+    ULONG FirstLevelTbFills;
+    ULONG SecondLevelTbFills;
+    ULONG SystemCalls;
+} SYSTEM_PERFORMANCE_INFORMATION, *PSYSTEM_PERFORMANCE_INFORMATION;
+
+/* Class 3 */
+typedef struct _SYSTEM_TIMEOFDAY_INFORMATION
+{
+    LARGE_INTEGER BootTime;
+    LARGE_INTEGER CurrentTime;
+    LARGE_INTEGER TimeZoneBias;
+    ULONG TimeZoneId;
+    ULONG Reserved;
+} SYSTEM_TIMEOFDAY_INFORMATION, *PSYSTEM_TIMEOFDAY_INFORMATION;
+
+/* Class 4 */
+/* This class is obsoleted, please use KUSER_SHARED_DATA instead */
+
+/* Class 5 */
+typedef struct _SYSTEM_THREAD_INFORMATION
+{
+    LARGE_INTEGER KernelTime;
+    LARGE_INTEGER UserTime;
+    LARGE_INTEGER CreateTime;
+    ULONG WaitTime;
+    PVOID StartAddress;
+    CLIENT_ID ClientId;
+    KPRIORITY Priority;
+    LONG BasePriority;
+    ULONG ContextSwitches;
+    ULONG ThreadState;
+    ULONG WaitReason;
+} SYSTEM_THREAD_INFORMATION, *PSYSTEM_THREAD_INFORMATION;
+
+typedef struct _SYSTEM_PROCESS_INFORMATION
+{
+    ULONG NextEntryOffset;
+    ULONG NumberOfThreads;
+    LARGE_INTEGER SpareLi1;
+    LARGE_INTEGER SpareLi2;
+    LARGE_INTEGER SpareLi3;
+    LARGE_INTEGER CreateTime;
+    LARGE_INTEGER UserTime;
+    LARGE_INTEGER KernelTime;
+    UNICODE_STRING ImageName;
+    KPRIORITY BasePriority;
+    HANDLE UniqueProcessId;
+    HANDLE InheritedFromUniqueProcessId;
+    ULONG HandleCount;
+    ULONG SessionId;
+    ULONG PageDirectoryFrame;
+
+    /*
+     * This part corresponds to VM_COUNTERS_EX.
+     * NOTE: *NOT* THE SAME AS VM_COUNTERS!
+     */
+    ULONG PeakVirtualSize;
+    ULONG VirtualSize;
+    ULONG PageFaultCount;
+    ULONG PeakWorkingSetSize;
+    ULONG WorkingSetSize;
+    ULONG QuotaPeakPagedPoolUsage;
+    ULONG QuotaPagedPoolUsage;
+    ULONG QuotaPeakNonPagedPoolUsage;
+    ULONG QuotaNonPagedPoolUsage;
+    ULONG PagefileUsage;
+    ULONG PeakPagefileUsage;
+    ULONG PrivateUsage;
+
+    /* This part corresponds to IO_COUNTERS */
+    LARGE_INTEGER ReadOperationCount;
+    LARGE_INTEGER WriteOperationCount;
+    LARGE_INTEGER OtherOperationCount;
+    LARGE_INTEGER ReadTransferCount;
+    LARGE_INTEGER WriteTransferCount;
+    LARGE_INTEGER OtherTransferCount;
+
+    /* Finally, the array of Threads */
+    SYSTEM_THREAD_INFORMATION TH[1];
+} SYSTEM_PROCESS_INFORMATION, *PSYSTEM_PROCESS_INFORMATION;
+
+/* Class 6 */
+typedef struct _SYSTEM_CALL_COUNT_INFORMATION
+{
+    ULONG Length;
+    ULONG NumberOfTables;
+} SYSTEM_CALL_COUNT_INFORMATION, *PSYSTEM_CALL_COUNT_INFORMATION;
+
+/* Class 7 */
+typedef struct _SYSTEM_DEVICE_INFORMATION
+{
+    ULONG NumberOfDisks;
+    ULONG NumberOfFloppies;
+    ULONG NumberOfCdRoms;
+    ULONG NumberOfTapes;
+    ULONG NumberOfSerialPorts;
+    ULONG NumberOfParallelPorts;
+} SYSTEM_DEVICE_INFORMATION, *PSYSTEM_DEVICE_INFORMATION;
+
+/* Class 8 */
+typedef struct _SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION
+{
+    LARGE_INTEGER IdleTime;
+    LARGE_INTEGER KernelTime;
+    LARGE_INTEGER UserTime;
+    LARGE_INTEGER DpcTime;
+    LARGE_INTEGER InterruptTime;
+    ULONG InterruptCount;
+} SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION, *PSYSTEM_PROCESSOR_PERFORMANCE_INFORMATION;
+
+/* Class 9 */
+typedef struct _SYSTEM_FLAGS_INFORMATION
+{
+    ULONG Flags;
+} SYSTEM_FLAGS_INFORMATION, *PSYSTEM_FLAGS_INFORMATION;
+
+/* Class 10 */
+typedef struct _SYSTEM_CALL_TIME_INFORMATION
+{
+    ULONG Length;
+    ULONG TotalCalls;
+    LARGE_INTEGER TimeOfCalls[1];
+} SYSTEM_CALL_TIME_INFORMATION, *PSYSTEM_CALL_TIME_INFORMATION;
+
+/* Class 11 */
+typedef struct _SYSTEM_MODULE_INFORMATION_ENTRY
+{
+    ULONG  Unknown1;
+    ULONG  Unknown2;
+    PVOID  Base;
+    ULONG  Size;
+    ULONG  Flags;
+    USHORT  Index;
+    USHORT  NameLength;
+    USHORT  LoadCount;
+    USHORT  PathLength;
+    CHAR  ImageName[256];
+} SYSTEM_MODULE_INFORMATION_ENTRY, *PSYSTEM_MODULE_INFORMATION_ENTRY;
+typedef struct _SYSTEM_MODULE_INFORMATION
+{
+    ULONG Count;
+    SYSTEM_MODULE_INFORMATION_ENTRY Module[1];
+} SYSTEM_MODULE_INFORMATION, *PSYSTEM_MODULE_INFORMATION;
+
+/* Class 12 */
+typedef struct _SYSTEM_RESOURCE_LOCK_ENTRY
+{
+    ULONG  ResourceAddress;
+    ULONG  Always1;
+    ULONG  Unknown;
+    ULONG  ActiveCount;
+    ULONG  ContentionCount;
+    ULONG  Unused[2];
+    ULONG  NumberOfSharedWaiters;
+    ULONG  NumberOfExclusiveWaiters;
+} SYSTEM_RESOURCE_LOCK_ENTRY, *PSYSTEM_RESOURCE_LOCK_ENTRY;
+
+typedef struct _SYSTEM_RESOURCE_LOCK_INFO
+{
+    ULONG Count;
+    SYSTEM_RESOURCE_LOCK_ENTRY Lock[1];
+} SYSTEM_RESOURCE_LOCK_INFO, *PSYSTEM_RESOURCE_LOCK_INFO;
+
+/* 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 */
+typedef struct _SYSTEM_POOL_ENTRY
+{
+    BOOLEAN Allocated;
+    BOOLEAN Spare0;
+    USHORT AllocatorBackTraceIndex;
+    ULONG Size;
+    union
+    {
+        UCHAR Tag[4];
+        ULONG TagUlong;
+        PVOID ProcessChargedQuota;
+    };
+} SYSTEM_POOL_ENTRY, *PSYSTEM_POOL_ENTRY;
+
+typedef struct _SYSTEM_POOL_INFORMATION
+{
+    ULONG TotalSize;
+    PVOID FirstEntry;
+    USHORT EntryOverhead;
+    BOOLEAN PoolTagPresent;
+    BOOLEAN Spare0;
+    ULONG NumberOfEntries;
+    SYSTEM_POOL_ENTRY Entries[1];
+} SYSTEM_POOL_INFORMATION, *PSYSTEM_POOL_INFORMATION;
+
+/* Class 16 */
+typedef struct _SYSTEM_HANDLE_TABLE_ENTRY_INFO
+{
+    USHORT UniqueProcessId;
+    USHORT CreatorBackTraceIndex;
+    UCHAR ObjectTypeIndex;
+    UCHAR HandleAttributes;
+    USHORT HandleValue;
+    PVOID Object;
+    ULONG GrantedAccess;
+} SYSTEM_HANDLE_TABLE_ENTRY_INFO, *PSYSTEM_HANDLE_TABLE_ENTRY_INFO;
+
+typedef struct _SYSTEM_HANDLE_INFORMATION
+{
+    ULONG NumberOfHandles;
+    SYSTEM_HANDLE_TABLE_ENTRY_INFO Handles[1];
+} SYSTEM_HANDLE_INFORMATION, *PSYSTEM_HANDLE_INFORMATION;
+
+/* Class 17 */
+typedef struct _SYSTEM_OBJECTTYPE_INFORMATION
+{
+    ULONG NextEntryOffset;
+    ULONG NumberOfObjects;
+    ULONG NumberOfHandles;
+    ULONG TypeIndex;
+    ULONG InvalidAttributes;
+    GENERIC_MAPPING GenericMapping;
+    ULONG ValidAccessMask;
+    ULONG PoolType;
+    BOOLEAN SecurityRequired;
+    BOOLEAN WaitableObject;
+    UNICODE_STRING TypeName;
+} SYSTEM_OBJECTTYPE_INFORMATION, *PSYSTEM_OBJECTTYPE_INFORMATION;
+
+typedef struct _SYSTEM_OBJECT_INFORMATION
+{
+    ULONG NextEntryOffset;
+    PVOID Object;
+    HANDLE CreatorUniqueProcess;
+    USHORT CreatorBackTraceIndex;
+    USHORT Flags;
+    LONG PointerCount;
+    LONG HandleCount;
+    ULONG PagedPoolCharge;
+    ULONG NonPagedPoolCharge;
+    HANDLE ExclusiveProcessId;
+    PVOID SecurityDescriptor;
+    OBJECT_NAME_INFORMATION NameInfo;
+} SYSTEM_OBJECT_INFORMATION, *PSYSTEM_OBJECT_INFORMATION;
+
+/* Class 18 */
+typedef struct _SYSTEM_PAGEFILE_INFORMATION
+{
+    ULONG NextEntryOffset;
+    ULONG TotalSize;
+    ULONG TotalInUse;
+    ULONG PeakUsage;
+    UNICODE_STRING PageFileName;
+} SYSTEM_PAGEFILE_INFORMATION, *PSYSTEM_PAGEFILE_INFORMATION;
+
+/* Class 19 */
+typedef struct _SYSTEM_VDM_INSTEMUL_INFO
+{
+    ULONG SegmentNotPresent;
+    ULONG VdmOpcode0F;
+    ULONG OpcodeESPrefix;
+    ULONG OpcodeCSPrefix;
+    ULONG OpcodeSSPrefix;
+    ULONG OpcodeDSPrefix;
+    ULONG OpcodeFSPrefix;
+    ULONG OpcodeGSPrefix;
+    ULONG OpcodeOPER32Prefix;
+    ULONG OpcodeADDR32Prefix;
+    ULONG OpcodeINSB;
+    ULONG OpcodeINSW;
+    ULONG OpcodeOUTSB;
+    ULONG OpcodeOUTSW;
+    ULONG OpcodePUSHF;
+    ULONG OpcodePOPF;
+    ULONG OpcodeINTnn;
+    ULONG OpcodeINTO;
+    ULONG OpcodeIRET;
+    ULONG OpcodeINBimm;
+    ULONG OpcodeINWimm;
+    ULONG OpcodeOUTBimm;
+    ULONG OpcodeOUTWimm ;
+    ULONG OpcodeINB;
+    ULONG OpcodeINW;
+    ULONG OpcodeOUTB;
+    ULONG OpcodeOUTW;
+    ULONG OpcodeLOCKPrefix;
+    ULONG OpcodeREPNEPrefix;
+    ULONG OpcodeREPPrefix;
+    ULONG OpcodeHLT;
+    ULONG OpcodeCLI;
+    ULONG OpcodeSTI;
+    ULONG BopCount;
+} SYSTEM_VDM_INSTEMUL_INFO, *PSYSTEM_VDM_INSTEMUL_INFO;
+
+/* Class 20 */
+typedef struct _SYSTEM_VDM_BOP_INFO
+{
+    /* FIXME */
+    PVOID Dummy;
+} SYSTEM_VDM_BOP_INFO, *PSYSTEM_VDM_BOP_INFO;
+
+/* Class 21 */
+typedef struct _SYSTEM_CACHE_INFORMATION
+{
+    ULONG CurrentSize;
+    ULONG PeakSize;
+    ULONG PageFaultCount;
+    ULONG MinimumWorkingSet;
+    ULONG MaximumWorkingSet;
+    ULONG CurrentSizeIncludingTransitionInPages;
+    ULONG PeakSizeIncludingTransitionInPages;
+    ULONG Unused[2];
+} SYSTEM_CACHE_INFORMATION, *PSYSTEM_CACHE_INFORMATION;
+
+/* Class 22 */
+typedef struct _SYSTEM_POOLTAG
+{
+    union
+    {
+        UCHAR Tag[4];
+        ULONG TagUlong;
+    };
+    ULONG PagedAllocs;
+    ULONG PagedFrees;
+    ULONG PagedUsed;
+    ULONG NonPagedAllocs;
+    ULONG NonPagedFrees;
+    ULONG NonPagedUsed;
+} SYSTEM_POOLTAG, *PSYSTEM_POOLTAG;
+typedef struct _SYSTEM_POOLTAG_INFORMATION
+{
+    ULONG Count;
+    SYSTEM_POOLTAG TagInfo[1];
+} SYSTEM_POOLTAG_INFORMATION, *PSYSTEM_POOLTAG_INFORMATION;
+
+/* Class 23 */
+typedef struct _SYSTEM_INTERRUPT_INFORMATION
+{
+    ULONG ContextSwitches;
+    ULONG DpcCount;
+    ULONG DpcRate;
+    ULONG TimeIncrement;
+    ULONG DpcBypassCount;
+    ULONG ApcBypassCount;
+} SYSTEM_INTERRUPT_INFORMATION, *PSYSTEM_INTERRUPT_INFORMATION;
+
+/* Class 24 */
+typedef struct _SYSTEM_DPC_BEHAVIOR_INFORMATION
+{
+    ULONG Spare;
+    ULONG DpcQueueDepth;
+    ULONG MinimumDpcRate;
+    ULONG AdjustDpcThreshold;
+    ULONG IdealDpcRate;
+} SYSTEM_DPC_BEHAVIOR_INFORMATION, *PSYSTEM_DPC_BEHAVIOR_INFORMATION;
+
+/* Class 25 */
+typedef struct _SYSTEM_MEMORY_INFO
+{
+    PUCHAR StringOffset;
+    USHORT ValidCount;
+    USHORT TransitionCount;
+    USHORT ModifiedCount;
+    USHORT PageTableCount;
+} SYSTEM_MEMORY_INFO, *PSYSTEM_MEMORY_INFO;
+typedef struct _SYSTEM_MEMORY_INFORMATION
+{
+    ULONG InfoSize;
+    ULONG StringStart;
+    SYSTEM_MEMORY_INFO Memory[1];
+} SYSTEM_MEMORY_INFORMATION, *PSYSTEM_MEMORY_INFORMATION;
+
+/* Class 26 */
+typedef struct _SYSTEM_GDI_DRIVER_INFORMATION
+{
+    UNICODE_STRING DriverName;
+    PVOID ImageAddress;
+    PVOID SectionPointer;
+    PVOID EntryPoint;
+    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 28 */
+typedef struct _SYSTEM_QUERY_TIME_ADJUST_INFORMATION
+{
+    ULONG TimeAdjustment;
+    ULONG TimeIncrement;
+    BOOLEAN Enable;
+} SYSTEM_QUERY_TIME_ADJUST_INFORMATION, *PSYSTEM_QUERY_TIME_ADJUST_INFORMATION;
+
+typedef struct _SYSTEM_SET_TIME_ADJUST_INFORMATION
+{
+    ULONG TimeAdjustment;
+    BOOLEAN Enable;
+} SYSTEM_SET_TIME_ADJUST_INFORMATION, *PSYSTEM_SET_TIME_ADJUST_INFORMATION;
+
+/* Class 29 - Same as 25 */
+
+/* Class 30 - 31 */
+/* FIXME */
+
+/* Class 32 */
+typedef struct _SYSTEM_CRASH_DUMP_INFORMATION
+{
+    HANDLE CrashDumpSection;
+} SYSTEM_CRASH_DUMP_INFORMATION, *PSYSTEM_CRASH_DUMP_INFORMATION;
+
+/* Class 33 */
+typedef struct _SYSTEM_EXCEPTION_INFORMATION
+{
+    ULONG AlignmentFixupCount;
+    ULONG ExceptionDispatchCount;
+    ULONG FloatingEmulationCount;
+    ULONG ByteWordEmulationCount;
+} SYSTEM_EXCEPTION_INFORMATION, *PSYSTEM_EXCEPTION_INFORMATION;
+
+/* Class 34 */
+typedef struct _SYSTEM_CRASH_STATE_INFORMATION
+{
+    ULONG ValidCrashDump;
+} SYSTEM_CRASH_STATE_INFORMATION, *PSYSTEM_CRASH_STATE_INFORMATION;
+
+/* Class 35 */
+typedef struct _SYSTEM_KERNEL_DEBUGGER_INFORMATION
+{
+    BOOLEAN KernelDebuggerEnabled;
+    BOOLEAN KernelDebuggerNotPresent;
+} SYSTEM_KERNEL_DEBUGGER_INFORMATION, *PSYSTEM_KERNEL_DEBUGGER_INFORMATION;
+
+/* Class 36 */
+typedef struct _SYSTEM_CONTEXT_SWITCH_INFORMATION
+{
+    ULONG ContextSwitches;
+    ULONG FindAny;
+    ULONG FindLast;
+    ULONG FindIdeal;
+    ULONG IdleAny;
+    ULONG IdleCurrent;
+    ULONG IdleLast;
+    ULONG IdleIdeal;
+    ULONG PreemptAny;
+    ULONG PreemptCurrent;
+    ULONG PreemptLast;
+    ULONG SwitchToIdle;
+} SYSTEM_CONTEXT_SWITCH_INFORMATION, *PSYSTEM_CONTEXT_SWITCH_INFORMATION;
+
+/* Class 37 */
+typedef struct _SYSTEM_REGISTRY_QUOTA_INFORMATION
+{
+    ULONG RegistryQuotaAllowed;
+    ULONG RegistryQuotaUsed;
+    ULONG PagedPoolSize;
+} SYSTEM_REGISTRY_QUOTA_INFORMATION, *PSYSTEM_REGISTRY_QUOTA_INFORMATION;
+
+/* Class 38 */
+/* Not a structure, simply send the UNICODE_STRING */
+
+/* Class 39 */
+/* Not a structure, simply send a ULONG containing the new separation */
+
+/* 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 */
+typedef struct _SYSTEM_DOCK_INFORMATION
+{
+    SYSTEM_DOCK_STATE DockState;
+    INTERFACE_TYPE DeviceBusType;
+    ULONG DeviceBusNumber;
+    ULONG SlotNumber;
+} SYSTEM_DOCK_INFORMATION, *PSYSTEM_DOCK_INFORMATION;
+
+/* Class 42 */
+/* FIXME: Conflict with WINNT.H */
+typedef struct __SYSTEM_POWER_INFORMATION
+{
+    BOOLEAN SystemSuspendSupported;
+    BOOLEAN SystemHibernateSupported;
+    BOOLEAN ResumeTimerSupportsSuspend;
+    BOOLEAN ResumeTimerSupportsHibernate;
+    BOOLEAN LidSupported;
+    BOOLEAN TurboSettingSupported;
+    BOOLEAN TurboMode;
+    BOOLEAN SystemAcOrDc;
+    BOOLEAN PowerDownDisabled;
+    LARGE_INTEGER SpindownDrives;
+} _SYSTEM_POWER_INFORMATION, *P_SYSTEM_POWER_INFORMATION;
+
+/* Class 43 */
+typedef struct _SYSTEM_LEGACY_DRIVER_INFORMATION
+{
+    PNP_VETO_TYPE VetoType;
+    UNICODE_STRING VetoDriver;
+    /* Buffer Follows */
+} SYSTEM_LEGACY_DRIVER_INFORMATION, *PSYSTEM_LEGACY_DRIVER_INFORMATION;
+
+/* Class 44 */
+typedef struct _TIME_ZONE_INFORMATION RTL_TIME_ZONE_INFORMATION;
+
+/* Class 45 */
+typedef struct _SYSTEM_LOOKASIDE_INFORMATION
+{
+    USHORT CurrentDepth;
+    USHORT MaximumDepth;
+    ULONG TotalAllocates;
+    ULONG AllocateMisses;
+    ULONG TotalFrees;
+    ULONG FreeMisses;
+    ULONG Type;
+    ULONG Tag;
+    ULONG Size;
+} SYSTEM_LOOKASIDE_INFORMATION, *PSYSTEM_LOOKASIDE_INFORMATION;
+
+/* Class 46 */
+/* Not a structure. Only a HANDLE for the SlipEvent; */
+
+/* Class 47 */
+/* Not a structure. Only a ULONG for the SessionId; */
+
+/* Class 48 */
+/* Not a structure. Only a ULONG for the SessionId; */
+
+/* Class 49 */
+/* FIXME */
+
+/* Class 50 */
+/* Not a structure. Only a ULONG_PTR for the SystemRangeStart */
+
+/* Class 51 */
+/* FIXME. Based on MM_DRIVER_VERIFIER_DATA */
+
+/* Class 52 */
+/* FIXME */
+
+/* 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;
+
 #endif
 
 #endif
 
index f165f51..cc65d25 100644 (file)
@@ -82,6 +82,15 @@ extern POBJECT_TYPE NTSYSAPI IoDriverObjectType;
 #define FILE_OPEN_NO_RECALL                 0x00400000
 #define FILE_OPEN_FOR_FREE_SPACE_QUERY      0x00800000
 
 #define FILE_OPEN_NO_RECALL                 0x00400000
 #define FILE_OPEN_FOR_FREE_SPACE_QUERY      0x00800000
 
+/* For DeviceMap DosDevice Type */
+#define DOSDEVICE_DRIVE_UNKNOWN             0
+#define DOSDEVICE_DRIVE_CALCULATE           1
+#define DOSDEVICE_DRIVE_REMOVABLE           2
+#define DOSDEVICE_DRIVE_FIXED               3
+#define DOSDEVICE_DRIVE_REMOTE              4
+#define DOSDEVICE_DRIVE_CDROM               5
+#define DOSDEVICE_DRIVE_RAMDISK             6
+
 /* Device Charactertics */
 #define FILE_REMOVABLE_MEDIA                0x00000001
 #define FILE_REMOTE_DEVICE                  0x00000010
 /* Device Charactertics */
 #define FILE_REMOVABLE_MEDIA                0x00000001
 #define FILE_REMOTE_DEVICE                  0x00000010
@@ -132,6 +141,11 @@ extern POBJECT_TYPE NTSYSAPI IoDriverObjectType;
 
 /* ENUMERATIONS **************************************************************/
 
 
 /* ENUMERATIONS **************************************************************/
 
+typedef enum _IO_COMPLETION_INFORMATION_CLASS
+{
+    IoCompletionBasicInformation
+} IO_COMPLETION_INFORMATION_CLASS;
+
 #ifdef NTOS_MODE_USER
 typedef enum _INTERFACE_TYPE
 {
 #ifdef NTOS_MODE_USER
 typedef enum _INTERFACE_TYPE
 {
index cb4dacb..cb96ed7 100644 (file)
@@ -13,7 +13,7 @@
 #include "ldrtypes.h"
 /* FIXME: this needs be implemented in the w32api ddk */
 #ifdef _MSC_VER
 #include "ldrtypes.h"
 /* FIXME: this needs be implemented in the w32api ddk */
 #ifdef _MSC_VER
-#include "ntimage.h"
+#include <ntimage.h>
 #endif
 
 /* FUNCTION TYPES ************************************************************/
 #endif
 
 /* FUNCTION TYPES ************************************************************/
index d30fbba..453b48f 100644 (file)
@@ -32,6 +32,11 @@ typedef enum _LPC_TYPE
     LPC_MAXIMUM
 } LPC_TYPE;
 
     LPC_MAXIMUM
 } LPC_TYPE;
 
+typedef enum _PORT_INFORMATION_CLASS
+{
+    PortNoInformation
+} PORT_INFORMATION_CLASS;
+
 /* TYPES *********************************************************************/
 
 #ifdef NTOS_MODE_USER
 /* TYPES *********************************************************************/
 
 #ifdef NTOS_MODE_USER
index ee33ffc..438ce28 100644 (file)
@@ -61,6 +61,20 @@ typedef enum _PP_NPAGED_LOOKASIDE_NUMBER
     LookasideMaximumList = 7
 } PP_NPAGED_LOOKASIDE_NUMBER;
 
     LookasideMaximumList = 7
 } PP_NPAGED_LOOKASIDE_NUMBER;
 
+typedef enum _MEMORY_INFORMATION_CLASS
+{
+    MemoryBasicInformation,
+    MemoryWorkingSetList,
+    MemorySectionName,
+    MemoryBasicVlmInformation
+} MEMORY_INFORMATION_CLASS;
+
+typedef enum _SECTION_INFORMATION_CLASS
+{
+    SectionBasicInformation,
+    SectionImageInformation,
+} SECTION_INFORMATION_CLASS;
+
 /* TYPES *********************************************************************/
 
 #ifdef NTOS_MODE_USER
 /* TYPES *********************************************************************/
 
 #ifdef NTOS_MODE_USER
@@ -96,6 +110,45 @@ typedef struct _VM_COUNTERS_EX
 } VM_COUNTERS_EX, *PVM_COUNTERS_EX;
 #endif
 
 } VM_COUNTERS_EX, *PVM_COUNTERS_EX;
 #endif
 
+typedef struct _MEMORY_WORKING_SET_LIST
+{
+    ULONG NumberOfPages;
+    ULONG WorkingSetList[1];
+} MEMORY_WORKING_SET_LIST, *PMEMORY_WORKING_SET_LIST;
+
+typedef struct
+{
+    UNICODE_STRING SectionFileName;
+    WCHAR          NameBuffer[ANYSIZE_ARRAY];
+} MEMORY_SECTION_NAME, *PMEMORY_SECTION_NAME;
+
+typedef struct _SECTION_BASIC_INFORMATION
+{
+    PVOID           BaseAddress;
+    ULONG           Attributes;
+    LARGE_INTEGER   Size;
+} SECTION_BASIC_INFORMATION, *PSECTION_BASIC_INFORMATION;
+
+typedef struct _SECTION_IMAGE_INFORMATION
+{
+    PVOID TransferAddress;
+    ULONG ZeroBits;
+    ULONG MaximumStackSize;
+    ULONG CommittedStackSize;
+    ULONG SubsystemType;
+    USHORT SubSystemMinorVersion;
+    USHORT SubSystemMajorVersion;
+    ULONG GpValue;
+    USHORT ImageCharacteristics;
+    USHORT DllChracteristics;
+    USHORT Machine;
+    UCHAR ImageContainsCode;
+    UCHAR Spare1;
+    ULONG LoaderFlags;
+    ULONG ImageFileSIze;
+    ULONG Reserved[1];
+} SECTION_IMAGE_INFORMATION, *PSECTION_IMAGE_INFORMATION;
+
 #ifndef NTOS_MODE_USER
 /* FIXME: Forced to do this for now, because of EPROCESS, will go away before 0.3.0 */
 typedef struct _MADDRESS_SPACE
 #ifndef NTOS_MODE_USER
 /* FIXME: Forced to do this for now, because of EPROCESS, will go away before 0.3.0 */
 typedef struct _MADDRESS_SPACE
index f7bc555..245aa37 100644 (file)
@@ -49,7 +49,6 @@
 #include "pstypes.h"        /* Process Manager Types */
 #include "lpctypes.h"       /* Local Procedure Call Types */
 #include "dbgktypes.h"      /* User-Mode Kernel Debugging Types */
 #include "pstypes.h"        /* Process Manager Types */
 #include "lpctypes.h"       /* Local Procedure Call Types */
 #include "dbgktypes.h"      /* User-Mode Kernel Debugging Types */
-#include "zwtypes.h"        /* Native Types */
 #include "zwfuncs.h"        /* Native Functions (System Calls) */
 #include "rtltypes.h"       /* Runtime Library Types */
 #include "rtlfuncs.h"       /* Runtime Library Functions */
 #include "zwfuncs.h"        /* Native Functions (System Calls) */
 #include "rtltypes.h"       /* Runtime Library Types */
 #include "rtlfuncs.h"       /* Runtime Library Functions */
index cc2617b..56b58b9 100644 (file)
@@ -71,9 +71,20 @@ typedef enum _OB_OPEN_REASON
     ObInheritHandle,
     ObMaxOpenReason
 } OB_OPEN_REASON;
     ObInheritHandle,
     ObMaxOpenReason
 } OB_OPEN_REASON;
+#endif
+
+typedef enum _OBJECT_INFORMATION_CLASS
+{
+    ObjectBasicInformation,
+    ObjectNameInformation,
+    ObjectTypeInformation,
+    ObjectAllTypesInformation,
+    ObjectHandleInformation
+} OBJECT_INFORMATION_CLASS;
 
 /* FUNCTION TYPES ************************************************************/
 
 
 /* FUNCTION TYPES ************************************************************/
 
+#ifndef NTOS_MODE_USER
 /* Object Callbacks FIXME: Update these soon */
 typedef NTSTATUS
 (NTAPI *OB_OPEN_METHOD)(
 /* Object Callbacks FIXME: Update these soon */
 typedef NTSTATUS
 (NTAPI *OB_OPEN_METHOD)(
@@ -156,6 +167,18 @@ typedef struct _OBJECT_NAME_INFORMATION
 } OBJECT_NAME_INFORMATION, *POBJECT_NAME_INFORMATION;
 #endif
 
 } OBJECT_NAME_INFORMATION, *POBJECT_NAME_INFORMATION;
 #endif
 
+typedef struct _OBJECT_HANDLE_ATTRIBUTE_INFORMATION
+{
+    BOOLEAN Inherit;
+    BOOLEAN ProtectFromClose;
+} OBJECT_HANDLE_ATTRIBUTE_INFORMATION, *POBJECT_HANDLE_ATTRIBUTE_INFORMATION;
+
+typedef struct _OBJECT_DIRECTORY_INFORMATION
+{
+    UNICODE_STRING ObjectName;
+    UNICODE_STRING ObjectTypeName;
+} OBJECT_DIRECTORY_INFORMATION, *POBJECT_DIRECTORY_INFORMATION;
+
 #ifndef NTOS_MODE_USER
 typedef struct _OBJECT_BASIC_INFORMATION
 {
 #ifndef NTOS_MODE_USER
 typedef struct _OBJECT_BASIC_INFORMATION
 {
index 1eccdbb..3ee9be0 100644 (file)
 #define _POTYPES_H
 
 /* DEPENDENCIES **************************************************************/
 #define _POTYPES_H
 
 /* DEPENDENCIES **************************************************************/
+#ifndef NTOS_MODE_USER
 #include <ntpoapi.h>
 #include <ntpoapi.h>
+#endif
 
 /* EXPORTED DATA *************************************************************/
 
 /* CONSTANTS *****************************************************************/
 
 /* ENUMERATIONS **************************************************************/
 
 /* EXPORTED DATA *************************************************************/
 
 /* CONSTANTS *****************************************************************/
 
 /* ENUMERATIONS **************************************************************/
+typedef enum _SYSTEM_DOCK_STATE
+{
+    SystemDockStateUnknown,
+    SystemUndocked,
+    SystemDocked
+} SYSTEM_DOCK_STATE, *PSYSTEM_DOCK_STATE;
 
 /* TYPES *********************************************************************/
 
 
 /* TYPES *********************************************************************/
 
+#ifndef NTOS_MODE_USER
 typedef struct _PROCESSOR_POWER_STATE
 {
     PVOID IdleFunction;
 typedef struct _PROCESSOR_POWER_STATE
 {
     PVOID IdleFunction;
@@ -81,5 +90,5 @@ typedef struct _PO_DEVICE_NOTIFY
     ULONG ChildCount;
     ULONG ActiveChild;
 } PO_DEVICE_NOTIFY, *PPO_DEVICE_NOTIFY;
     ULONG ChildCount;
     ULONG ActiveChild;
 } PO_DEVICE_NOTIFY, *PPO_DEVICE_NOTIFY;
-
+#endif
 #endif
 #endif
index e174146..b9931c9 100644 (file)
@@ -439,6 +439,22 @@ typedef struct _PROCESS_SESSION_INFORMATION
 } PROCESS_SESSION_INFORMATION, *PPROCESS_SESSION_INFORMATION;
 #endif
 
 } PROCESS_SESSION_INFORMATION, *PPROCESS_SESSION_INFORMATION;
 #endif
 
+typedef struct _PROCESS_PRIORITY_CLASS
+{
+    BOOLEAN Foreground;
+    UCHAR   PriorityClass;
+} PROCESS_PRIORITY_CLASS, *PPROCESS_PRIORITY_CLASS;
+
+typedef struct _THREAD_BASIC_INFORMATION
+{
+    NTSTATUS ExitStatus;
+    PVOID TebBaseAddress;
+    CLIENT_ID ClientId;
+    KAFFINITY AffinityMask;
+    KPRIORITY Priority;
+    KPRIORITY BasePriority;
+} THREAD_BASIC_INFORMATION, *PTHREAD_BASIC_INFORMATION;
+
 #ifndef NTOS_MODE_USER
 /* FIXME: see note in mmtypes.h */
 #ifdef _NTOSKRNL_
 #ifndef NTOS_MODE_USER
 /* FIXME: see note in mmtypes.h */
 #ifdef _NTOSKRNL_
diff --git a/reactos/include/ndk/zwtypes.h b/reactos/include/ndk/zwtypes.h
deleted file mode 100644 (file)
index afd2da4..0000000
+++ /dev/null
@@ -1,1213 +0,0 @@
-/*
- * PROJECT:         ReactOS Native Headers
- * FILE:            include/ndk/zwtypes.h
- * PURPOSE:         Defintions for Native Types not defined in DDK/IFS
- * PROGRAMMER:      Alex Ionescu (alex@relsoft.net)
- * UPDATE HISTORY:
- *                  Created 06/10/04
- */
-#ifndef _ZWTYPES_H
-#define _ZWTYPES_H
-
-/* DEPENDENCIES **************************************************************/
-#include <cfg.h>
-
-/* EXPORTED DATA *************************************************************/
-
-/* CONSTANTS *****************************************************************/
-#define MAX_BUS_NAME 24
-
-#define EVENT_READ_ACCESS             1
-#define EVENT_WRITE_ACCESS            2
-
-#define PORT_ALL_ACCESS               (0x1)
-
-#define EVENT_PAIR_ALL_ACCESS    (0x1F0000L)
-
-/* For ProcessDeviceMap */
-#define DOSDEVICE_DRIVE_UNKNOWN    0
-#define DOSDEVICE_DRIVE_CALCULATE  1
-#define DOSDEVICE_DRIVE_REMOVABLE  2
-#define DOSDEVICE_DRIVE_FIXED      3
-#define DOSDEVICE_DRIVE_REMOTE     4
-#define DOSDEVICE_DRIVE_CDROM      5
-#define DOSDEVICE_DRIVE_RAMDISK    6
-
-/* PLUGPLAY_CONTROL_RELATED_DEVICE_DATA.Relation values */
-#define PNP_GET_PARENT_DEVICE  1
-#define PNP_GET_CHILD_DEVICE   2
-#define PNP_GET_SIBLING_DEVICE 3
-
-/* PLUGPLAY_CONTROL_STATUS_DATA.Operation values */
-#define PNP_GET_DEVICE_STATUS    0
-#define PNP_SET_DEVICE_STATUS    1
-#define PNP_CLEAR_DEVICE_STATUS  2
-
-/* ENUMERATIONS **************************************************************/
-
-typedef enum _HARDERROR_RESPONSE_OPTION
-{
-    OptionAbortRetryIgnore,
-    OptionOk,
-    OptionOkCancel,
-    OptionRetryCancel,
-    OptionYesNo,
-    OptionYesNoCancel,
-    OptionShutdownSystem
-} HARDERROR_RESPONSE_OPTION, *PHARDERROR_RESPONSE_OPTION;
-
-typedef enum _HARDERROR_RESPONSE
-{
-    ResponseReturnToCaller,
-    ResponseNotHandled,
-    ResponseAbort,
-    ResponseCancel,
-    ResponseIgnore,
-    ResponseNo,
-    ResponseOk,
-    ResponseRetry,
-    ResponseYes
-} HARDERROR_RESPONSE, *PHARDERROR_RESPONSE;
-
-typedef enum _SHUTDOWN_ACTION
-{
-    ShutdownNoReboot,
-    ShutdownReboot,
-    ShutdownPowerOff
-} SHUTDOWN_ACTION;
-
-typedef enum _PLUGPLAY_BUS_CLASS
-{
-    SystemBus,
-    PlugPlayVirtualBus,
-    MaxPlugPlayBusClass
-} PLUGPLAY_BUS_CLASS, *PPLUGPLAY_BUS_CLASS;
-
-typedef enum _PLUGPLAY_VIRTUAL_BUS_TYPE
-{
-    Root,
-    MaxPlugPlayVirtualBusType
-} PLUGPLAY_VIRTUAL_BUS_TYPE, *PPLUGPLAY_VIRTUAL_BUS_TYPE;
-
-typedef enum _SYSTEM_DOCK_STATE
-{
-    SystemDockStateUnknown,
-    SystemUndocked,
-    SystemDocked
-} SYSTEM_DOCK_STATE, *PSYSTEM_DOCK_STATE;
-
-typedef enum _PLUGPLAY_EVENT_CATEGORY
-{
-    HardwareProfileChangeEvent,
-    TargetDeviceChangeEvent,
-    DeviceClassChangeEvent,
-    CustomDeviceEvent,
-    DeviceInstallEvent,
-    DeviceArrivalEvent,
-    PowerEvent,
-    VetoEvent,
-    BlockedDriverEvent,
-    MaxPlugEventCategory
-} PLUGPLAY_EVENT_CATEGORY;
-
-/**** Information Classes ****/
-
-/*
- * System
- */
-typedef enum _SYSTEM_INFORMATION_CLASS
-{
-    SystemBasicInformation,
-    SystemProcessorInformation,
-    SystemPerformanceInformation,
-    SystemTimeOfDayInformation,
-    SystemPathInformation, /* OBSOLETE: USE KUSER_SHARED_DATA */
-    SystemProcessInformation,
-    SystemCallCountInformation,
-    SystemDeviceInformation,
-    SystemProcessorPerformanceInformation,
-    SystemFlagsInformation,
-    SystemCallTimeInformation,
-    SystemModuleInformation,
-    SystemLocksInformation,
-    SystemStackTraceInformation,
-    SystemPagedPoolInformation,
-    SystemNonPagedPoolInformation,
-    SystemHandleInformation,
-    SystemObjectInformation,
-    SystemPageFileInformation,
-    SystemVdmInstemulInformation,
-    SystemVdmBopInformation,
-    SystemFileCacheInformation,
-    SystemPoolTagInformation,
-    SystemInterruptInformation,
-    SystemDpcBehaviorInformation,
-    SystemFullMemoryInformation,
-    SystemLoadGdiDriverInformation,
-    SystemUnloadGdiDriverInformation,
-    SystemTimeAdjustmentInformation,
-    SystemSummaryMemoryInformation,
-    SystemNextEventIdInformation,
-    SystemEventIdsInformation,
-    SystemCrashDumpInformation,
-    SystemExceptionInformation,
-    SystemCrashDumpStateInformation,
-    SystemKernelDebuggerInformation,
-    SystemContextSwitchInformation,
-    SystemRegistryQuotaInformation,
-    SystemExtendServiceTableInformation,
-    SystemPrioritySeperation,
-    SystemPlugPlayBusInformation,
-    SystemDockInformation,
-    _SystemPowerInformation, /* FIXME */
-    SystemProcessorSpeedInformation,
-    SystemCurrentTimeZoneInformation,
-    SystemLookasideInformation,
-    SystemTimeSlipNotification,
-    SystemSessionCreate,
-    SystemSessionDetach,
-    SystemSessionInformation,
-    SystemRangeStartInformation,
-    SystemVerifierInformation,
-    SystemAddVerifier,
-    SystemSessionProcessesInformation,
-    SystemInformationClassMax
-} SYSTEM_INFORMATION_CLASS;
-
-/*
- * Object
- */
-typedef enum _OBJECT_INFORMATION_CLASS
-{
-    ObjectBasicInformation,
-    ObjectNameInformation,
-    ObjectTypeInformation,
-    ObjectAllTypesInformation,
-    ObjectHandleInformation
-} OBJECT_INFORMATION_CLASS;
-
-/*
- * Port
- */
-typedef enum _PORT_INFORMATION_CLASS
-{
-    PortNoInformation
-} PORT_INFORMATION_CLASS;
-
-/*
- * Memory
- */
-typedef enum _MEMORY_INFORMATION_CLASS
-{
-    MemoryBasicInformation,
-    MemoryWorkingSetList,
-    MemorySectionName,
-    MemoryBasicVlmInformation
-} MEMORY_INFORMATION_CLASS;
-
-/*
- * Mutant
- */
-typedef enum _MUTANT_INFORMATION_CLASS
-{
-    MutantBasicInformation
-} MUTANT_INFORMATION_CLASS;
-
-/*
- * Atom
- */
-typedef enum _ATOM_INFORMATION_CLASS
-{
-    AtomBasicInformation,
-    AtomTableInformation,
-} ATOM_INFORMATION_CLASS;
-
-/*
- * Section
- */
-typedef enum _SECTION_INFORMATION_CLASS
-{
-    SectionBasicInformation,
-    SectionImageInformation,
-} SECTION_INFORMATION_CLASS;
-
-/*
- * Timer
- */
-typedef enum _TIMER_INFORMATION_CLASS
-{
-    TimerBasicInformation
-} TIMER_INFORMATION_CLASS;
-
-/*
- * Semaphore
- */
-typedef enum _SEMAPHORE_INFORMATION_CLASS
-{
-    SemaphoreBasicInformation
-} SEMAPHORE_INFORMATION_CLASS;
-
-/*
- * Event
- */
-typedef enum _EVENT_INFORMATION_CLASS
-{
-    EventBasicInformation
-} EVENT_INFORMATION_CLASS;
-
-/*
- * I/O Completion
- */
-typedef enum _IO_COMPLETION_INFORMATION_CLASS
-{
-    IoCompletionBasicInformation
-} IO_COMPLETION_INFORMATION_CLASS;
-
-/*
- *  PlugPlay
- */
-typedef enum _PLUGPLAY_CONTROL_CLASS
-{
-    PlugPlayControlUserResponse = 0x07,
-    PlugPlayControlProperty = 0x0A,
-    PlugPlayControlGetRelatedDevice = 0x0C,
-    PlugPlayControlDeviceStatus = 0x0E,
-    PlugPlayControlGetDeviceDepth
-} PLUGPLAY_CONTROL_CLASS;
-
-/* TYPES *********************************************************************/
-
-typedef USHORT LANGID, *PLANGID;
-typedef USHORT RTL_ATOM, *PRTL_ATOM;
-
-typedef struct _PLUGPLAY_EVENT_BLOCK
-{
-    GUID EventGuid;
-    PLUGPLAY_EVENT_CATEGORY EventCategory;
-    PULONG Result;
-    ULONG Flags;
-    ULONG TotalSize;
-    PVOID DeviceObject;
-    union
-    {
-        struct
-        {
-            GUID ClassGuid;
-            WCHAR SymbolicLinkName[ANYSIZE_ARRAY];
-        } DeviceClass;
-        struct
-        {
-            WCHAR DeviceIds[ANYSIZE_ARRAY];
-        } TargetDevice;
-        struct
-        {
-            WCHAR DeviceId[ANYSIZE_ARRAY];
-        } InstallDevice;
-        struct
-        {
-            PVOID NotificationStructure;
-            WCHAR DeviceIds[ANYSIZE_ARRAY];
-        } CustomNotification;
-        struct
-        {
-            PVOID Notification;
-        } ProfileNotification;
-        struct
-        {
-            ULONG NotificationCode;
-            ULONG NotificationData;
-        } PowerNotification;
-        struct
-        {
-            PNP_VETO_TYPE VetoType;
-            WCHAR DeviceIdVetoNameBuffer[ANYSIZE_ARRAY];
-        } VetoNotification;
-        struct
-        {
-            GUID BlockedDriverGuid;
-        } BlockedDriverNotification;
-    };
-} PLUGPLAY_EVENT_BLOCK, *PPLUGPLAY_EVENT_BLOCK;
-
-/**** Information Structures ****/
-/*
- * Mutant
- */
-
-/* Class 0 */
-typedef struct _MUTANT_BASIC_INFORMATION
-{
-    LONG CurrentCount;
-    BOOLEAN OwnedByCaller;
-    BOOLEAN AbandonedState;
-} MUTANT_BASIC_INFORMATION, *PMUTANT_BASIC_INFORMATION;
-
-/*
- * Thread
- */
-
-/* Class 0 */
-typedef struct _THREAD_BASIC_INFORMATION
-{
-    NTSTATUS  ExitStatus;
-    PVOID TebBaseAddress;
-    CLIENT_ID ClientId;
-    KAFFINITY AffinityMask;
-    KPRIORITY Priority;
-    KPRIORITY BasePriority;
-} THREAD_BASIC_INFORMATION, *PTHREAD_BASIC_INFORMATION;
-
-/*
- * Atom
- */
-
-/* Class 0 */
-typedef struct _ATOM_BASIC_INFORMATION
-{
-    USHORT UsageCount;
-    USHORT Flags;
-    USHORT NameLength;
-    WCHAR Name[1];
-} ATOM_BASIC_INFORMATION, *PATOM_BASIC_INFORMATION;
-
-/* Class 1 */
-typedef struct _ATOM_TABLE_INFORMATION
-{
-    ULONG NumberOfAtoms;
-    USHORT Atoms[1];
-} ATOM_TABLE_INFORMATION, *PATOM_TABLE_INFORMATION;
-
-/*
- * Object Directory
- */
-typedef struct _OBJECT_DIRECTORY_INFORMATION
-{
-    UNICODE_STRING ObjectName;
-    UNICODE_STRING ObjectTypeName;
-} OBJECT_DIRECTORY_INFORMATION, *POBJECT_DIRECTORY_INFORMATION;
-
-/*
- * Memory
- */
-
- /* Class 1 */
-typedef struct _MEMORY_WORKING_SET_LIST
-{
-    ULONG NumberOfPages;
-    ULONG WorkingSetList[1];
-} MEMORY_WORKING_SET_LIST, *PMEMORY_WORKING_SET_LIST;
-
-/* Class 2 */
-typedef struct
-{
-    UNICODE_STRING SectionFileName;
-    WCHAR          NameBuffer[ANYSIZE_ARRAY];
-} MEMORY_SECTION_NAME, *PMEMORY_SECTION_NAME;
-
-/*
- * Section
- */
-
-/* Class 0 */
-typedef struct _SECTION_BASIC_INFORMATION
-{
-    PVOID           BaseAddress;
-    ULONG           Attributes;
-    LARGE_INTEGER   Size;
-} SECTION_BASIC_INFORMATION, *PSECTION_BASIC_INFORMATION;
-
-/* Class 1 */
-typedef struct _SECTION_IMAGE_INFORMATION
-{
-    PVOID TransferAddress;
-    ULONG ZeroBits;
-    ULONG MaximumStackSize;
-    ULONG CommittedStackSize;
-    ULONG SubsystemType;
-    USHORT SubSystemMinorVersion;
-    USHORT SubSystemMajorVersion;
-    ULONG GpValue;
-    USHORT ImageCharacteristics;
-    USHORT DllChracteristics;
-    USHORT Machine;
-    UCHAR ImageContainsCode;
-    UCHAR Spare1;
-    ULONG LoaderFlags;
-    ULONG ImageFileSIze;
-    ULONG Reserved[1];
-} SECTION_IMAGE_INFORMATION, *PSECTION_IMAGE_INFORMATION;
-
-/*
- * Object
- */
-
-/* Class 4 */
-typedef struct _OBJECT_HANDLE_ATTRIBUTE_INFORMATION
-{
-    BOOLEAN Inherit;
-    BOOLEAN ProtectFromClose;
-} OBJECT_HANDLE_ATTRIBUTE_INFORMATION, *POBJECT_HANDLE_ATTRIBUTE_INFORMATION;
-
-/*
- * Timer
- */
-
-/* Class 0 */
-typedef struct _TIMER_BASIC_INFORMATION
-{
-    LARGE_INTEGER TimeRemaining;
-    BOOLEAN SignalState;
-} TIMER_BASIC_INFORMATION, *PTIMER_BASIC_INFORMATION;
-
-/*
- * Semaphore
- */
-
-/* Class 0 */
-typedef struct _SEMAPHORE_BASIC_INFORMATION
-{
-    LONG CurrentCount;
-    LONG MaximumCount;
-} SEMAPHORE_BASIC_INFORMATION, *PSEMAPHORE_BASIC_INFORMATION;
-
-/*
- * Event
- */
-/* Class 0 */
-typedef struct _EVENT_BASIC_INFORMATION
-{
-    EVENT_TYPE EventType;
-    LONG EventState;
-} EVENT_BASIC_INFORMATION, *PEVENT_BASIC_INFORMATION;
-
-/*
- * Process
- */
-
-/* Class 16 */
-typedef struct _PROCESS_PRIORITY_CLASS
-{
-    BOOLEAN Foreground;
-    UCHAR   PriorityClass;
-} PROCESS_PRIORITY_CLASS, *PPROCESS_PRIORITY_CLASS;
-
-/*
- * System
- */
-
-/* Class 0 */
-typedef struct _SYSTEM_BASIC_INFORMATION
-{
-    ULONG Reserved;
-    ULONG TimerResolution;
-    ULONG PageSize;
-    ULONG NumberOfPhysicalPages;
-    ULONG LowestPhysicalPageNumber;
-    ULONG HighestPhysicalPageNumber;
-    ULONG AllocationGranularity;
-    ULONG MinimumUserModeAddress;
-    ULONG MaximumUserModeAddress;
-    KAFFINITY ActiveProcessorsAffinityMask;
-    CCHAR NumberOfProcessors;
-} SYSTEM_BASIC_INFORMATION, *PSYSTEM_BASIC_INFORMATION;
-
-/* Class 1 */
-typedef struct _SYSTEM_PROCESSOR_INFORMATION
-{
-    USHORT ProcessorArchitecture;
-    USHORT ProcessorLevel;
-    USHORT ProcessorRevision;
-    USHORT Reserved;
-    ULONG ProcessorFeatureBits;
-} SYSTEM_PROCESSOR_INFORMATION, *PSYSTEM_PROCESSOR_INFORMATION;
-
-/* Class 2 */
-typedef struct _SYSTEM_PERFORMANCE_INFORMATION
-{
-    LARGE_INTEGER IdleProcessTime;
-    LARGE_INTEGER IoReadTransferCount;
-    LARGE_INTEGER IoWriteTransferCount;
-    LARGE_INTEGER IoOtherTransferCount;
-    ULONG IoReadOperationCount;
-    ULONG IoWriteOperationCount;
-    ULONG IoOtherOperationCount;
-    ULONG AvailablePages;
-    ULONG CommittedPages;
-    ULONG CommitLimit;
-    ULONG PeakCommitment;
-    ULONG PageFaultCount;
-    ULONG CopyOnWriteCount;
-    ULONG TransitionCount;
-    ULONG CacheTransitionCount;
-    ULONG DemandZeroCount;
-    ULONG PageReadCount;
-    ULONG PageReadIoCount;
-    ULONG CacheReadCount;
-    ULONG CacheIoCount;
-    ULONG DirtyPagesWriteCount;
-    ULONG DirtyWriteIoCount;
-    ULONG MappedPagesWriteCount;
-    ULONG MappedWriteIoCount;
-    ULONG PagedPoolPages;
-    ULONG NonPagedPoolPages;
-    ULONG PagedPoolAllocs;
-    ULONG PagedPoolFrees;
-    ULONG NonPagedPoolAllocs;
-    ULONG NonPagedPoolFrees;
-    ULONG FreeSystemPtes;
-    ULONG ResidentSystemCodePage;
-    ULONG TotalSystemDriverPages;
-    ULONG TotalSystemCodePages;
-    ULONG NonPagedPoolLookasideHits;
-    ULONG PagedPoolLookasideHits;
-    ULONG Spare3Count;
-    ULONG ResidentSystemCachePage;
-    ULONG ResidentPagedPoolPage;
-    ULONG ResidentSystemDriverPage;
-    ULONG CcFastReadNoWait;
-    ULONG CcFastReadWait;
-    ULONG CcFastReadResourceMiss;
-    ULONG CcFastReadNotPossible;
-    ULONG CcFastMdlReadNoWait;
-    ULONG CcFastMdlReadWait;
-    ULONG CcFastMdlReadResourceMiss;
-    ULONG CcFastMdlReadNotPossible;
-    ULONG CcMapDataNoWait;
-    ULONG CcMapDataWait;
-    ULONG CcMapDataNoWaitMiss;
-    ULONG CcMapDataWaitMiss;
-    ULONG CcPinMappedDataCount;
-    ULONG CcPinReadNoWait;
-    ULONG CcPinReadWait;
-    ULONG CcPinReadNoWaitMiss;
-    ULONG CcPinReadWaitMiss;
-    ULONG CcCopyReadNoWait;
-    ULONG CcCopyReadWait;
-    ULONG CcCopyReadNoWaitMiss;
-    ULONG CcCopyReadWaitMiss;
-    ULONG CcMdlReadNoWait;
-    ULONG CcMdlReadWait;
-    ULONG CcMdlReadNoWaitMiss;
-    ULONG CcMdlReadWaitMiss;
-    ULONG CcReadAheadIos;
-    ULONG CcLazyWriteIos;
-    ULONG CcLazyWritePages;
-    ULONG CcDataFlushes;
-    ULONG CcDataPages;
-    ULONG ContextSwitches;
-    ULONG FirstLevelTbFills;
-    ULONG SecondLevelTbFills;
-    ULONG SystemCalls;
-} SYSTEM_PERFORMANCE_INFORMATION, *PSYSTEM_PERFORMANCE_INFORMATION;
-
-/* Class 3 */
-typedef struct _SYSTEM_TIMEOFDAY_INFORMATION
-{
-    LARGE_INTEGER BootTime;
-    LARGE_INTEGER CurrentTime;
-    LARGE_INTEGER TimeZoneBias;
-    ULONG TimeZoneId;
-    ULONG Reserved;
-} SYSTEM_TIMEOFDAY_INFORMATION, *PSYSTEM_TIMEOFDAY_INFORMATION;
-
-/* Class 4 */
-/* This class is obsoleted, please use KUSER_SHARED_DATA instead */
-
-/* Class 5 */
-typedef struct _SYSTEM_THREAD_INFORMATION
-{
-    LARGE_INTEGER KernelTime;
-    LARGE_INTEGER UserTime;
-    LARGE_INTEGER CreateTime;
-    ULONG WaitTime;
-    PVOID StartAddress;
-    CLIENT_ID ClientId;
-    KPRIORITY Priority;
-    LONG BasePriority;
-    ULONG ContextSwitches;
-    ULONG ThreadState;
-    ULONG WaitReason;
-} SYSTEM_THREAD_INFORMATION, *PSYSTEM_THREAD_INFORMATION;
-
-typedef struct _SYSTEM_PROCESS_INFORMATION
-{
-    ULONG NextEntryOffset;
-    ULONG NumberOfThreads;
-    LARGE_INTEGER SpareLi1;
-    LARGE_INTEGER SpareLi2;
-    LARGE_INTEGER SpareLi3;
-    LARGE_INTEGER CreateTime;
-    LARGE_INTEGER UserTime;
-    LARGE_INTEGER KernelTime;
-    UNICODE_STRING ImageName;
-    KPRIORITY BasePriority;
-    HANDLE UniqueProcessId;
-    HANDLE InheritedFromUniqueProcessId;
-    ULONG HandleCount;
-    ULONG SessionId;
-    ULONG PageDirectoryFrame;
-
-    /*
-     * This part corresponds to VM_COUNTERS_EX.
-     * NOTE: *NOT* THE SAME AS VM_COUNTERS!
-     */
-    ULONG PeakVirtualSize;
-    ULONG VirtualSize;
-    ULONG PageFaultCount;
-    ULONG PeakWorkingSetSize;
-    ULONG WorkingSetSize;
-    ULONG QuotaPeakPagedPoolUsage;
-    ULONG QuotaPagedPoolUsage;
-    ULONG QuotaPeakNonPagedPoolUsage;
-    ULONG QuotaNonPagedPoolUsage;
-    ULONG PagefileUsage;
-    ULONG PeakPagefileUsage;
-    ULONG PrivateUsage;
-
-    /* This part corresponds to IO_COUNTERS */
-    LARGE_INTEGER ReadOperationCount;
-    LARGE_INTEGER WriteOperationCount;
-    LARGE_INTEGER OtherOperationCount;
-    LARGE_INTEGER ReadTransferCount;
-    LARGE_INTEGER WriteTransferCount;
-    LARGE_INTEGER OtherTransferCount;
-
-    /* Finally, the array of Threads */
-    SYSTEM_THREAD_INFORMATION TH[1];
-} SYSTEM_PROCESS_INFORMATION, *PSYSTEM_PROCESS_INFORMATION;
-
-/* Class 6 */
-typedef struct _SYSTEM_CALL_COUNT_INFORMATION
-{
-    ULONG Length;
-    ULONG NumberOfTables;
-} SYSTEM_CALL_COUNT_INFORMATION, *PSYSTEM_CALL_COUNT_INFORMATION;
-
-/* Class 7 */
-typedef struct _SYSTEM_DEVICE_INFORMATION
-{
-    ULONG NumberOfDisks;
-    ULONG NumberOfFloppies;
-    ULONG NumberOfCdRoms;
-    ULONG NumberOfTapes;
-    ULONG NumberOfSerialPorts;
-    ULONG NumberOfParallelPorts;
-} SYSTEM_DEVICE_INFORMATION, *PSYSTEM_DEVICE_INFORMATION;
-
-/* Class 8 */
-typedef struct _SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION
-{
-    LARGE_INTEGER IdleTime;
-    LARGE_INTEGER KernelTime;
-    LARGE_INTEGER UserTime;
-    LARGE_INTEGER DpcTime;
-    LARGE_INTEGER InterruptTime;
-    ULONG InterruptCount;
-} SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION, *PSYSTEM_PROCESSOR_PERFORMANCE_INFORMATION;
-
-/* Class 9 */
-typedef struct _SYSTEM_FLAGS_INFORMATION
-{
-    ULONG Flags;
-} SYSTEM_FLAGS_INFORMATION, *PSYSTEM_FLAGS_INFORMATION;
-
-/* Class 10 */
-typedef struct _SYSTEM_CALL_TIME_INFORMATION
-{
-    ULONG Length;
-    ULONG TotalCalls;
-    LARGE_INTEGER TimeOfCalls[1];
-} SYSTEM_CALL_TIME_INFORMATION, *PSYSTEM_CALL_TIME_INFORMATION;
-
-/* Class 11 */
-typedef struct _SYSTEM_MODULE_INFORMATION_ENTRY
-{
-    ULONG  Unknown1;
-    ULONG  Unknown2;
-    PVOID  Base;
-    ULONG  Size;
-    ULONG  Flags;
-    USHORT  Index;
-    USHORT  NameLength;
-    USHORT  LoadCount;
-    USHORT  PathLength;
-    CHAR  ImageName[256];
-} SYSTEM_MODULE_INFORMATION_ENTRY, *PSYSTEM_MODULE_INFORMATION_ENTRY;
-typedef struct _SYSTEM_MODULE_INFORMATION
-{
-    ULONG Count;
-    SYSTEM_MODULE_INFORMATION_ENTRY Module[1];
-} SYSTEM_MODULE_INFORMATION, *PSYSTEM_MODULE_INFORMATION;
-
-/* Class 12 */
-typedef struct _SYSTEM_RESOURCE_LOCK_ENTRY
-{
-    ULONG  ResourceAddress;
-    ULONG  Always1;
-    ULONG  Unknown;
-    ULONG  ActiveCount;
-    ULONG  ContentionCount;
-    ULONG  Unused[2];
-    ULONG  NumberOfSharedWaiters;
-    ULONG  NumberOfExclusiveWaiters;
-} SYSTEM_RESOURCE_LOCK_ENTRY, *PSYSTEM_RESOURCE_LOCK_ENTRY;
-
-typedef struct _SYSTEM_RESOURCE_LOCK_INFO
-{
-    ULONG Count;
-    SYSTEM_RESOURCE_LOCK_ENTRY Lock[1];
-} SYSTEM_RESOURCE_LOCK_INFO, *PSYSTEM_RESOURCE_LOCK_INFO;
-
-/* 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 */
-typedef struct _SYSTEM_POOL_ENTRY
-{
-    BOOLEAN Allocated;
-    BOOLEAN Spare0;
-    USHORT AllocatorBackTraceIndex;
-    ULONG Size;
-    union
-    {
-        UCHAR Tag[4];
-        ULONG TagUlong;
-        PVOID ProcessChargedQuota;
-    };
-} SYSTEM_POOL_ENTRY, *PSYSTEM_POOL_ENTRY;
-
-typedef struct _SYSTEM_POOL_INFORMATION
-{
-    ULONG TotalSize;
-    PVOID FirstEntry;
-    USHORT EntryOverhead;
-    BOOLEAN PoolTagPresent;
-    BOOLEAN Spare0;
-    ULONG NumberOfEntries;
-    SYSTEM_POOL_ENTRY Entries[1];
-} SYSTEM_POOL_INFORMATION, *PSYSTEM_POOL_INFORMATION;
-
-/* Class 16 */
-typedef struct _SYSTEM_HANDLE_TABLE_ENTRY_INFO
-{
-    USHORT UniqueProcessId;
-    USHORT CreatorBackTraceIndex;
-    UCHAR ObjectTypeIndex;
-    UCHAR HandleAttributes;
-    USHORT HandleValue;
-    PVOID Object;
-    ULONG GrantedAccess;
-} SYSTEM_HANDLE_TABLE_ENTRY_INFO, *PSYSTEM_HANDLE_TABLE_ENTRY_INFO;
-
-typedef struct _SYSTEM_HANDLE_INFORMATION
-{
-    ULONG NumberOfHandles;
-    SYSTEM_HANDLE_TABLE_ENTRY_INFO Handles[1];
-} SYSTEM_HANDLE_INFORMATION, *PSYSTEM_HANDLE_INFORMATION;
-
-/* Class 17 */
-typedef struct _SYSTEM_OBJECTTYPE_INFORMATION
-{
-    ULONG NextEntryOffset;
-    ULONG NumberOfObjects;
-    ULONG NumberOfHandles;
-    ULONG TypeIndex;
-    ULONG InvalidAttributes;
-    GENERIC_MAPPING GenericMapping;
-    ULONG ValidAccessMask;
-    ULONG PoolType;
-    BOOLEAN SecurityRequired;
-    BOOLEAN WaitableObject;
-    UNICODE_STRING TypeName;
-} SYSTEM_OBJECTTYPE_INFORMATION, *PSYSTEM_OBJECTTYPE_INFORMATION;
-
-typedef struct _SYSTEM_OBJECT_INFORMATION
-{
-    ULONG NextEntryOffset;
-    PVOID Object;
-    HANDLE CreatorUniqueProcess;
-    USHORT CreatorBackTraceIndex;
-    USHORT Flags;
-    LONG PointerCount;
-    LONG HandleCount;
-    ULONG PagedPoolCharge;
-    ULONG NonPagedPoolCharge;
-    HANDLE ExclusiveProcessId;
-    PVOID SecurityDescriptor;
-    OBJECT_NAME_INFORMATION NameInfo;
-} SYSTEM_OBJECT_INFORMATION, *PSYSTEM_OBJECT_INFORMATION;
-
-/* Class 18 */
-typedef struct _SYSTEM_PAGEFILE_INFORMATION
-{
-    ULONG NextEntryOffset;
-    ULONG TotalSize;
-    ULONG TotalInUse;
-    ULONG PeakUsage;
-    UNICODE_STRING PageFileName;
-} SYSTEM_PAGEFILE_INFORMATION, *PSYSTEM_PAGEFILE_INFORMATION;
-
-/* Class 19 */
-typedef struct _SYSTEM_VDM_INSTEMUL_INFO
-{
-    ULONG SegmentNotPresent;
-    ULONG VdmOpcode0F;
-    ULONG OpcodeESPrefix;
-    ULONG OpcodeCSPrefix;
-    ULONG OpcodeSSPrefix;
-    ULONG OpcodeDSPrefix;
-    ULONG OpcodeFSPrefix;
-    ULONG OpcodeGSPrefix;
-    ULONG OpcodeOPER32Prefix;
-    ULONG OpcodeADDR32Prefix;
-    ULONG OpcodeINSB;
-    ULONG OpcodeINSW;
-    ULONG OpcodeOUTSB;
-    ULONG OpcodeOUTSW;
-    ULONG OpcodePUSHF;
-    ULONG OpcodePOPF;
-    ULONG OpcodeINTnn;
-    ULONG OpcodeINTO;
-    ULONG OpcodeIRET;
-    ULONG OpcodeINBimm;
-    ULONG OpcodeINWimm;
-    ULONG OpcodeOUTBimm;
-    ULONG OpcodeOUTWimm ;
-    ULONG OpcodeINB;
-    ULONG OpcodeINW;
-    ULONG OpcodeOUTB;
-    ULONG OpcodeOUTW;
-    ULONG OpcodeLOCKPrefix;
-    ULONG OpcodeREPNEPrefix;
-    ULONG OpcodeREPPrefix;
-    ULONG OpcodeHLT;
-    ULONG OpcodeCLI;
-    ULONG OpcodeSTI;
-    ULONG BopCount;
-} SYSTEM_VDM_INSTEMUL_INFO, *PSYSTEM_VDM_INSTEMUL_INFO;
-
-/* Class 20 */
-typedef struct _SYSTEM_VDM_BOP_INFO
-{
-    /* FIXME */
-    PVOID Dummy;
-} SYSTEM_VDM_BOP_INFO, *PSYSTEM_VDM_BOP_INFO;
-
-/* Class 21 */
-typedef struct _SYSTEM_CACHE_INFORMATION
-{
-    ULONG CurrentSize;
-    ULONG PeakSize;
-    ULONG PageFaultCount;
-    ULONG MinimumWorkingSet;
-    ULONG MaximumWorkingSet;
-    ULONG CurrentSizeIncludingTransitionInPages;
-    ULONG PeakSizeIncludingTransitionInPages;
-    ULONG Unused[2];
-} SYSTEM_CACHE_INFORMATION, *PSYSTEM_CACHE_INFORMATION;
-
-/* Class 22 */
-typedef struct _SYSTEM_POOLTAG
-{
-    union
-    {
-        UCHAR Tag[4];
-        ULONG TagUlong;
-    };
-    ULONG PagedAllocs;
-    ULONG PagedFrees;
-    ULONG PagedUsed;
-    ULONG NonPagedAllocs;
-    ULONG NonPagedFrees;
-    ULONG NonPagedUsed;
-} SYSTEM_POOLTAG, *PSYSTEM_POOLTAG;
-typedef struct _SYSTEM_POOLTAG_INFORMATION
-{
-    ULONG Count;
-    SYSTEM_POOLTAG TagInfo[1];
-} SYSTEM_POOLTAG_INFORMATION, *PSYSTEM_POOLTAG_INFORMATION;
-
-/* Class 23 */
-typedef struct _SYSTEM_INTERRUPT_INFORMATION
-{
-    ULONG ContextSwitches;
-    ULONG DpcCount;
-    ULONG DpcRate;
-    ULONG TimeIncrement;
-    ULONG DpcBypassCount;
-    ULONG ApcBypassCount;
-} SYSTEM_INTERRUPT_INFORMATION, *PSYSTEM_INTERRUPT_INFORMATION;
-
-/* Class 24 */
-typedef struct _SYSTEM_DPC_BEHAVIOR_INFORMATION
-{
-    ULONG Spare;
-    ULONG DpcQueueDepth;
-    ULONG MinimumDpcRate;
-    ULONG AdjustDpcThreshold;
-    ULONG IdealDpcRate;
-} SYSTEM_DPC_BEHAVIOR_INFORMATION, *PSYSTEM_DPC_BEHAVIOR_INFORMATION;
-
-/* Class 25 */
-typedef struct _SYSTEM_MEMORY_INFO
-{
-    PUCHAR StringOffset;
-    USHORT ValidCount;
-    USHORT TransitionCount;
-    USHORT ModifiedCount;
-    USHORT PageTableCount;
-} SYSTEM_MEMORY_INFO, *PSYSTEM_MEMORY_INFO;
-typedef struct _SYSTEM_MEMORY_INFORMATION
-{
-    ULONG InfoSize;
-    ULONG StringStart;
-    SYSTEM_MEMORY_INFO Memory[1];
-} SYSTEM_MEMORY_INFORMATION, *PSYSTEM_MEMORY_INFORMATION;
-
-/* Class 26 */
-typedef struct _SYSTEM_GDI_DRIVER_INFORMATION
-{
-    UNICODE_STRING DriverName;
-    PVOID ImageAddress;
-    PVOID SectionPointer;
-    PVOID EntryPoint;
-    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 28 */
-typedef struct _SYSTEM_QUERY_TIME_ADJUST_INFORMATION
-{
-    ULONG TimeAdjustment;
-    ULONG TimeIncrement;
-    BOOLEAN Enable;
-} SYSTEM_QUERY_TIME_ADJUST_INFORMATION, *PSYSTEM_QUERY_TIME_ADJUST_INFORMATION;
-
-typedef struct _SYSTEM_SET_TIME_ADJUST_INFORMATION
-{
-    ULONG TimeAdjustment;
-    BOOLEAN Enable;
-} SYSTEM_SET_TIME_ADJUST_INFORMATION, *PSYSTEM_SET_TIME_ADJUST_INFORMATION;
-
-/* Class 29 - Same as 25 */
-
-/* Class 30 - 31 */
-/* FIXME */
-
-/* Class 32 */
-typedef struct _SYSTEM_CRASH_DUMP_INFORMATION
-{
-    HANDLE CrashDumpSection;
-} SYSTEM_CRASH_DUMP_INFORMATION, *PSYSTEM_CRASH_DUMP_INFORMATION;
-
-/* Class 33 */
-typedef struct _SYSTEM_EXCEPTION_INFORMATION
-{
-    ULONG AlignmentFixupCount;
-    ULONG ExceptionDispatchCount;
-    ULONG FloatingEmulationCount;
-    ULONG ByteWordEmulationCount;
-} SYSTEM_EXCEPTION_INFORMATION, *PSYSTEM_EXCEPTION_INFORMATION;
-
-/* Class 34 */
-typedef struct _SYSTEM_CRASH_STATE_INFORMATION
-{
-    ULONG ValidCrashDump;
-} SYSTEM_CRASH_STATE_INFORMATION, *PSYSTEM_CRASH_STATE_INFORMATION;
-
-/* Class 35 */
-typedef struct _SYSTEM_KERNEL_DEBUGGER_INFORMATION
-{
-    BOOLEAN KernelDebuggerEnabled;
-    BOOLEAN KernelDebuggerNotPresent;
-} SYSTEM_KERNEL_DEBUGGER_INFORMATION, *PSYSTEM_KERNEL_DEBUGGER_INFORMATION;
-
-/* Class 36 */
-typedef struct _SYSTEM_CONTEXT_SWITCH_INFORMATION
-{
-    ULONG ContextSwitches;
-    ULONG FindAny;
-    ULONG FindLast;
-    ULONG FindIdeal;
-    ULONG IdleAny;
-    ULONG IdleCurrent;
-    ULONG IdleLast;
-    ULONG IdleIdeal;
-    ULONG PreemptAny;
-    ULONG PreemptCurrent;
-    ULONG PreemptLast;
-    ULONG SwitchToIdle;
-} SYSTEM_CONTEXT_SWITCH_INFORMATION, *PSYSTEM_CONTEXT_SWITCH_INFORMATION;
-
-/* Class 37 */
-typedef struct _SYSTEM_REGISTRY_QUOTA_INFORMATION
-{
-    ULONG RegistryQuotaAllowed;
-    ULONG RegistryQuotaUsed;
-    ULONG PagedPoolSize;
-} SYSTEM_REGISTRY_QUOTA_INFORMATION, *PSYSTEM_REGISTRY_QUOTA_INFORMATION;
-
-/* Class 38 */
-/* Not a structure, simply send the UNICODE_STRING */
-
-/* Class 39 */
-/* Not a structure, simply send a ULONG containing the new separation */
-
-/* Class 40 */
-typedef struct _PLUGPLAY_BUS_TYPE
-{
-    PLUGPLAY_BUS_CLASS BusClass;
-    union
-    {
-        INTERFACE_TYPE SystemBusType;
-        PLUGPLAY_VIRTUAL_BUS_TYPE PlugPlayVirtualBusType;
-    };
-} PLUGPLAY_BUS_TYPE, *PPLUGPLAY_BUS_TYPE;
-
-typedef struct _PLUGPLAY_BUS_INSTANCE
-{
-    PLUGPLAY_BUS_TYPE BusType;
-    ULONG BusNumber;
-    WCHAR BusName[MAX_BUS_NAME];
-} PLUGPLAY_BUS_INSTANCE, *PPLUGPLAY_BUS_INSTANCE;
-
-typedef struct _SYSTEM_PLUGPLAY_BUS_INFORMATION
-{
-    ULONG BusCount;
-    PLUGPLAY_BUS_INSTANCE BusInstance[1];
-} SYSTEM_PLUGPLAY_BUS_INFORMATION, *PSYSTEM_PLUGPLAY_BUS_INFORMATION;
-
-/* Class 41 */
-typedef struct _SYSTEM_DOCK_INFORMATION
-{
-    SYSTEM_DOCK_STATE DockState;
-    INTERFACE_TYPE DeviceBusType;
-    ULONG DeviceBusNumber;
-    ULONG SlotNumber;
-} SYSTEM_DOCK_INFORMATION, *PSYSTEM_DOCK_INFORMATION;
-
-/* Class 42 */
-/* FIXME: Conflict with WINNT.H */
-typedef struct __SYSTEM_POWER_INFORMATION
-{
-    BOOLEAN SystemSuspendSupported;
-    BOOLEAN SystemHibernateSupported;
-    BOOLEAN ResumeTimerSupportsSuspend;
-    BOOLEAN ResumeTimerSupportsHibernate;
-    BOOLEAN LidSupported;
-    BOOLEAN TurboSettingSupported;
-    BOOLEAN TurboMode;
-    BOOLEAN SystemAcOrDc;
-    BOOLEAN PowerDownDisabled;
-    LARGE_INTEGER SpindownDrives;
-} _SYSTEM_POWER_INFORMATION, *P_SYSTEM_POWER_INFORMATION;
-
-/* Class 43 */
-typedef struct _SYSTEM_LEGACY_DRIVER_INFORMATION
-{
-    PNP_VETO_TYPE VetoType;
-    UNICODE_STRING VetoDriver;
-    /* Buffer Follows */
-} SYSTEM_LEGACY_DRIVER_INFORMATION, *PSYSTEM_LEGACY_DRIVER_INFORMATION;
-
-/* Class 44 */
-typedef struct _TIME_ZONE_INFORMATION RTL_TIME_ZONE_INFORMATION;
-
-/* Class 45 */
-typedef struct _SYSTEM_LOOKASIDE_INFORMATION
-{
-    USHORT CurrentDepth;
-    USHORT MaximumDepth;
-    ULONG TotalAllocates;
-    ULONG AllocateMisses;
-    ULONG TotalFrees;
-    ULONG FreeMisses;
-    ULONG Type;
-    ULONG Tag;
-    ULONG Size;
-} SYSTEM_LOOKASIDE_INFORMATION, *PSYSTEM_LOOKASIDE_INFORMATION;
-
-/* Class 46 */
-/* Not a structure. Only a HANDLE for the SlipEvent; */
-
-/* Class 47 */
-/* Not a structure. Only a ULONG for the SessionId; */
-
-/* Class 48 */
-/* Not a structure. Only a ULONG for the SessionId; */
-
-/* Class 49 */
-/* FIXME */
-
-/* Class 50 */
-/* Not a structure. Only a ULONG_PTR for the SystemRangeStart */
-
-/* Class 51 */
-/* FIXME. Based on MM_DRIVER_VERIFIER_DATA */
-
-/* Class 52 */
-/* FIXME */
-
-/* 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;
-
-/* Class 54-81 */
-/* FIXME */
-
-/*
- * PlugPlay
- */
-
-/* Class 0x0A */
-typedef struct _PLUGPLAY_CONTROL_PROPERTY_DATA
-{
-    UNICODE_STRING DeviceInstance;
-    ULONG Property;
-    PVOID Buffer;
-    ULONG BufferSize;
-} PLUGPLAY_CONTROL_PROPERTY_DATA, *PPLUGPLAY_CONTROL_PROPERTY_DATA;
-
-/* Class 0x0C */
-typedef struct _PLUGPLAY_CONTROL_RELATED_DEVICE_DATA
-{
-    UNICODE_STRING TargetDeviceInstance;
-    ULONG Relation; /* 1: Parent  2: Child  3: Sibling */
-    UNICODE_STRING RelatedDeviceInstance;
-} PLUGPLAY_CONTROL_RELATED_DEVICE_DATA, *PPLUGPLAY_CONTROL_RELATED_DEVICE_DATA;
-
-/* Class 0x0E */
-typedef struct _PLUGPLAY_CONTOL_STATUS_DATA
-{
-    UNICODE_STRING DeviceInstance;
-    ULONG Operation;       /* 0: Get  1: Set  2: Clear */
-    ULONG DeviceStatus;    /* DN_       see cfg.h */
-    ULONG DeviceProblem;   /* CM_PROB_  see cfg.h */
-} PLUGPLAY_CONTROL_STATUS_DATA, *PPLUGPLAY_CONTROL_STATUS_DATA;
-
-/* Class 0x0F */
-typedef struct _PLUGPLAY_CONTOL_DEPTH_DATA
-{
-    UNICODE_STRING DeviceInstance;
-    ULONG Depth;
-} PLUGPLAY_CONTROL_DEPTH_DATA, *PPLUGPLAY_CONTROL_DEPTH_DATA;
-
-#endif