From a2af287dd8236075d740169922ec98e73d93ea7f Mon Sep 17 00:00:00 2001 From: Alex Ionescu Date: Tue, 6 Sep 2005 15:57:42 +0000 Subject: [PATCH] - Remove deprecated zwtypes.h and spread out the types in the NT subsystems where they should go. svn path=/trunk/; revision=17699 --- reactos/include/ndk/cmtypes.h | 150 ++++ reactos/include/ndk/extypes.h | 829 ++++++++++++++++++++++ reactos/include/ndk/iotypes.h | 14 + reactos/include/ndk/ldrfuncs.h | 2 +- reactos/include/ndk/lpctypes.h | 5 + reactos/include/ndk/mmtypes.h | 53 ++ reactos/include/ndk/ntndk.h | 1 - reactos/include/ndk/obtypes.h | 23 + reactos/include/ndk/potypes.h | 11 +- reactos/include/ndk/pstypes.h | 16 + reactos/include/ndk/zwtypes.h | 1213 -------------------------------- 11 files changed, 1101 insertions(+), 1216 deletions(-) delete mode 100644 reactos/include/ndk/zwtypes.h diff --git a/reactos/include/ndk/cmtypes.h b/reactos/include/ndk/cmtypes.h index 062dd9a2b32..4a2e020f2be 100644 --- a/reactos/include/ndk/cmtypes.h +++ b/reactos/include/ndk/cmtypes.h @@ -11,10 +11,23 @@ #define _CMTYPES_H /* DEPENDENCIES **************************************************************/ +#include +#include "iotypes.h" /* EXPORTED DATA *************************************************************/ /* CONSTANTS *****************************************************************/ +#define MAX_BUS_NAME 24 + +/* 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 **************************************************************/ @@ -44,9 +57,46 @@ typedef enum _KEY_SET_INFORMATION_CLASS KeyUserFlagsInformation, MaxKeySetInfoClass } KEY_SET_INFORMATION_CLASS; +#endif + +typedef enum _PLUGPLAY_CONTROL_CLASS +{ + PlugPlayControlUserResponse = 0x07, + PlugPlayControlProperty = 0x0A, + PlugPlayControlGetRelatedDevice = 0x0C, + PlugPlayControlDeviceStatus = 0x0E, + PlugPlayControlGetDeviceDepth +} PLUGPLAY_CONTROL_CLASS; + +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 _PLUGPLAY_EVENT_CATEGORY +{ + HardwareProfileChangeEvent, + TargetDeviceChangeEvent, + DeviceClassChangeEvent, + CustomDeviceEvent, + DeviceInstallEvent, + DeviceArrivalEvent, + PowerEvent, + VetoEvent, + BlockedDriverEvent, + MaxPlugEventCategory +} PLUGPLAY_EVENT_CATEGORY; /* TYPES *********************************************************************/ +#ifdef NTOS_MODE_USER typedef struct _KEY_WRITE_TIME_INFORMATION { LARGE_INTEGER LastWriteTime; @@ -125,5 +175,105 @@ typedef struct _KEY_BASIC_INFORMATION } KEY_BASIC_INFORMATION, *PKEY_BASIC_INFORMATION; #endif + +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; + +/* 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; + +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; + #endif diff --git a/reactos/include/ndk/extypes.h b/reactos/include/ndk/extypes.h index 1160075ed44..4d1a052a4f4 100644 --- a/reactos/include/ndk/extypes.h +++ b/reactos/include/ndk/extypes.h @@ -11,6 +11,15 @@ #define _EXTYPES_H /* DEPENDENCIES **************************************************************/ +#include +/* FIXME: this needs be implemented in the w32api ddk */ +#ifdef _MSC_VER +#include +#endif +#include "cmtypes.h" +#include "ketypes.h" +#include "pstypes.h" +#include "potypes.h" /* 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 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 @@ -40,9 +53,127 @@ extern POBJECT_TYPE NTSYSAPI ExTimerType; #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 *********************************************************************/ +typedef USHORT LANGID, *PLANGID; +typedef USHORT RTL_ATOM, *PRTL_ATOM; + #ifndef NTOS_MODE_USER typedef struct _EX_QUEUE_WORKER_INFO { @@ -123,5 +254,703 @@ typedef struct _HANDLE_TABLE } 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 diff --git a/reactos/include/ndk/iotypes.h b/reactos/include/ndk/iotypes.h index f165f511788..cc65d250658 100644 --- a/reactos/include/ndk/iotypes.h +++ b/reactos/include/ndk/iotypes.h @@ -82,6 +82,15 @@ extern POBJECT_TYPE NTSYSAPI IoDriverObjectType; #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 @@ -132,6 +141,11 @@ extern POBJECT_TYPE NTSYSAPI IoDriverObjectType; /* ENUMERATIONS **************************************************************/ +typedef enum _IO_COMPLETION_INFORMATION_CLASS +{ + IoCompletionBasicInformation +} IO_COMPLETION_INFORMATION_CLASS; + #ifdef NTOS_MODE_USER typedef enum _INTERFACE_TYPE { diff --git a/reactos/include/ndk/ldrfuncs.h b/reactos/include/ndk/ldrfuncs.h index cb4dacb6f11..cb96ed7c698 100644 --- a/reactos/include/ndk/ldrfuncs.h +++ b/reactos/include/ndk/ldrfuncs.h @@ -13,7 +13,7 @@ #include "ldrtypes.h" /* FIXME: this needs be implemented in the w32api ddk */ #ifdef _MSC_VER -#include "ntimage.h" +#include #endif /* FUNCTION TYPES ************************************************************/ diff --git a/reactos/include/ndk/lpctypes.h b/reactos/include/ndk/lpctypes.h index d30fbba748d..453b48f2e78 100644 --- a/reactos/include/ndk/lpctypes.h +++ b/reactos/include/ndk/lpctypes.h @@ -32,6 +32,11 @@ typedef enum _LPC_TYPE LPC_MAXIMUM } LPC_TYPE; +typedef enum _PORT_INFORMATION_CLASS +{ + PortNoInformation +} PORT_INFORMATION_CLASS; + /* TYPES *********************************************************************/ #ifdef NTOS_MODE_USER diff --git a/reactos/include/ndk/mmtypes.h b/reactos/include/ndk/mmtypes.h index ee33ffcec37..438ce2877c2 100644 --- a/reactos/include/ndk/mmtypes.h +++ b/reactos/include/ndk/mmtypes.h @@ -61,6 +61,20 @@ typedef enum _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 @@ -96,6 +110,45 @@ typedef struct _VM_COUNTERS_EX } 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 diff --git a/reactos/include/ndk/ntndk.h b/reactos/include/ndk/ntndk.h index f7bc555b7f3..245aa378413 100644 --- a/reactos/include/ndk/ntndk.h +++ b/reactos/include/ndk/ntndk.h @@ -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 "zwtypes.h" /* Native Types */ #include "zwfuncs.h" /* Native Functions (System Calls) */ #include "rtltypes.h" /* Runtime Library Types */ #include "rtlfuncs.h" /* Runtime Library Functions */ diff --git a/reactos/include/ndk/obtypes.h b/reactos/include/ndk/obtypes.h index cc2617b01a7..56b58b9dfe4 100644 --- a/reactos/include/ndk/obtypes.h +++ b/reactos/include/ndk/obtypes.h @@ -71,9 +71,20 @@ typedef enum _OB_OPEN_REASON ObInheritHandle, ObMaxOpenReason } OB_OPEN_REASON; +#endif + +typedef enum _OBJECT_INFORMATION_CLASS +{ + ObjectBasicInformation, + ObjectNameInformation, + ObjectTypeInformation, + ObjectAllTypesInformation, + ObjectHandleInformation +} OBJECT_INFORMATION_CLASS; /* FUNCTION TYPES ************************************************************/ +#ifndef NTOS_MODE_USER /* 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 +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 { diff --git a/reactos/include/ndk/potypes.h b/reactos/include/ndk/potypes.h index 1eccdbb0532..3ee9be08582 100644 --- a/reactos/include/ndk/potypes.h +++ b/reactos/include/ndk/potypes.h @@ -10,16 +10,25 @@ #define _POTYPES_H /* DEPENDENCIES **************************************************************/ +#ifndef NTOS_MODE_USER #include +#endif /* EXPORTED DATA *************************************************************/ /* CONSTANTS *****************************************************************/ /* ENUMERATIONS **************************************************************/ +typedef enum _SYSTEM_DOCK_STATE +{ + SystemDockStateUnknown, + SystemUndocked, + SystemDocked +} SYSTEM_DOCK_STATE, *PSYSTEM_DOCK_STATE; /* TYPES *********************************************************************/ +#ifndef NTOS_MODE_USER 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; - +#endif #endif diff --git a/reactos/include/ndk/pstypes.h b/reactos/include/ndk/pstypes.h index e1741466041..b9931c9334b 100644 --- a/reactos/include/ndk/pstypes.h +++ b/reactos/include/ndk/pstypes.h @@ -439,6 +439,22 @@ typedef struct _PROCESS_SESSION_INFORMATION } 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_ diff --git a/reactos/include/ndk/zwtypes.h b/reactos/include/ndk/zwtypes.h deleted file mode 100644 index afd2da4cc7c..00000000000 --- a/reactos/include/ndk/zwtypes.h +++ /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 - -/* 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 -- 2.17.1