[SDK] One step further towards ReactOS source code tree restructure: the sdk folder...
[reactos.git] / reactos / include / xdk / ketypes.h
diff --git a/reactos/include/xdk/ketypes.h b/reactos/include/xdk/ketypes.h
deleted file mode 100644 (file)
index 710fd70..0000000
+++ /dev/null
@@ -1,1273 +0,0 @@
-/******************************************************************************
- *                              Kernel Types                                  *
- ******************************************************************************/
-$if (_WDMDDK_)
-
-typedef UCHAR KIRQL, *PKIRQL;
-typedef CCHAR KPROCESSOR_MODE;
-typedef LONG KPRIORITY;
-
-typedef enum _MODE {
-  KernelMode,
-  UserMode,
-  MaximumMode
-} MODE;
-
-#define CACHE_FULLY_ASSOCIATIVE 0xFF
-#define MAXIMUM_SUSPEND_COUNT   MAXCHAR
-
-#define EVENT_QUERY_STATE (0x0001)
-#define EVENT_MODIFY_STATE (0x0002)
-#define EVENT_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x3)
-
-#define LTP_PC_SMT 0x1
-
-#if (NTDDI_VERSION < NTDDI_WIN7) || defined(_X86_) || !defined(NT_PROCESSOR_GROUPS)
-#define SINGLE_GROUP_LEGACY_API        1
-#endif
-
-#define SEMAPHORE_QUERY_STATE (0x0001)
-#define SEMAPHORE_MODIFY_STATE (0x0002)
-#define SEMAPHORE_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x3)
-
-$endif(_WDMDDK_)
-$if(_WDMDDK_ || _WINNT_)
-
-typedef struct _PROCESSOR_GROUP_INFO {
-  UCHAR MaximumProcessorCount;
-  UCHAR ActiveProcessorCount;
-  UCHAR Reserved[38];
-  KAFFINITY ActiveProcessorMask;
-} PROCESSOR_GROUP_INFO, *PPROCESSOR_GROUP_INFO;
-
-typedef enum _PROCESSOR_CACHE_TYPE {
-  CacheUnified,
-  CacheInstruction,
-  CacheData,
-  CacheTrace
-} PROCESSOR_CACHE_TYPE;
-
-typedef struct _CACHE_DESCRIPTOR {
-  UCHAR Level;
-  UCHAR Associativity;
-  USHORT LineSize;
-  ULONG Size;
-  PROCESSOR_CACHE_TYPE Type;
-} CACHE_DESCRIPTOR, *PCACHE_DESCRIPTOR;
-
-typedef struct _NUMA_NODE_RELATIONSHIP {
-  ULONG NodeNumber;
-  UCHAR Reserved[20];
-  GROUP_AFFINITY GroupMask;
-} NUMA_NODE_RELATIONSHIP, *PNUMA_NODE_RELATIONSHIP;
-
-typedef struct _CACHE_RELATIONSHIP {
-  UCHAR Level;
-  UCHAR Associativity;
-  USHORT LineSize;
-  ULONG CacheSize;
-  PROCESSOR_CACHE_TYPE Type;
-  UCHAR Reserved[20];
-  GROUP_AFFINITY GroupMask;
-} CACHE_RELATIONSHIP, *PCACHE_RELATIONSHIP;
-
-typedef struct _GROUP_RELATIONSHIP {
-  USHORT MaximumGroupCount;
-  USHORT ActiveGroupCount;
-  UCHAR Reserved[20];
-  PROCESSOR_GROUP_INFO GroupInfo[ANYSIZE_ARRAY];
-} GROUP_RELATIONSHIP, *PGROUP_RELATIONSHIP;
-
-typedef enum _LOGICAL_PROCESSOR_RELATIONSHIP {
-  RelationProcessorCore,
-  RelationNumaNode,
-  RelationCache,
-  RelationProcessorPackage,
-  RelationGroup,
-  RelationAll = 0xffff
-} LOGICAL_PROCESSOR_RELATIONSHIP;
-
-typedef struct _PROCESSOR_RELATIONSHIP {
-  UCHAR Flags;
-  UCHAR Reserved[21];
-  USHORT GroupCount;
-  _Field_size_(GroupCount) GROUP_AFFINITY GroupMask[ANYSIZE_ARRAY];
-} PROCESSOR_RELATIONSHIP, *PPROCESSOR_RELATIONSHIP;
-
-typedef struct _SYSTEM_LOGICAL_PROCESSOR_INFORMATION {
-  ULONG_PTR ProcessorMask;
-  LOGICAL_PROCESSOR_RELATIONSHIP Relationship;
-  _ANONYMOUS_UNION union {
-    struct {
-      UCHAR Flags;
-    } ProcessorCore;
-    struct {
-      ULONG NodeNumber;
-    } NumaNode;
-    CACHE_DESCRIPTOR Cache;
-    ULONGLONG Reserved[2];
-  } DUMMYUNIONNAME;
-} SYSTEM_LOGICAL_PROCESSOR_INFORMATION, *PSYSTEM_LOGICAL_PROCESSOR_INFORMATION;
-
-typedef struct _SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX {
-  LOGICAL_PROCESSOR_RELATIONSHIP Relationship;
-  ULONG Size;
-  _ANONYMOUS_UNION union {
-    PROCESSOR_RELATIONSHIP Processor;
-    NUMA_NODE_RELATIONSHIP NumaNode;
-    CACHE_RELATIONSHIP Cache;
-    GROUP_RELATIONSHIP Group;
-  } DUMMYUNIONNAME;
-} SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX, *PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX;
-
-$endif(_WDMDDK_ || _WINNT_)
-$if(_WDMDDK_)
-
-/* Processor features */
-#define PF_FLOATING_POINT_PRECISION_ERRATA       0
-#define PF_FLOATING_POINT_EMULATED               1
-#define PF_COMPARE_EXCHANGE_DOUBLE               2
-#define PF_MMX_INSTRUCTIONS_AVAILABLE            3
-#define PF_PPC_MOVEMEM_64BIT_OK                  4
-#define PF_ALPHA_BYTE_INSTRUCTIONS               5
-#define PF_XMMI_INSTRUCTIONS_AVAILABLE           6
-#define PF_3DNOW_INSTRUCTIONS_AVAILABLE          7
-#define PF_RDTSC_INSTRUCTION_AVAILABLE           8
-#define PF_PAE_ENABLED                           9
-#define PF_XMMI64_INSTRUCTIONS_AVAILABLE        10
-#define PF_SSE_DAZ_MODE_AVAILABLE               11
-#define PF_NX_ENABLED                           12
-#define PF_SSE3_INSTRUCTIONS_AVAILABLE          13
-#define PF_COMPARE_EXCHANGE128                  14
-#define PF_COMPARE64_EXCHANGE128                15
-#define PF_CHANNELS_ENABLED                     16
-#define PF_XSAVE_ENABLED                        17
-#define PF_ARM_VFP_32_REGISTERS_AVAILABLE       18
-#define PF_ARM_NEON_INSTRUCTIONS_AVAILABLE      19
-#define PF_SECOND_LEVEL_ADDRESS_TRANSLATION     20
-#define PF_VIRT_FIRMWARE_ENABLED                21
-#define PF_RDWRFSGSBASE_AVAILABLE               22
-#define PF_FASTFAIL_AVAILABLE                   23
-#define PF_ARM_DIVIDE_INSTRUCTION_AVAILABLE     24
-#define PF_ARM_64BIT_LOADSTORE_ATOMIC           25
-#define PF_ARM_EXTERNAL_CACHE_AVAILABLE         26
-#define PF_ARM_FMAC_INSTRUCTIONS_AVAILABLE      27
-#define PF_RDRAND_INSTRUCTION_AVAILABLE         28
-#define PF_ARM_V8_INSTRUCTIONS_AVAILABLE        29
-#define PF_ARM_V8_CRYPTO_INSTRUCTIONS_AVAILABLE 30
-#define PF_ARM_V8_CRC32_INSTRUCTIONS_AVAILABLE  31
-
-#define MAXIMUM_WAIT_OBJECTS              64
-
-#define ASSERT_APC(Object) \
-    NT_ASSERT((Object)->Type == ApcObject)
-
-#define ASSERT_DPC(Object) \
-    NT_ASSERT(((Object)->Type == 0) || \
-              ((Object)->Type == DpcObject) || \
-              ((Object)->Type == ThreadedDpcObject))
-
-#define ASSERT_GATE(Object) \
-    NT_ASSERT((((Object)->Header.Type & KOBJECT_TYPE_MASK) == GateObject) || \
-              (((Object)->Header.Type & KOBJECT_TYPE_MASK) == EventSynchronizationObject))
-
-#define ASSERT_DEVICE_QUEUE(Object) \
-    NT_ASSERT((Object)->Type == DeviceQueueObject)
-
-#define ASSERT_TIMER(Object) \
-    NT_ASSERT(((Object)->Header.Type == TimerNotificationObject) || \
-              ((Object)->Header.Type == TimerSynchronizationObject))
-
-#define ASSERT_MUTANT(Object) \
-    NT_ASSERT((Object)->Header.Type == MutantObject)
-
-#define ASSERT_SEMAPHORE(Object) \
-    NT_ASSERT((Object)->Header.Type == SemaphoreObject)
-
-#define ASSERT_EVENT(Object) \
-    NT_ASSERT(((Object)->Header.Type == NotificationEvent) || \
-              ((Object)->Header.Type == SynchronizationEvent))
-
-#define DPC_NORMAL 0
-#define DPC_THREADED 1
-
-#define GM_LOCK_BIT          0x1
-#define GM_LOCK_BIT_V        0x0
-#define GM_LOCK_WAITER_WOKEN 0x2
-#define GM_LOCK_WAITER_INC   0x4
-
-#define LOCK_QUEUE_WAIT_BIT               0
-#define LOCK_QUEUE_OWNER_BIT              1
-
-#define LOCK_QUEUE_WAIT                   1
-#define LOCK_QUEUE_OWNER                  2
-#define LOCK_QUEUE_TIMER_LOCK_SHIFT       4
-#define LOCK_QUEUE_TIMER_TABLE_LOCKS (1 << (8 - LOCK_QUEUE_TIMER_LOCK_SHIFT))
-
-#define PROCESSOR_FEATURE_MAX 64
-
-#define DBG_STATUS_CONTROL_C              1
-#define DBG_STATUS_SYSRQ                  2
-#define DBG_STATUS_BUGCHECK_FIRST         3
-#define DBG_STATUS_BUGCHECK_SECOND        4
-#define DBG_STATUS_FATAL                  5
-#define DBG_STATUS_DEBUG_CONTROL          6
-#define DBG_STATUS_WORKER                 7
-
-#if defined(_WIN64)
-#define MAXIMUM_PROC_PER_GROUP 64
-#else
-#define MAXIMUM_PROC_PER_GROUP 32
-#endif
-#define MAXIMUM_PROCESSORS          MAXIMUM_PROC_PER_GROUP
-
-#define EXCEPTION_DIVIDED_BY_ZERO       0
-#define EXCEPTION_DEBUG                 1
-#define EXCEPTION_NMI                   2
-#define EXCEPTION_INT3                  3
-#define EXCEPTION_BOUND_CHECK           5
-#define EXCEPTION_INVALID_OPCODE        6
-#define EXCEPTION_NPX_NOT_AVAILABLE     7
-#define EXCEPTION_DOUBLE_FAULT          8
-#define EXCEPTION_NPX_OVERRUN           9
-#define EXCEPTION_INVALID_TSS           0x0A
-#define EXCEPTION_SEGMENT_NOT_PRESENT   0x0B
-#define EXCEPTION_STACK_FAULT           0x0C
-#define EXCEPTION_GP_FAULT              0x0D
-#define EXCEPTION_RESERVED_TRAP         0x0F
-#define EXCEPTION_NPX_ERROR             0x010
-#define EXCEPTION_ALIGNMENT_CHECK       0x011
-
-typedef enum _KBUGCHECK_CALLBACK_REASON {
-  KbCallbackInvalid,
-  KbCallbackReserved1,
-  KbCallbackSecondaryDumpData,
-  KbCallbackDumpIo,
-  KbCallbackAddPages
-} KBUGCHECK_CALLBACK_REASON;
-
-struct _KBUGCHECK_REASON_CALLBACK_RECORD;
-
-_Function_class_(KBUGCHECK_REASON_CALLBACK_ROUTINE)
-_IRQL_requires_same_
-typedef VOID
-(NTAPI KBUGCHECK_REASON_CALLBACK_ROUTINE)(
-    _In_ KBUGCHECK_CALLBACK_REASON Reason,
-    _In_ struct _KBUGCHECK_REASON_CALLBACK_RECORD *Record,
-    _Inout_ PVOID ReasonSpecificData,
-    _In_ ULONG ReasonSpecificDataLength);
-typedef KBUGCHECK_REASON_CALLBACK_ROUTINE *PKBUGCHECK_REASON_CALLBACK_ROUTINE;
-
-typedef struct _KBUGCHECK_ADD_PAGES {
-  _Inout_ PVOID Context;
-  _Inout_ ULONG Flags;
-  _In_ ULONG BugCheckCode;
-  _Out_ ULONG_PTR Address;
-  _Out_ ULONG_PTR Count;
-} KBUGCHECK_ADD_PAGES, *PKBUGCHECK_ADD_PAGES;
-
-typedef struct _KBUGCHECK_SECONDARY_DUMP_DATA {
-  _In_ PVOID InBuffer;
-  _In_ ULONG InBufferLength;
-  _In_ ULONG MaximumAllowed;
-  _Out_ GUID Guid;
-  _Out_ PVOID OutBuffer;
-  _Out_ ULONG OutBufferLength;
-} KBUGCHECK_SECONDARY_DUMP_DATA, *PKBUGCHECK_SECONDARY_DUMP_DATA;
-
-typedef enum _KBUGCHECK_DUMP_IO_TYPE {
-  KbDumpIoInvalid,
-  KbDumpIoHeader,
-  KbDumpIoBody,
-  KbDumpIoSecondaryData,
-  KbDumpIoComplete
-} KBUGCHECK_DUMP_IO_TYPE;
-
-typedef struct _KBUGCHECK_DUMP_IO {
-  _In_ ULONG64 Offset;
-  _In_ PVOID Buffer;
-  _In_ ULONG BufferLength;
-  _In_ KBUGCHECK_DUMP_IO_TYPE Type;
-} KBUGCHECK_DUMP_IO, *PKBUGCHECK_DUMP_IO;
-
-#define KB_ADD_PAGES_FLAG_VIRTUAL_ADDRESS         0x00000001UL
-#define KB_ADD_PAGES_FLAG_PHYSICAL_ADDRESS        0x00000002UL
-#define KB_ADD_PAGES_FLAG_ADDITIONAL_RANGES_EXIST 0x80000000UL
-
-typedef struct _KBUGCHECK_REASON_CALLBACK_RECORD {
-  LIST_ENTRY Entry;
-  PKBUGCHECK_REASON_CALLBACK_ROUTINE CallbackRoutine;
-  PUCHAR Component;
-  ULONG_PTR Checksum;
-  KBUGCHECK_CALLBACK_REASON Reason;
-  UCHAR State;
-} KBUGCHECK_REASON_CALLBACK_RECORD, *PKBUGCHECK_REASON_CALLBACK_RECORD;
-
-typedef enum _KBUGCHECK_BUFFER_DUMP_STATE {
-  BufferEmpty,
-  BufferInserted,
-  BufferStarted,
-  BufferFinished,
-  BufferIncomplete
-} KBUGCHECK_BUFFER_DUMP_STATE;
-
-_Function_class_(KBUGCHECK_CALLBACK_ROUTINE)
-_IRQL_requires_same_
-typedef VOID
-(NTAPI KBUGCHECK_CALLBACK_ROUTINE)(
-  IN PVOID Buffer,
-  IN ULONG Length);
-typedef KBUGCHECK_CALLBACK_ROUTINE *PKBUGCHECK_CALLBACK_ROUTINE;
-
-typedef struct _KBUGCHECK_CALLBACK_RECORD {
-  LIST_ENTRY Entry;
-  PKBUGCHECK_CALLBACK_ROUTINE CallbackRoutine;
-  _Field_size_bytes_opt_(Length) PVOID Buffer;
-  ULONG Length;
-  PUCHAR Component;
-  ULONG_PTR Checksum;
-  UCHAR State;
-} KBUGCHECK_CALLBACK_RECORD, *PKBUGCHECK_CALLBACK_RECORD;
-
-_Function_class_(NMI_CALLBACK)
-_IRQL_requires_same_
-typedef BOOLEAN
-(NTAPI NMI_CALLBACK)(
-  _In_opt_ PVOID Context,
-  _In_ BOOLEAN Handled);
-typedef NMI_CALLBACK *PNMI_CALLBACK;
-
-typedef enum _KE_PROCESSOR_CHANGE_NOTIFY_STATE {
-  KeProcessorAddStartNotify = 0,
-  KeProcessorAddCompleteNotify,
-  KeProcessorAddFailureNotify
-} KE_PROCESSOR_CHANGE_NOTIFY_STATE;
-
-typedef struct _KE_PROCESSOR_CHANGE_NOTIFY_CONTEXT {
-  KE_PROCESSOR_CHANGE_NOTIFY_STATE State;
-  ULONG NtNumber;
-  NTSTATUS Status;
-#if (NTDDI_VERSION >= NTDDI_WIN7)
-  PROCESSOR_NUMBER ProcNumber;
-#endif
-} KE_PROCESSOR_CHANGE_NOTIFY_CONTEXT, *PKE_PROCESSOR_CHANGE_NOTIFY_CONTEXT;
-
-_IRQL_requires_same_
-_Function_class_(PROCESSOR_CALLBACK_FUNCTION)
-typedef VOID
-(NTAPI PROCESSOR_CALLBACK_FUNCTION)(
-  _In_ PVOID CallbackContext,
-  _In_ PKE_PROCESSOR_CHANGE_NOTIFY_CONTEXT ChangeContext,
-  _Inout_ PNTSTATUS OperationStatus);
-typedef PROCESSOR_CALLBACK_FUNCTION *PPROCESSOR_CALLBACK_FUNCTION;
-
-#define KE_PROCESSOR_CHANGE_ADD_EXISTING         1
-
-#define INVALID_PROCESSOR_INDEX     0xffffffff
-
-typedef enum _KINTERRUPT_POLARITY {
-  InterruptPolarityUnknown,
-  InterruptActiveHigh,
-  InterruptActiveLow
-} KINTERRUPT_POLARITY, *PKINTERRUPT_POLARITY;
-
-typedef enum _KPROFILE_SOURCE {
-  ProfileTime,
-  ProfileAlignmentFixup,
-  ProfileTotalIssues,
-  ProfilePipelineDry,
-  ProfileLoadInstructions,
-  ProfilePipelineFrozen,
-  ProfileBranchInstructions,
-  ProfileTotalNonissues,
-  ProfileDcacheMisses,
-  ProfileIcacheMisses,
-  ProfileCacheMisses,
-  ProfileBranchMispredictions,
-  ProfileStoreInstructions,
-  ProfileFpInstructions,
-  ProfileIntegerInstructions,
-  Profile2Issue,
-  Profile3Issue,
-  Profile4Issue,
-  ProfileSpecialInstructions,
-  ProfileTotalCycles,
-  ProfileIcacheIssues,
-  ProfileDcacheAccesses,
-  ProfileMemoryBarrierCycles,
-  ProfileLoadLinkedIssues,
-  ProfileMaximum
-} KPROFILE_SOURCE;
-
-typedef enum _KWAIT_REASON {
-  Executive,
-  FreePage,
-  PageIn,
-  PoolAllocation,
-  DelayExecution,
-  Suspended,
-  UserRequest,
-  WrExecutive,
-  WrFreePage,
-  WrPageIn,
-  WrPoolAllocation,
-  WrDelayExecution,
-  WrSuspended,
-  WrUserRequest,
-  WrEventPair,
-  WrQueue,
-  WrLpcReceive,
-  WrLpcReply,
-  WrVirtualMemory,
-  WrPageOut,
-  WrRendezvous,
-  WrKeyedEvent,
-  WrTerminated,
-  WrProcessInSwap,
-  WrCpuRateControl,
-  WrCalloutStack,
-  WrKernel,
-  WrResource,
-  WrPushLock,
-  WrMutex,
-  WrQuantumEnd,
-  WrDispatchInt,
-  WrPreempted,
-  WrYieldExecution,
-  WrFastMutex,
-  WrGuardedMutex,
-  WrRundown,
-  MaximumWaitReason
-} KWAIT_REASON;
-
-typedef struct _KWAIT_BLOCK {
-  LIST_ENTRY WaitListEntry;
-  struct _KTHREAD *Thread;
-  PVOID Object;
-  struct _KWAIT_BLOCK *NextWaitBlock;
-  USHORT WaitKey;
-  UCHAR WaitType;
-#if (NTDDI_VERSION >= NTDDI_WIN7)
-  volatile UCHAR BlockState;
-#else
-  UCHAR SpareByte;
-#endif
-#if defined(_WIN64)
-  LONG SpareLong;
-#endif
-} KWAIT_BLOCK, *PKWAIT_BLOCK, *PRKWAIT_BLOCK;
-
-typedef enum _KINTERRUPT_MODE {
-  LevelSensitive,
-  Latched
-} KINTERRUPT_MODE;
-
-#define THREAD_WAIT_OBJECTS 3
-
-_IRQL_requires_same_
-_Function_class_(KSTART_ROUTINE)
-typedef VOID
-(NTAPI KSTART_ROUTINE)(
-  _In_ PVOID StartContext);
-typedef KSTART_ROUTINE *PKSTART_ROUTINE;
-
-typedef VOID
-(NTAPI *PKINTERRUPT_ROUTINE)(
-  VOID);
-
-_Function_class_(KSERVICE_ROUTINE)
-_IRQL_requires_(HIGH_LEVEL)
-_IRQL_requires_same_
-typedef BOOLEAN
-(NTAPI KSERVICE_ROUTINE)(
-  _In_ struct _KINTERRUPT *Interrupt,
-  _In_ PVOID ServiceContext);
-typedef KSERVICE_ROUTINE *PKSERVICE_ROUTINE;
-
-_Function_class_(KMESSAGE_SERVICE_ROUTINE)
-_IRQL_requires_same_
-typedef BOOLEAN
-(NTAPI KMESSAGE_SERVICE_ROUTINE)(
-  _In_ struct _KINTERRUPT *Interrupt,
-  _In_ PVOID ServiceContext,
-  _In_ ULONG MessageID);
-typedef KMESSAGE_SERVICE_ROUTINE *PKMESSAGE_SERVICE_ROUTINE;
-
-typedef enum _KD_OPTION {
-  KD_OPTION_SET_BLOCK_ENABLE,
-} KD_OPTION;
-
-#ifdef _NTSYSTEM_
-typedef VOID
-(NTAPI *PKNORMAL_ROUTINE)(
-  IN PVOID NormalContext OPTIONAL,
-  IN PVOID SystemArgument1 OPTIONAL,
-  IN PVOID SystemArgument2 OPTIONAL);
-
-typedef VOID
-(NTAPI *PKRUNDOWN_ROUTINE)(
-  IN struct _KAPC *Apc);
-
-typedef VOID
-(NTAPI *PKKERNEL_ROUTINE)(
-  IN struct _KAPC *Apc,
-  IN OUT PKNORMAL_ROUTINE *NormalRoutine OPTIONAL,
-  IN OUT PVOID *NormalContext OPTIONAL,
-  IN OUT PVOID *SystemArgument1 OPTIONAL,
-  IN OUT PVOID *SystemArgument2 OPTIONAL);
-#endif
-
-typedef struct _KAPC {
-  UCHAR Type;
-  UCHAR SpareByte0;
-  UCHAR Size;
-  UCHAR SpareByte1;
-  ULONG SpareLong0;
-  struct _KTHREAD *Thread;
-  LIST_ENTRY ApcListEntry;
-#ifdef _NTSYSTEM_
-  PKKERNEL_ROUTINE KernelRoutine;
-  PKRUNDOWN_ROUTINE RundownRoutine;
-  PKNORMAL_ROUTINE NormalRoutine;
-#else
-  PVOID Reserved[3];
-#endif
-  PVOID NormalContext;
-  PVOID SystemArgument1;
-  PVOID SystemArgument2;
-  CCHAR ApcStateIndex;
-  KPROCESSOR_MODE ApcMode;
-  BOOLEAN Inserted;
-} KAPC, *PKAPC, *RESTRICTED_POINTER PRKAPC;
-
-#define KAPC_OFFSET_TO_SPARE_BYTE0 FIELD_OFFSET(KAPC, SpareByte0)
-#define KAPC_OFFSET_TO_SPARE_BYTE1 FIELD_OFFSET(KAPC, SpareByte1)
-#define KAPC_OFFSET_TO_SPARE_LONG FIELD_OFFSET(KAPC, SpareLong0)
-#define KAPC_OFFSET_TO_SYSTEMARGUMENT1 FIELD_OFFSET(KAPC, SystemArgument1)
-#define KAPC_OFFSET_TO_SYSTEMARGUMENT2 FIELD_OFFSET(KAPC, SystemArgument2)
-#define KAPC_OFFSET_TO_APCSTATEINDEX FIELD_OFFSET(KAPC, ApcStateIndex)
-#define KAPC_ACTUAL_LENGTH (FIELD_OFFSET(KAPC, Inserted) + sizeof(BOOLEAN))
-
-typedef struct _KDEVICE_QUEUE_ENTRY {
-  LIST_ENTRY DeviceListEntry;
-  ULONG SortKey;
-  BOOLEAN Inserted;
-} KDEVICE_QUEUE_ENTRY, *PKDEVICE_QUEUE_ENTRY,
-*RESTRICTED_POINTER PRKDEVICE_QUEUE_ENTRY;
-
-typedef PVOID PKIPI_CONTEXT;
-
-typedef VOID
-(NTAPI *PKIPI_WORKER)(
-  IN OUT PKIPI_CONTEXT PacketContext,
-  IN PVOID Parameter1 OPTIONAL,
-  IN PVOID Parameter2 OPTIONAL,
-  IN PVOID Parameter3 OPTIONAL);
-
-typedef struct _KIPI_COUNTS {
-  ULONG Freeze;
-  ULONG Packet;
-  ULONG DPC;
-  ULONG APC;
-  ULONG FlushSingleTb;
-  ULONG FlushMultipleTb;
-  ULONG FlushEntireTb;
-  ULONG GenericCall;
-  ULONG ChangeColor;
-  ULONG SweepDcache;
-  ULONG SweepIcache;
-  ULONG SweepIcacheRange;
-  ULONG FlushIoBuffers;
-  ULONG GratuitousDPC;
-} KIPI_COUNTS, *PKIPI_COUNTS;
-
-_IRQL_requires_same_
-_Function_class_(KIPI_BROADCAST_WORKER)
-_IRQL_requires_(IPI_LEVEL)
-typedef ULONG_PTR
-(NTAPI KIPI_BROADCAST_WORKER)(
-  _In_ ULONG_PTR Argument);
-typedef KIPI_BROADCAST_WORKER *PKIPI_BROADCAST_WORKER;
-
-typedef ULONG_PTR KSPIN_LOCK, *PKSPIN_LOCK;
-
-typedef struct _KSPIN_LOCK_QUEUE {
-  struct _KSPIN_LOCK_QUEUE *volatile Next;
-  PKSPIN_LOCK volatile Lock;
-} KSPIN_LOCK_QUEUE, *PKSPIN_LOCK_QUEUE;
-
-typedef struct _KLOCK_QUEUE_HANDLE {
-  KSPIN_LOCK_QUEUE LockQueue;
-  KIRQL OldIrql;
-} KLOCK_QUEUE_HANDLE, *PKLOCK_QUEUE_HANDLE;
-
-#if defined(_AMD64_)
-
-typedef ULONG64 KSPIN_LOCK_QUEUE_NUMBER;
-
-#define LockQueueDispatcherLock 0
-#define LockQueueExpansionLock 1
-#define LockQueuePfnLock 2
-#define LockQueueSystemSpaceLock 3
-#define LockQueueVacbLock 4
-#define LockQueueMasterLock 5
-#define LockQueueNonPagedPoolLock 6
-#define LockQueueIoCancelLock 7
-#define LockQueueWorkQueueLock 8
-#define LockQueueIoVpbLock 9
-#define LockQueueIoDatabaseLock 10
-#define LockQueueIoCompletionLock 11
-#define LockQueueNtfsStructLock 12
-#define LockQueueAfdWorkQueueLock 13
-#define LockQueueBcbLock 14
-#define LockQueueMmNonPagedPoolLock 15
-#define LockQueueUnusedSpare16 16
-#define LockQueueTimerTableLock 17
-#define LockQueueMaximumLock (LockQueueTimerTableLock + LOCK_QUEUE_TIMER_TABLE_LOCKS)
-
-#else
-
-typedef enum _KSPIN_LOCK_QUEUE_NUMBER {
-  LockQueueDispatcherLock,
-  LockQueueExpansionLock,
-  LockQueuePfnLock,
-  LockQueueSystemSpaceLock,
-  LockQueueVacbLock,
-  LockQueueMasterLock,
-  LockQueueNonPagedPoolLock,
-  LockQueueIoCancelLock,
-  LockQueueWorkQueueLock,
-  LockQueueIoVpbLock,
-  LockQueueIoDatabaseLock,
-  LockQueueIoCompletionLock,
-  LockQueueNtfsStructLock,
-  LockQueueAfdWorkQueueLock,
-  LockQueueBcbLock,
-  LockQueueMmNonPagedPoolLock,
-  LockQueueUnusedSpare16,
-  LockQueueTimerTableLock,
-  LockQueueMaximumLock = LockQueueTimerTableLock + LOCK_QUEUE_TIMER_TABLE_LOCKS
-} KSPIN_LOCK_QUEUE_NUMBER, *PKSPIN_LOCK_QUEUE_NUMBER;
-
-#endif /* defined(_AMD64_) */
-
-_Function_class_(KDEFERRED_ROUTINE)
-_IRQL_requires_(DISPATCH_LEVEL)
-_IRQL_requires_same_
-typedef VOID
-(NTAPI KDEFERRED_ROUTINE)(
-  _In_ struct _KDPC *Dpc,
-  _In_opt_ PVOID DeferredContext,
-  _In_opt_ PVOID SystemArgument1,
-  _In_opt_ PVOID SystemArgument2);
-typedef KDEFERRED_ROUTINE *PKDEFERRED_ROUTINE;
-
-typedef enum _KDPC_IMPORTANCE {
-  LowImportance,
-  MediumImportance,
-  HighImportance,
-  MediumHighImportance
-} KDPC_IMPORTANCE;
-
-typedef struct _KDPC {
-  UCHAR Type;
-  UCHAR Importance;
-  volatile USHORT Number;
-  LIST_ENTRY DpcListEntry;
-  PKDEFERRED_ROUTINE DeferredRoutine;
-  PVOID DeferredContext;
-  PVOID SystemArgument1;
-  PVOID SystemArgument2;
-  volatile PVOID DpcData;
-} KDPC, *PKDPC, *RESTRICTED_POINTER PRKDPC;
-
-typedef struct _KDPC_WATCHDOG_INFORMATION {
-  ULONG DpcTimeLimit;
-  ULONG DpcTimeCount;
-  ULONG DpcWatchdogLimit;
-  ULONG DpcWatchdogCount;
-  ULONG Reserved;
-} KDPC_WATCHDOG_INFORMATION, *PKDPC_WATCHDOG_INFORMATION;
-
-typedef struct _KDEVICE_QUEUE {
-  CSHORT Type;
-  CSHORT Size;
-  LIST_ENTRY DeviceListHead;
-  KSPIN_LOCK Lock;
-# if defined(_AMD64_)
-  _ANONYMOUS_UNION union {
-    BOOLEAN Busy;
-    _ANONYMOUS_STRUCT struct {
-      LONG64 Reserved:8;
-      LONG64 Hint:56;
-    } DUMMYSTRUCTNAME;
-  } DUMMYUNIONNAME;
-# else
-  BOOLEAN Busy;
-# endif
-} KDEVICE_QUEUE, *PKDEVICE_QUEUE, *RESTRICTED_POINTER PRKDEVICE_QUEUE;
-
-#define TIMER_EXPIRED_INDEX_BITS        6
-#define TIMER_PROCESSOR_INDEX_BITS      5
-
-typedef struct _DISPATCHER_HEADER {
-  _ANONYMOUS_UNION union {
-    _ANONYMOUS_STRUCT struct {
-      UCHAR Type;
-      _ANONYMOUS_UNION union {
-        _ANONYMOUS_UNION union {
-          UCHAR TimerControlFlags;
-          _ANONYMOUS_STRUCT struct {
-            UCHAR Absolute:1;
-            UCHAR Coalescable:1;
-            UCHAR KeepShifting:1;
-            UCHAR EncodedTolerableDelay:5;
-          } DUMMYSTRUCTNAME;
-        } DUMMYUNIONNAME;
-        UCHAR Abandoned;
-#if (NTDDI_VERSION < NTDDI_WIN7)
-        UCHAR NpxIrql;
-#endif
-        BOOLEAN Signalling;
-      } DUMMYUNIONNAME;
-      _ANONYMOUS_UNION union {
-        _ANONYMOUS_UNION union {
-          UCHAR ThreadControlFlags;
-          _ANONYMOUS_STRUCT struct {
-            UCHAR CpuThrottled:1;
-            UCHAR CycleProfiling:1;
-            UCHAR CounterProfiling:1;
-            UCHAR Reserved:5;
-          } DUMMYSTRUCTNAME;
-        } DUMMYUNIONNAME;
-        UCHAR Size;
-        UCHAR Hand;
-      } DUMMYUNIONNAME2;
-      _ANONYMOUS_UNION union {
-#if (NTDDI_VERSION >= NTDDI_WIN7)
-        _ANONYMOUS_UNION union {
-          UCHAR TimerMiscFlags;
-          _ANONYMOUS_STRUCT struct {
-#if !defined(_X86_)
-            UCHAR Index:TIMER_EXPIRED_INDEX_BITS;
-#else
-            UCHAR Index:1;
-            UCHAR Processor:TIMER_PROCESSOR_INDEX_BITS;
-#endif
-            UCHAR Inserted:1;
-            volatile UCHAR Expired:1;
-          } DUMMYSTRUCTNAME;
-        } DUMMYUNIONNAME;
-#else
-        /* Pre Win7 compatibility fix to latest WDK */
-        UCHAR Inserted;
-#endif
-        _ANONYMOUS_UNION union {
-          BOOLEAN DebugActive;
-          _ANONYMOUS_STRUCT struct {
-            BOOLEAN ActiveDR7:1;
-            BOOLEAN Instrumented:1;
-            BOOLEAN Reserved2:4;
-            BOOLEAN UmsScheduled:1;
-            BOOLEAN UmsPrimary:1;
-          } DUMMYSTRUCTNAME;
-        } DUMMYUNIONNAME; /* should probably be DUMMYUNIONNAME2, but this is what WDK says */
-        BOOLEAN DpcActive;
-      } DUMMYUNIONNAME3;
-    } DUMMYSTRUCTNAME;
-    volatile LONG Lock;
-  } DUMMYUNIONNAME;
-  LONG SignalState;
-  LIST_ENTRY WaitListHead;
-} DISPATCHER_HEADER, *PDISPATCHER_HEADER;
-
-typedef struct _KEVENT {
-  DISPATCHER_HEADER Header;
-} KEVENT, *PKEVENT, *RESTRICTED_POINTER PRKEVENT;
-
-typedef struct _KSEMAPHORE {
-  DISPATCHER_HEADER Header;
-  LONG Limit;
-} KSEMAPHORE, *PKSEMAPHORE, *RESTRICTED_POINTER PRKSEMAPHORE;
-
-#define KSEMAPHORE_ACTUAL_LENGTH (FIELD_OFFSET(KSEMAPHORE, Limit) + sizeof(LONG))
-
-typedef struct _KGATE {
-  DISPATCHER_HEADER Header;
-} KGATE, *PKGATE, *RESTRICTED_POINTER PRKGATE;
-
-typedef struct _KGUARDED_MUTEX {
-  volatile LONG Count;
-  PKTHREAD Owner;
-  ULONG Contention;
-  KGATE Gate;
-  _ANONYMOUS_UNION union {
-    _ANONYMOUS_STRUCT struct {
-      SHORT KernelApcDisable;
-      SHORT SpecialApcDisable;
-    } DUMMYSTRUCTNAME;
-    ULONG CombinedApcDisable;
-  } DUMMYUNIONNAME;
-} KGUARDED_MUTEX, *PKGUARDED_MUTEX;
-
-typedef struct _KMUTANT {
-  DISPATCHER_HEADER Header;
-  LIST_ENTRY MutantListEntry;
-  struct _KTHREAD *RESTRICTED_POINTER OwnerThread;
-  BOOLEAN Abandoned;
-  UCHAR ApcDisable;
-} KMUTANT, *PKMUTANT, *RESTRICTED_POINTER PRKMUTANT, KMUTEX, *PKMUTEX, *RESTRICTED_POINTER PRKMUTEX;
-
-#define TIMER_TABLE_SIZE 512
-#define TIMER_TABLE_SHIFT 9
-
-typedef struct _KTIMER {
-  DISPATCHER_HEADER Header;
-  ULARGE_INTEGER DueTime;
-  LIST_ENTRY TimerListEntry;
-  struct _KDPC *Dpc;
-#if (NTDDI_VERSION >= NTDDI_WIN7) && !defined(_X86_)
-  ULONG Processor;
-#endif
-  ULONG Period;
-} KTIMER, *PKTIMER, *RESTRICTED_POINTER PRKTIMER;
-
-typedef enum _LOCK_OPERATION {
-  IoReadAccess,
-  IoWriteAccess,
-  IoModifyAccess
-} LOCK_OPERATION;
-
-#define KTIMER_ACTUAL_LENGTH (FIELD_OFFSET(KTIMER, Period) + sizeof(LONG))
-
-_Function_class_(KSYNCHRONIZE_ROUTINE)
-_IRQL_requires_same_
-typedef BOOLEAN
-(NTAPI KSYNCHRONIZE_ROUTINE)(
-  _In_ PVOID SynchronizeContext);
-typedef KSYNCHRONIZE_ROUTINE *PKSYNCHRONIZE_ROUTINE;
-
-typedef enum _POOL_TYPE {
-  NonPagedPool,
-  PagedPool,
-  NonPagedPoolMustSucceed,
-  DontUseThisType,
-  NonPagedPoolCacheAligned,
-  PagedPoolCacheAligned,
-  NonPagedPoolCacheAlignedMustS,
-  MaxPoolType,
-  NonPagedPoolSession = 32,
-  PagedPoolSession,
-  NonPagedPoolMustSucceedSession,
-  DontUseThisTypeSession,
-  NonPagedPoolCacheAlignedSession,
-  PagedPoolCacheAlignedSession,
-  NonPagedPoolCacheAlignedMustSSession
-} POOL_TYPE;
-
-typedef enum _ALTERNATIVE_ARCHITECTURE_TYPE {
-  StandardDesign,
-  NEC98x86,
-  EndAlternatives
-} ALTERNATIVE_ARCHITECTURE_TYPE;
-
-#ifndef _X86_
-
-#ifndef IsNEC_98
-#define IsNEC_98 (FALSE)
-#endif
-
-#ifndef IsNotNEC_98
-#define IsNotNEC_98 (TRUE)
-#endif
-
-#ifndef SetNEC_98
-#define SetNEC_98
-#endif
-
-#ifndef SetNotNEC_98
-#define SetNotNEC_98
-#endif
-
-#endif
-
-typedef struct _KSYSTEM_TIME {
-  ULONG LowPart;
-  LONG High1Time;
-  LONG High2Time;
-} KSYSTEM_TIME, *PKSYSTEM_TIME;
-
-typedef struct DECLSPEC_ALIGN(16) _M128A {
-  ULONGLONG Low;
-  LONGLONG High;
-} M128A, *PM128A;
-
-typedef struct DECLSPEC_ALIGN(16) _XSAVE_FORMAT {
-  USHORT ControlWord;
-  USHORT StatusWord;
-  UCHAR TagWord;
-  UCHAR Reserved1;
-  USHORT ErrorOpcode;
-  ULONG ErrorOffset;
-  USHORT ErrorSelector;
-  USHORT Reserved2;
-  ULONG DataOffset;
-  USHORT DataSelector;
-  USHORT Reserved3;
-  ULONG MxCsr;
-  ULONG MxCsr_Mask;
-  M128A FloatRegisters[8];
-#if defined(_WIN64)
-  M128A XmmRegisters[16];
-  UCHAR Reserved4[96];
-#else
-  M128A XmmRegisters[8];
-  UCHAR Reserved4[192];
-  ULONG StackControl[7];
-  ULONG Cr0NpxState;
-#endif
-} XSAVE_FORMAT, *PXSAVE_FORMAT;
-
-typedef struct DECLSPEC_ALIGN(8) _XSAVE_AREA_HEADER {
-  ULONG64 Mask;
-  ULONG64 Reserved[7];
-} XSAVE_AREA_HEADER, *PXSAVE_AREA_HEADER;
-
-typedef struct DECLSPEC_ALIGN(16) _XSAVE_AREA {
-  XSAVE_FORMAT LegacyState;
-  XSAVE_AREA_HEADER Header;
-} XSAVE_AREA, *PXSAVE_AREA;
-
-typedef struct _XSTATE_CONTEXT {
-  ULONG64 Mask;
-  ULONG Length;
-  ULONG Reserved1;
-  _Field_size_bytes_opt_(Length) PXSAVE_AREA Area;
-#if defined(_X86_)
-  ULONG Reserved2;
-#endif
-  PVOID Buffer;
-#if defined(_X86_)
-  ULONG Reserved3;
-#endif
-} XSTATE_CONTEXT, *PXSTATE_CONTEXT;
-
-typedef struct _XSTATE_SAVE {
-#if defined(_AMD64_)
-  struct _XSTATE_SAVE* Prev;
-  struct _KTHREAD* Thread;
-  UCHAR Level;
-  XSTATE_CONTEXT XStateContext;
-#elif defined(_IA64_) || defined(_ARM_)
-  ULONG Dummy;
-#elif defined(_X86_)
-  _ANONYMOUS_UNION union {
-    _ANONYMOUS_STRUCT struct {
-      LONG64 Reserved1;
-      ULONG Reserved2;
-      struct _XSTATE_SAVE* Prev;
-      PXSAVE_AREA Reserved3;
-      struct _KTHREAD* Thread;
-      PVOID Reserved4;
-      UCHAR Level;
-    } DUMMYSTRUCTNAME;
-    XSTATE_CONTEXT XStateContext;
-  } DUMMYUNIONNAME;
-#endif
-} XSTATE_SAVE, *PXSTATE_SAVE;
-
-#ifdef _X86_
-
-#define MAXIMUM_SUPPORTED_EXTENSION  512
-
-#if !defined(__midl) && !defined(MIDL_PASS)
-C_ASSERT(sizeof(XSAVE_FORMAT) == MAXIMUM_SUPPORTED_EXTENSION);
-#endif
-
-#endif /* _X86_ */
-
-#define XSAVE_ALIGN                    64
-#define MINIMAL_XSTATE_AREA_LENGTH     sizeof(XSAVE_AREA)
-
-#if !defined(__midl) && !defined(MIDL_PASS)
-C_ASSERT((sizeof(XSAVE_FORMAT) & (XSAVE_ALIGN - 1)) == 0);
-C_ASSERT((FIELD_OFFSET(XSAVE_AREA, Header) & (XSAVE_ALIGN - 1)) == 0);
-C_ASSERT(MINIMAL_XSTATE_AREA_LENGTH == 512 + 64);
-#endif
-
-typedef struct _CONTEXT_CHUNK {
-  LONG Offset;
-  ULONG Length;
-} CONTEXT_CHUNK, *PCONTEXT_CHUNK;
-
-typedef struct _CONTEXT_EX {
-  CONTEXT_CHUNK All;
-  CONTEXT_CHUNK Legacy;
-  CONTEXT_CHUNK XState;
-} CONTEXT_EX, *PCONTEXT_EX;
-
-#define CONTEXT_EX_LENGTH         ALIGN_UP_BY(sizeof(CONTEXT_EX), STACK_ALIGN)
-
-#if (NTDDI_VERSION >= NTDDI_VISTA)
-extern NTSYSAPI volatile CCHAR KeNumberProcessors;
-#elif (NTDDI_VERSION >= NTDDI_WINXP)
-extern NTSYSAPI CCHAR KeNumberProcessors;
-#else
-__CREATE_NTOS_DATA_IMPORT_ALIAS(KeNumberProcessors)
-extern PCCHAR KeNumberProcessors;
-#endif
-
-$endif (_WDMDDK_)
-$if (_NTDDK_)
-
-typedef struct _EXCEPTION_REGISTRATION_RECORD
-{
-  struct _EXCEPTION_REGISTRATION_RECORD *Next;
-  PEXCEPTION_ROUTINE Handler;
-} EXCEPTION_REGISTRATION_RECORD, *PEXCEPTION_REGISTRATION_RECORD;
-
-typedef struct _NT_TIB {
-  struct _EXCEPTION_REGISTRATION_RECORD *ExceptionList;
-  PVOID StackBase;
-  PVOID StackLimit;
-  PVOID SubSystemTib;
-  _ANONYMOUS_UNION union {
-    PVOID FiberData;
-    ULONG Version;
-  } DUMMYUNIONNAME;
-  PVOID ArbitraryUserPointer;
-  struct _NT_TIB *Self;
-} NT_TIB, *PNT_TIB;
-
-typedef struct _NT_TIB32 {
-  ULONG ExceptionList;
-  ULONG StackBase;
-  ULONG StackLimit;
-  ULONG SubSystemTib;
-  _ANONYMOUS_UNION union {
-    ULONG FiberData;
-    ULONG Version;
-  } DUMMYUNIONNAME;
-  ULONG ArbitraryUserPointer;
-  ULONG Self;
-} NT_TIB32,*PNT_TIB32;
-
-typedef struct _NT_TIB64 {
-  ULONG64 ExceptionList;
-  ULONG64 StackBase;
-  ULONG64 StackLimit;
-  ULONG64 SubSystemTib;
-  _ANONYMOUS_UNION union {
-    ULONG64 FiberData;
-    ULONG Version;
-  } DUMMYUNIONNAME;
-  ULONG64 ArbitraryUserPointer;
-  ULONG64 Self;
-} NT_TIB64,*PNT_TIB64;
-
-#define NX_SUPPORT_POLICY_ALWAYSOFF 0
-#define NX_SUPPORT_POLICY_ALWAYSON  1
-#define NX_SUPPORT_POLICY_OPTIN     2
-#define NX_SUPPORT_POLICY_OPTOUT    3
-
-_IRQL_requires_same_
-_Function_class_(EXPAND_STACK_CALLOUT)
-typedef VOID
-(NTAPI EXPAND_STACK_CALLOUT)(
-  _In_opt_ PVOID Parameter);
-typedef EXPAND_STACK_CALLOUT *PEXPAND_STACK_CALLOUT;
-
-typedef VOID
-(NTAPI *PTIMER_APC_ROUTINE)(
-  _In_ PVOID TimerContext,
-  _In_ ULONG TimerLowValue,
-  _In_ LONG TimerHighValue);
-
-typedef enum _TIMER_SET_INFORMATION_CLASS {
-  TimerSetCoalescableTimer,
-  MaxTimerInfoClass
-} TIMER_SET_INFORMATION_CLASS;
-
-#if (NTDDI_VERSION >= NTDDI_WIN7)
-typedef struct _TIMER_SET_COALESCABLE_TIMER_INFO {
-  _In_ LARGE_INTEGER DueTime;
-  _In_opt_ PTIMER_APC_ROUTINE TimerApcRoutine;
-  _In_opt_ PVOID TimerContext;
-  _In_opt_ struct _COUNTED_REASON_CONTEXT *WakeContext;
-  _In_opt_ ULONG Period;
-  _In_ ULONG TolerableDelay;
-  _Out_opt_ PBOOLEAN PreviousState;
-} TIMER_SET_COALESCABLE_TIMER_INFO, *PTIMER_SET_COALESCABLE_TIMER_INFO;
-#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
-
-#define XSTATE_LEGACY_FLOATING_POINT        0
-#define XSTATE_LEGACY_SSE                   1
-#define XSTATE_GSSE                         2
-
-#define XSTATE_MASK_LEGACY_FLOATING_POINT   (1LL << (XSTATE_LEGACY_FLOATING_POINT))
-#define XSTATE_MASK_LEGACY_SSE              (1LL << (XSTATE_LEGACY_SSE))
-#define XSTATE_MASK_LEGACY                  (XSTATE_MASK_LEGACY_FLOATING_POINT | XSTATE_MASK_LEGACY_SSE)
-#define XSTATE_MASK_GSSE                    (1LL << (XSTATE_GSSE))
-
-#define MAXIMUM_XSTATE_FEATURES             64
-
-typedef struct _XSTATE_FEATURE {
-  ULONG Offset;
-  ULONG Size;
-} XSTATE_FEATURE, *PXSTATE_FEATURE;
-
-typedef struct _XSTATE_CONFIGURATION {
-  ULONG64 EnabledFeatures;
-  ULONG Size;
-  ULONG OptimizedSave:1;
-  XSTATE_FEATURE Features[MAXIMUM_XSTATE_FEATURES];
-} XSTATE_CONFIGURATION, *PXSTATE_CONFIGURATION;
-
-#define MAX_WOW64_SHARED_ENTRIES 16
-
-typedef struct _KUSER_SHARED_DATA {
-  ULONG TickCountLowDeprecated;
-  ULONG TickCountMultiplier;
-  volatile KSYSTEM_TIME InterruptTime;
-  volatile KSYSTEM_TIME SystemTime;
-  volatile KSYSTEM_TIME TimeZoneBias;
-  USHORT ImageNumberLow;
-  USHORT ImageNumberHigh;
-  WCHAR NtSystemRoot[260];
-  ULONG MaxStackTraceDepth;
-  ULONG CryptoExponent;
-  ULONG TimeZoneId;
-  ULONG LargePageMinimum;
-  ULONG Reserved2[7];
-  NT_PRODUCT_TYPE NtProductType;
-  BOOLEAN ProductTypeIsValid;
-  ULONG NtMajorVersion;
-  ULONG NtMinorVersion;
-  BOOLEAN ProcessorFeatures[PROCESSOR_FEATURE_MAX];
-  ULONG Reserved1;
-  ULONG Reserved3;
-  volatile ULONG TimeSlip;
-  ALTERNATIVE_ARCHITECTURE_TYPE AlternativeArchitecture;
-  ULONG AltArchitecturePad[1];
-  LARGE_INTEGER SystemExpirationDate;
-  ULONG SuiteMask;
-  BOOLEAN KdDebuggerEnabled;
-#if (NTDDI_VERSION >= NTDDI_WINXPSP2)
-  UCHAR NXSupportPolicy;
-#endif
-  volatile ULONG ActiveConsoleId;
-  volatile ULONG DismountCount;
-  ULONG ComPlusPackage;
-  ULONG LastSystemRITEventTickCount;
-  ULONG NumberOfPhysicalPages;
-  BOOLEAN SafeBootMode;
-#if (NTDDI_VERSION >= NTDDI_WIN7)
-  _ANONYMOUS_UNION union {
-    UCHAR TscQpcData;
-    _ANONYMOUS_STRUCT struct {
-      UCHAR TscQpcEnabled:1;
-      UCHAR TscQpcSpareFlag:1;
-      UCHAR TscQpcShift:6;
-    } DUMMYSTRUCTNAME;
-  } DUMMYUNIONNAME;
-  UCHAR TscQpcPad[2];
-#endif
-#if (NTDDI_VERSION >= NTDDI_VISTA)
-  _ANONYMOUS_UNION union {
-    ULONG SharedDataFlags;
-    _ANONYMOUS_STRUCT struct {
-      ULONG DbgErrorPortPresent:1;
-      ULONG DbgElevationEnabled:1;
-      ULONG DbgVirtEnabled:1;
-      ULONG DbgInstallerDetectEnabled:1;
-      ULONG DbgSystemDllRelocated:1;
-      ULONG DbgDynProcessorEnabled:1;
-      ULONG DbgSEHValidationEnabled:1;
-      ULONG SpareBits:25;
-    } DUMMYSTRUCTNAME2;
-  } DUMMYUNIONNAME2;
-#else
-  ULONG TraceLogging;
-#endif
-  ULONG DataFlagsPad[1];
-  ULONGLONG TestRetInstruction;
-  ULONG SystemCall;
-  ULONG SystemCallReturn;
-  ULONGLONG SystemCallPad[3];
-  _ANONYMOUS_UNION union {
-    volatile KSYSTEM_TIME TickCount;
-    volatile ULONG64 TickCountQuad;
-    _ANONYMOUS_STRUCT struct {
-      ULONG ReservedTickCountOverlay[3];
-      ULONG TickCountPad[1];
-    } DUMMYSTRUCTNAME;
-  } DUMMYUNIONNAME3;
-  ULONG Cookie;
-  ULONG CookiePad[1];
-#if (NTDDI_VERSION >= NTDDI_WS03)
-  LONGLONG ConsoleSessionForegroundProcessId;
-  ULONG Wow64SharedInformation[MAX_WOW64_SHARED_ENTRIES];
-#endif
-#if (NTDDI_VERSION >= NTDDI_VISTA)
-#if (NTDDI_VERSION >= NTDDI_WIN7)
-  USHORT UserModeGlobalLogger[16];
-#else
-  USHORT UserModeGlobalLogger[8];
-  ULONG HeapTracingPid[2];
-  ULONG CritSecTracingPid[2];
-#endif
-  ULONG ImageFileExecutionOptions;
-#if (NTDDI_VERSION >= NTDDI_VISTASP1)
-  ULONG LangGenerationCount;
-#else
-  /* 4 bytes padding */
-#endif
-  ULONGLONG Reserved5;
-  volatile ULONG64 InterruptTimeBias;
-#endif
-#if (NTDDI_VERSION >= NTDDI_WIN7)
-  volatile ULONG64 TscQpcBias;
-  volatile ULONG ActiveProcessorCount;
-  volatile USHORT ActiveGroupCount;
-  USHORT Reserved4;
-  volatile ULONG AitSamplingValue;
-  volatile ULONG AppCompatFlag;
-  ULONGLONG SystemDllNativeRelocation;
-  ULONG SystemDllWowRelocation;
-  ULONG XStatePad[1];
-  XSTATE_CONFIGURATION XState;
-#endif
-} KUSER_SHARED_DATA, *PKUSER_SHARED_DATA;
-
-#if (NTDDI_VERSION >= NTDDI_VISTA)
-extern NTSYSAPI volatile CCHAR KeNumberProcessors;
-#elif (NTDDI_VERSION >= NTDDI_WINXP)
-extern NTSYSAPI CCHAR KeNumberProcessors;
-#else
-extern PCCHAR KeNumberProcessors;
-#endif
-
-$endif (_NTDDK_)
-$if (_NTIFS_)
-typedef struct _KAPC_STATE {
-  LIST_ENTRY ApcListHead[MaximumMode];
-  PKPROCESS Process;
-  BOOLEAN KernelApcInProgress;
-  BOOLEAN KernelApcPending;
-  BOOLEAN UserApcPending;
-} KAPC_STATE, *PKAPC_STATE, *RESTRICTED_POINTER PRKAPC_STATE;
-
-#define KAPC_STATE_ACTUAL_LENGTH (FIELD_OFFSET(KAPC_STATE, UserApcPending) + sizeof(BOOLEAN))
-
-#define ASSERT_QUEUE(Q) ASSERT(((Q)->Header.Type & KOBJECT_TYPE_MASK) == QueueObject);
-
-typedef struct _KQUEUE {
-  DISPATCHER_HEADER Header;
-  LIST_ENTRY EntryListHead;
-  volatile ULONG CurrentCount;
-  ULONG MaximumCount;
-  LIST_ENTRY ThreadListHead;
-} KQUEUE, *PKQUEUE, *RESTRICTED_POINTER PRKQUEUE;
-
-$endif (_NTIFS_)
-