ReactOS  r76032
ketypes.h
Go to the documentation of this file.
1 /******************************************************************************
2  * Kernel Types *
3  ******************************************************************************/
5 
6 typedef UCHAR KIRQL, *PKIRQL;
8 typedef LONG KPRIORITY;
9 
10 typedef enum _MODE {
14 } MODE;
15 
16 #define CACHE_FULLY_ASSOCIATIVE 0xFF
17 #define MAXIMUM_SUSPEND_COUNT MAXCHAR
18 
19 #define EVENT_QUERY_STATE (0x0001)
20 #define EVENT_MODIFY_STATE (0x0002)
21 #define EVENT_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x3)
22 
23 #define LTP_PC_SMT 0x1
24 
25 #if (NTDDI_VERSION < NTDDI_WIN7) || defined(_X86_) || !defined(NT_PROCESSOR_GROUPS)
26 #define SINGLE_GROUP_LEGACY_API 1
27 #endif
28 
29 #define SEMAPHORE_QUERY_STATE (0x0001)
30 #define SEMAPHORE_MODIFY_STATE (0x0002)
31 #define SEMAPHORE_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x3)
32 
35 
36 typedef struct _PROCESSOR_GROUP_INFO {
37  UCHAR MaximumProcessorCount;
38  UCHAR ActiveProcessorCount;
39  UCHAR Reserved[38];
40  KAFFINITY ActiveProcessorMask;
42 
43 typedef enum _PROCESSOR_CACHE_TYPE {
49 
50 typedef struct _CACHE_DESCRIPTOR {
57 
58 typedef struct _NUMA_NODE_RELATIONSHIP {
63 
64 typedef struct _CACHE_RELATIONSHIP {
73 
74 typedef struct _GROUP_RELATIONSHIP {
80 
87  RelationAll = 0xffff
89 
90 typedef struct _PROCESSOR_RELATIONSHIP {
96 
100  _ANONYMOUS_UNION union {
101  struct {
103  } ProcessorCore;
104  struct {
106  } NumaNode;
109  } DUMMYUNIONNAME;
111 
115  _ANONYMOUS_UNION union {
120  } DUMMYUNIONNAME;
122 
124 $if(_WDMDDK_)
125 
126 /* Processor features */
127 #define PF_FLOATING_POINT_PRECISION_ERRATA 0
128 #define PF_FLOATING_POINT_EMULATED 1
129 #define PF_COMPARE_EXCHANGE_DOUBLE 2
130 #define PF_MMX_INSTRUCTIONS_AVAILABLE 3
131 #define PF_PPC_MOVEMEM_64BIT_OK 4
132 #define PF_ALPHA_BYTE_INSTRUCTIONS 5
133 #define PF_XMMI_INSTRUCTIONS_AVAILABLE 6
134 #define PF_3DNOW_INSTRUCTIONS_AVAILABLE 7
135 #define PF_RDTSC_INSTRUCTION_AVAILABLE 8
136 #define PF_PAE_ENABLED 9
137 #define PF_XMMI64_INSTRUCTIONS_AVAILABLE 10
138 #define PF_SSE_DAZ_MODE_AVAILABLE 11
139 #define PF_NX_ENABLED 12
140 #define PF_SSE3_INSTRUCTIONS_AVAILABLE 13
141 #define PF_COMPARE_EXCHANGE128 14
142 #define PF_COMPARE64_EXCHANGE128 15
143 #define PF_CHANNELS_ENABLED 16
144 #define PF_XSAVE_ENABLED 17
145 #define PF_ARM_VFP_32_REGISTERS_AVAILABLE 18
146 #define PF_ARM_NEON_INSTRUCTIONS_AVAILABLE 19
147 #define PF_SECOND_LEVEL_ADDRESS_TRANSLATION 20
148 #define PF_VIRT_FIRMWARE_ENABLED 21
149 #define PF_RDWRFSGSBASE_AVAILABLE 22
150 #define PF_FASTFAIL_AVAILABLE 23
151 #define PF_ARM_DIVIDE_INSTRUCTION_AVAILABLE 24
152 #define PF_ARM_64BIT_LOADSTORE_ATOMIC 25
153 #define PF_ARM_EXTERNAL_CACHE_AVAILABLE 26
154 #define PF_ARM_FMAC_INSTRUCTIONS_AVAILABLE 27
155 #define PF_RDRAND_INSTRUCTION_AVAILABLE 28
156 #define PF_ARM_V8_INSTRUCTIONS_AVAILABLE 29
157 #define PF_ARM_V8_CRYPTO_INSTRUCTIONS_AVAILABLE 30
158 #define PF_ARM_V8_CRC32_INSTRUCTIONS_AVAILABLE 31
159 
160 #define MAXIMUM_WAIT_OBJECTS 64
161 
162 #define ASSERT_APC(Object) \
163  NT_ASSERT((Object)->Type == ApcObject)
164 
165 #define ASSERT_DPC(Object) \
166  NT_ASSERT(((Object)->Type == 0) || \
167  ((Object)->Type == DpcObject) || \
168  ((Object)->Type == ThreadedDpcObject))
169 
170 #define ASSERT_GATE(Object) \
171  NT_ASSERT((((Object)->Header.Type & KOBJECT_TYPE_MASK) == GateObject) || \
172  (((Object)->Header.Type & KOBJECT_TYPE_MASK) == EventSynchronizationObject))
173 
174 #define ASSERT_DEVICE_QUEUE(Object) \
175  NT_ASSERT((Object)->Type == DeviceQueueObject)
176 
177 #define ASSERT_TIMER(Object) \
178  NT_ASSERT(((Object)->Header.Type == TimerNotificationObject) || \
179  ((Object)->Header.Type == TimerSynchronizationObject))
180 
181 #define ASSERT_MUTANT(Object) \
182  NT_ASSERT((Object)->Header.Type == MutantObject)
183 
184 #define ASSERT_SEMAPHORE(Object) \
185  NT_ASSERT((Object)->Header.Type == SemaphoreObject)
186 
187 #define ASSERT_EVENT(Object) \
188  NT_ASSERT(((Object)->Header.Type == NotificationEvent) || \
189  ((Object)->Header.Type == SynchronizationEvent))
190 
191 #define DPC_NORMAL 0
192 #define DPC_THREADED 1
193 
194 #define GM_LOCK_BIT 0x1
195 #define GM_LOCK_BIT_V 0x0
196 #define GM_LOCK_WAITER_WOKEN 0x2
197 #define GM_LOCK_WAITER_INC 0x4
198 
199 #define LOCK_QUEUE_WAIT_BIT 0
200 #define LOCK_QUEUE_OWNER_BIT 1
201 
202 #define LOCK_QUEUE_WAIT 1
203 #define LOCK_QUEUE_OWNER 2
204 #define LOCK_QUEUE_TIMER_LOCK_SHIFT 4
205 #define LOCK_QUEUE_TIMER_TABLE_LOCKS (1 << (8 - LOCK_QUEUE_TIMER_LOCK_SHIFT))
206 
207 #define PROCESSOR_FEATURE_MAX 64
208 
209 #define DBG_STATUS_CONTROL_C 1
210 #define DBG_STATUS_SYSRQ 2
211 #define DBG_STATUS_BUGCHECK_FIRST 3
212 #define DBG_STATUS_BUGCHECK_SECOND 4
213 #define DBG_STATUS_FATAL 5
214 #define DBG_STATUS_DEBUG_CONTROL 6
215 #define DBG_STATUS_WORKER 7
216 
217 #if defined(_WIN64)
218 #define MAXIMUM_PROC_PER_GROUP 64
219 #else
220 #define MAXIMUM_PROC_PER_GROUP 32
221 #endif
222 #define MAXIMUM_PROCESSORS MAXIMUM_PROC_PER_GROUP
223 
224 #define EXCEPTION_DIVIDED_BY_ZERO 0
225 #define EXCEPTION_DEBUG 1
226 #define EXCEPTION_NMI 2
227 #define EXCEPTION_INT3 3
228 #define EXCEPTION_BOUND_CHECK 5
229 #define EXCEPTION_INVALID_OPCODE 6
230 #define EXCEPTION_NPX_NOT_AVAILABLE 7
231 #define EXCEPTION_DOUBLE_FAULT 8
232 #define EXCEPTION_NPX_OVERRUN 9
233 #define EXCEPTION_INVALID_TSS 0x0A
234 #define EXCEPTION_SEGMENT_NOT_PRESENT 0x0B
235 #define EXCEPTION_STACK_FAULT 0x0C
236 #define EXCEPTION_GP_FAULT 0x0D
237 #define EXCEPTION_RESERVED_TRAP 0x0F
238 #define EXCEPTION_NPX_ERROR 0x010
239 #define EXCEPTION_ALIGNMENT_CHECK 0x011
240 
241 typedef enum _KBUGCHECK_CALLBACK_REASON {
242  KbCallbackInvalid,
243  KbCallbackReserved1,
244  KbCallbackSecondaryDumpData,
245  KbCallbackDumpIo,
246  KbCallbackAddPages
248 
250 
251 _Function_class_(KBUGCHECK_REASON_CALLBACK_ROUTINE)
253 typedef VOID
254 (NTAPI KBUGCHECK_REASON_CALLBACK_ROUTINE)(
259 typedef KBUGCHECK_REASON_CALLBACK_ROUTINE *PKBUGCHECK_REASON_CALLBACK_ROUTINE;
260 
268 
277 
285 
286 typedef struct _KBUGCHECK_DUMP_IO {
292 
293 #define KB_ADD_PAGES_FLAG_VIRTUAL_ADDRESS 0x00000001UL
294 #define KB_ADD_PAGES_FLAG_PHYSICAL_ADDRESS 0x00000002UL
295 #define KB_ADD_PAGES_FLAG_ADDITIONAL_RANGES_EXIST 0x80000000UL
296 
305 
313 
314 _Function_class_(KBUGCHECK_CALLBACK_ROUTINE)
316 typedef VOID
317 (NTAPI KBUGCHECK_CALLBACK_ROUTINE)(
318  IN PVOID Buffer,
320 typedef KBUGCHECK_CALLBACK_ROUTINE *PKBUGCHECK_CALLBACK_ROUTINE;
321 
324  PKBUGCHECK_CALLBACK_ROUTINE CallbackRoutine;
325  _Field_size_bytes_opt_(Length) PVOID Buffer;
326  ULONG Length;
327  PUCHAR Component;
328  ULONG_PTR Checksum;
331 
332 _Function_class_(NMI_CALLBACK)
334 typedef BOOLEAN
335 (NTAPI NMI_CALLBACK)(
338 typedef NMI_CALLBACK *PNMI_CALLBACK;
339 
345 
350 #if (NTDDI_VERSION >= NTDDI_WIN7)
352 #endif
354 
356 _Function_class_(PROCESSOR_CALLBACK_FUNCTION)
357 typedef VOID
358 (NTAPI PROCESSOR_CALLBACK_FUNCTION)(
360  _In_ PKE_PROCESSOR_CHANGE_NOTIFY_CONTEXT ChangeContext,
362 typedef PROCESSOR_CALLBACK_FUNCTION *PPROCESSOR_CALLBACK_FUNCTION;
363 
364 #define KE_PROCESSOR_CHANGE_ADD_EXISTING 1
365 
366 #define INVALID_PROCESSOR_INDEX 0xffffffff
367 
368 typedef enum _KINTERRUPT_POLARITY {
373 
374 typedef enum _KPROFILE_SOURCE {
401 
402 typedef enum _KWAIT_REASON {
441 } KWAIT_REASON;
442 
443 typedef struct _KWAIT_BLOCK {
445  struct _KTHREAD *Thread;
450 #if (NTDDI_VERSION >= NTDDI_WIN7)
451  volatile UCHAR BlockState;
452 #else
453  UCHAR SpareByte;
454 #endif
455 #if defined(_WIN64)
456  LONG SpareLong;
457 #endif
459 
460 typedef enum _KINTERRUPT_MODE {
464 
465 #define THREAD_WAIT_OBJECTS 3
466 
468 _Function_class_(KSTART_ROUTINE)
469 typedef VOID
470 (NTAPI KSTART_ROUTINE)(
471  _In_ PVOID StartContext);
472 typedef KSTART_ROUTINE *PKSTART_ROUTINE;
473 
474 typedef VOID
476  VOID);
477 
478 _Function_class_(KSERVICE_ROUTINE)
481 typedef BOOLEAN
482 (NTAPI KSERVICE_ROUTINE)(
483  _In_ struct _KINTERRUPT *Interrupt,
485 typedef KSERVICE_ROUTINE *PKSERVICE_ROUTINE;
486 
487 _Function_class_(KMESSAGE_SERVICE_ROUTINE)
489 typedef BOOLEAN
490 (NTAPI KMESSAGE_SERVICE_ROUTINE)(
491  _In_ struct _KINTERRUPT *Interrupt,
492  _In_ PVOID ServiceContext,
494 typedef KMESSAGE_SERVICE_ROUTINE *PKMESSAGE_SERVICE_ROUTINE;
495 
496 typedef enum _KD_OPTION {
498 } KD_OPTION;
499 
500 #ifdef _NTSYSTEM_
501 typedef VOID
503  IN PVOID NormalContext OPTIONAL,
506 
507 typedef VOID
509  IN struct _KAPC *Apc);
510 
511 typedef VOID
513  IN struct _KAPC *Apc,
514  IN OUT PKNORMAL_ROUTINE *NormalRoutine OPTIONAL,
518 #endif
519 
520 typedef struct _KAPC {
526  struct _KTHREAD *Thread;
528 #ifdef _NTSYSTEM_
529  PKKERNEL_ROUTINE KernelRoutine;
530  PKRUNDOWN_ROUTINE RundownRoutine;
531  PKNORMAL_ROUTINE NormalRoutine;
532 #else
534 #endif
542 
543 #define KAPC_OFFSET_TO_SPARE_BYTE0 FIELD_OFFSET(KAPC, SpareByte0)
544 #define KAPC_OFFSET_TO_SPARE_BYTE1 FIELD_OFFSET(KAPC, SpareByte1)
545 #define KAPC_OFFSET_TO_SPARE_LONG FIELD_OFFSET(KAPC, SpareLong0)
546 #define KAPC_OFFSET_TO_SYSTEMARGUMENT1 FIELD_OFFSET(KAPC, SystemArgument1)
547 #define KAPC_OFFSET_TO_SYSTEMARGUMENT2 FIELD_OFFSET(KAPC, SystemArgument2)
548 #define KAPC_OFFSET_TO_APCSTATEINDEX FIELD_OFFSET(KAPC, ApcStateIndex)
549 #define KAPC_ACTUAL_LENGTH (FIELD_OFFSET(KAPC, Inserted) + sizeof(BOOLEAN))
550 
551 typedef struct _KDEVICE_QUEUE_ENTRY {
557 
559 
560 typedef VOID
562  IN OUT PKIPI_CONTEXT PacketContext,
563  IN PVOID Parameter1 OPTIONAL,
564  IN PVOID Parameter2 OPTIONAL,
565  IN PVOID Parameter3 OPTIONAL);
566 
567 typedef struct _KIPI_COUNTS {
583 
585 _Function_class_(KIPI_BROADCAST_WORKER)
587 typedef ULONG_PTR
588 (NTAPI KIPI_BROADCAST_WORKER)(
589  _In_ ULONG_PTR Argument);
590 typedef KIPI_BROADCAST_WORKER *PKIPI_BROADCAST_WORKER;
591 
593 
595  struct _KSPIN_LOCK_QUEUE *volatile Next;
596  PKSPIN_LOCK volatile Lock;
598 
599 typedef struct _KLOCK_QUEUE_HANDLE {
603 
604 #if defined(_AMD64_)
605 
607 
608 #define LockQueueDispatcherLock 0
609 #define LockQueueExpansionLock 1
610 #define LockQueuePfnLock 2
611 #define LockQueueSystemSpaceLock 3
612 #define LockQueueVacbLock 4
613 #define LockQueueMasterLock 5
614 #define LockQueueNonPagedPoolLock 6
615 #define LockQueueIoCancelLock 7
616 #define LockQueueWorkQueueLock 8
617 #define LockQueueIoVpbLock 9
618 #define LockQueueIoDatabaseLock 10
619 #define LockQueueIoCompletionLock 11
620 #define LockQueueNtfsStructLock 12
621 #define LockQueueAfdWorkQueueLock 13
622 #define LockQueueBcbLock 14
623 #define LockQueueMmNonPagedPoolLock 15
624 #define LockQueueUnusedSpare16 16
625 #define LockQueueTimerTableLock 17
626 #define LockQueueMaximumLock (LockQueueTimerTableLock + LOCK_QUEUE_TIMER_TABLE_LOCKS)
627 
628 #else
629 
651 
652 #endif /* defined(_AMD64_) */
653 
654 _Function_class_(KDEFERRED_ROUTINE)
657 typedef VOID
658 (NTAPI KDEFERRED_ROUTINE)(
659  _In_ struct _KDPC *Dpc,
663 typedef KDEFERRED_ROUTINE *PKDEFERRED_ROUTINE;
664 
671 
672 typedef struct _KDPC {
675  volatile USHORT Number;
681  volatile PVOID DpcData;
683 
691 
692 typedef struct _KDEVICE_QUEUE {
697 # if defined(_AMD64_)
698  _ANONYMOUS_UNION union {
699  BOOLEAN Busy;
700  _ANONYMOUS_STRUCT struct {
701  LONG64 Reserved:8;
702  LONG64 Hint:56;
703  } DUMMYSTRUCTNAME;
704  } DUMMYUNIONNAME;
705 # else
707 # endif
709 
710 #define TIMER_EXPIRED_INDEX_BITS 6
711 #define TIMER_PROCESSOR_INDEX_BITS 5
712 
713 typedef struct _DISPATCHER_HEADER {
714  _ANONYMOUS_UNION union {
715  _ANONYMOUS_STRUCT struct {
717  _ANONYMOUS_UNION union {
718  _ANONYMOUS_UNION union {
720  _ANONYMOUS_STRUCT struct {
721  UCHAR Absolute:1;
722  UCHAR Coalescable:1;
723  UCHAR KeepShifting:1;
724  UCHAR EncodedTolerableDelay:5;
725  } DUMMYSTRUCTNAME;
726  } DUMMYUNIONNAME;
728 #if (NTDDI_VERSION < NTDDI_WIN7)
729  UCHAR NpxIrql;
730 #endif
732  } DUMMYUNIONNAME;
733  _ANONYMOUS_UNION union {
734  _ANONYMOUS_UNION union {
736  _ANONYMOUS_STRUCT struct {
737  UCHAR CpuThrottled:1;
738  UCHAR CycleProfiling:1;
739  UCHAR CounterProfiling:1;
741  } DUMMYSTRUCTNAME;
742  } DUMMYUNIONNAME;
745  } DUMMYUNIONNAME2;
746  _ANONYMOUS_UNION union {
747 #if (NTDDI_VERSION >= NTDDI_WIN7)
748  _ANONYMOUS_UNION union {
750  _ANONYMOUS_STRUCT struct {
751 #if !defined(_X86_)
753 #else
754  UCHAR Index:1;
756 #endif
757  UCHAR Inserted:1;
758  volatile UCHAR Expired:1;
759  } DUMMYSTRUCTNAME;
760  } DUMMYUNIONNAME;
761 #else
762  /* Pre Win7 compatibility fix to latest WDK */
763  UCHAR Inserted;
764 #endif
765  _ANONYMOUS_UNION union {
767  _ANONYMOUS_STRUCT struct {
768  BOOLEAN ActiveDR7:1;
769  BOOLEAN Instrumented:1;
771  BOOLEAN UmsScheduled:1;
772  BOOLEAN UmsPrimary:1;
773  } DUMMYSTRUCTNAME;
774  } DUMMYUNIONNAME; /* should probably be DUMMYUNIONNAME2, but this is what WDK says */
776  } DUMMYUNIONNAME3;
777  } DUMMYSTRUCTNAME;
778  volatile LONG Lock;
779  } DUMMYUNIONNAME;
783 
784 typedef struct _KEVENT {
787 
788 typedef struct _KSEMAPHORE {
792 
793 #define KSEMAPHORE_ACTUAL_LENGTH (FIELD_OFFSET(KSEMAPHORE, Limit) + sizeof(LONG))
794 
795 typedef struct _KGATE {
798 
799 typedef struct _KGUARDED_MUTEX {
800  volatile LONG Count;
804  _ANONYMOUS_UNION union {
805  _ANONYMOUS_STRUCT struct {
808  } DUMMYSTRUCTNAME;
810  } DUMMYUNIONNAME;
812 
813 typedef struct _KMUTANT {
820 
821 #define TIMER_TABLE_SIZE 512
822 #define TIMER_TABLE_SHIFT 9
823 
824 typedef struct _KTIMER {
828  struct _KDPC *Dpc;
829 #if (NTDDI_VERSION >= NTDDI_WIN7) && !defined(_X86_)
831 #endif
834 
835 typedef enum _LOCK_OPERATION {
840 
841 #define KTIMER_ACTUAL_LENGTH (FIELD_OFFSET(KTIMER, Period) + sizeof(LONG))
842 
843 _Function_class_(KSYNCHRONIZE_ROUTINE)
845 typedef BOOLEAN
846 (NTAPI KSYNCHRONIZE_ROUTINE)(
848 typedef KSYNCHRONIZE_ROUTINE *PKSYNCHRONIZE_ROUTINE;
849 
850 typedef enum _POOL_TYPE {
866 } POOL_TYPE;
867 
873 
874 #ifndef _X86_
875 
876 #ifndef IsNEC_98
877 #define IsNEC_98 (FALSE)
878 #endif
879 
880 #ifndef IsNotNEC_98
881 #define IsNotNEC_98 (TRUE)
882 #endif
883 
884 #ifndef SetNEC_98
885 #define SetNEC_98
886 #endif
887 
888 #ifndef SetNotNEC_98
889 #define SetNotNEC_98
890 #endif
891 
892 #endif
893 
894 typedef struct _KSYSTEM_TIME {
899 
900 typedef struct DECLSPEC_ALIGN(16) _M128A {
901  ULONGLONG Low;
902  LONGLONG High;
904 
905 typedef struct DECLSPEC_ALIGN(16) _XSAVE_FORMAT {
906  USHORT ControlWord;
907  USHORT StatusWord;
908  UCHAR TagWord;
910  USHORT ErrorOpcode;
911  ULONG ErrorOffset;
912  USHORT ErrorSelector;
914  ULONG DataOffset;
915  USHORT DataSelector;
917  ULONG MxCsr;
918  ULONG MxCsr_Mask;
919  M128A FloatRegisters[8];
920 #if defined(_WIN64)
921  M128A XmmRegisters[16];
922  UCHAR Reserved4[96];
923 #else
924  M128A XmmRegisters[8];
925  UCHAR Reserved4[192];
926  ULONG StackControl[7];
927  ULONG Cr0NpxState;
928 #endif
930 
931 typedef struct DECLSPEC_ALIGN(8) _XSAVE_AREA_HEADER {
932  ULONG64 Mask;
933  ULONG64 Reserved[7];
935 
936 typedef struct DECLSPEC_ALIGN(16) _XSAVE_AREA {
937  XSAVE_FORMAT LegacyState;
940 
941 typedef struct _XSTATE_CONTEXT {
945  _Field_size_bytes_opt_(Length) PXSAVE_AREA Area;
946 #if defined(_X86_)
948 #endif
950 #if defined(_X86_)
952 #endif
954 
955 typedef struct _XSTATE_SAVE {
956 #if defined(_AMD64_)
957  struct _XSTATE_SAVE* Prev;
958  struct _KTHREAD* Thread;
959  UCHAR Level;
960  XSTATE_CONTEXT XStateContext;
961 #elif defined(_IA64_) || defined(_ARM_)
962  ULONG Dummy;
963 #elif defined(_X86_)
964  _ANONYMOUS_UNION union {
965  _ANONYMOUS_STRUCT struct {
968  struct _XSTATE_SAVE* Prev;
969  PXSAVE_AREA Reserved3;
970  struct _KTHREAD* Thread;
972  UCHAR Level;
973  } DUMMYSTRUCTNAME;
974  XSTATE_CONTEXT XStateContext;
975  } DUMMYUNIONNAME;
976 #endif
978 
979 #ifdef _X86_
980 
981 #define MAXIMUM_SUPPORTED_EXTENSION 512
982 
983 #if !defined(__midl) && !defined(MIDL_PASS)
985 #endif
986 
987 #endif /* _X86_ */
988 
989 #define XSAVE_ALIGN 64
990 #define MINIMAL_XSTATE_AREA_LENGTH sizeof(XSAVE_AREA)
991 
992 #if !defined(__midl) && !defined(MIDL_PASS)
993 C_ASSERT((sizeof(XSAVE_FORMAT) & (XSAVE_ALIGN - 1)) == 0);
996 #endif
997 
998 typedef struct _CONTEXT_CHUNK {
1002 
1003 typedef struct _CONTEXT_EX {
1008 
1009 #define CONTEXT_EX_LENGTH ALIGN_UP_BY(sizeof(CONTEXT_EX), STACK_ALIGN)
1010 
1011 #if (NTDDI_VERSION >= NTDDI_VISTA)
1012 extern NTSYSAPI volatile CCHAR KeNumberProcessors;
1013 #elif (NTDDI_VERSION >= NTDDI_WINXP)
1015 #else
1016 __CREATE_NTOS_DATA_IMPORT_ALIAS(KeNumberProcessors)
1017 extern PCCHAR KeNumberProcessors;
1018 #endif
1019 
1020 $endif (_WDMDDK_)
1021 $if (_NTDDK_)
1022 
1024 {
1025  struct _EXCEPTION_REGISTRATION_RECORD *Next;
1028 
1029 typedef struct _NT_TIB {
1030  struct _EXCEPTION_REGISTRATION_RECORD *ExceptionList;
1031  PVOID StackBase;
1032  PVOID StackLimit;
1033  PVOID SubSystemTib;
1034  _ANONYMOUS_UNION union {
1035  PVOID FiberData;
1037  } DUMMYUNIONNAME;
1038  PVOID ArbitraryUserPointer;
1039  struct _NT_TIB *Self;
1040 } NT_TIB, *PNT_TIB;
1041 
1042 typedef struct _NT_TIB32 {
1047  _ANONYMOUS_UNION union {
1050  } DUMMYUNIONNAME;
1053 } NT_TIB32,*PNT_TIB32;
1054 
1055 typedef struct _NT_TIB64 {
1060  _ANONYMOUS_UNION union {
1063  } DUMMYUNIONNAME;
1066 } NT_TIB64,*PNT_TIB64;
1067 
1068 #define NX_SUPPORT_POLICY_ALWAYSOFF 0
1069 #define NX_SUPPORT_POLICY_ALWAYSON 1
1070 #define NX_SUPPORT_POLICY_OPTIN 2
1071 #define NX_SUPPORT_POLICY_OPTOUT 3
1072 
1074 _Function_class_(EXPAND_STACK_CALLOUT)
1075 typedef VOID
1076 (NTAPI EXPAND_STACK_CALLOUT)(
1078 typedef EXPAND_STACK_CALLOUT *PEXPAND_STACK_CALLOUT;
1079 
1080 typedef VOID
1083  _In_ ULONG TimerLowValue,
1084  _In_ LONG TimerHighValue);
1085 
1090 
1091 #if (NTDDI_VERSION >= NTDDI_WIN7)
1101 #endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
1102 
1103 #define XSTATE_LEGACY_FLOATING_POINT 0
1104 #define XSTATE_LEGACY_SSE 1
1105 #define XSTATE_GSSE 2
1106 
1107 #define XSTATE_MASK_LEGACY_FLOATING_POINT (1LL << (XSTATE_LEGACY_FLOATING_POINT))
1108 #define XSTATE_MASK_LEGACY_SSE (1LL << (XSTATE_LEGACY_SSE))
1109 #define XSTATE_MASK_LEGACY (XSTATE_MASK_LEGACY_FLOATING_POINT | XSTATE_MASK_LEGACY_SSE)
1110 #define XSTATE_MASK_GSSE (1LL << (XSTATE_GSSE))
1111 
1112 #define MAXIMUM_XSTATE_FEATURES 64
1113 
1114 typedef struct _XSTATE_FEATURE {
1118 
1119 typedef struct _XSTATE_CONFIGURATION {
1122  ULONG OptimizedSave:1;
1125 
1126 #define MAX_WOW64_SHARED_ENTRIES 16
1127 
1128 typedef struct _KUSER_SHARED_DATA {
1146  BOOLEAN ProcessorFeatures[PROCESSOR_FEATURE_MAX];
1149  volatile ULONG TimeSlip;
1151  ULONG AltArchitecturePad[1];
1155 #if (NTDDI_VERSION >= NTDDI_WINXPSP2)
1157 #endif
1164 #if (NTDDI_VERSION >= NTDDI_WIN7)
1165  _ANONYMOUS_UNION union {
1167  _ANONYMOUS_STRUCT struct {
1168  UCHAR TscQpcEnabled:1;
1169  UCHAR TscQpcSpareFlag:1;
1170  UCHAR TscQpcShift:6;
1171  } DUMMYSTRUCTNAME;
1172  } DUMMYUNIONNAME;
1173  UCHAR TscQpcPad[2];
1174 #endif
1175 #if (NTDDI_VERSION >= NTDDI_VISTA)
1176  _ANONYMOUS_UNION union {
1178  _ANONYMOUS_STRUCT struct {
1179  ULONG DbgErrorPortPresent:1;
1180  ULONG DbgElevationEnabled:1;
1181  ULONG DbgVirtEnabled:1;
1182  ULONG DbgInstallerDetectEnabled:1;
1183  ULONG DbgSystemDllRelocated:1;
1184  ULONG DbgDynProcessorEnabled:1;
1185  ULONG DbgSEHValidationEnabled:1;
1186  ULONG SpareBits:25;
1187  } DUMMYSTRUCTNAME2;
1188  } DUMMYUNIONNAME2;
1189 #else
1190  ULONG TraceLogging;
1191 #endif
1192  ULONG DataFlagsPad[1];
1196  ULONGLONG SystemCallPad[3];
1197  _ANONYMOUS_UNION union {
1200  _ANONYMOUS_STRUCT struct {
1201  ULONG ReservedTickCountOverlay[3];
1202  ULONG TickCountPad[1];
1203  } DUMMYSTRUCTNAME;
1204  } DUMMYUNIONNAME3;
1206  ULONG CookiePad[1];
1207 #if (NTDDI_VERSION >= NTDDI_WS03)
1209  ULONG Wow64SharedInformation[MAX_WOW64_SHARED_ENTRIES];
1210 #endif
1211 #if (NTDDI_VERSION >= NTDDI_VISTA)
1212 #if (NTDDI_VERSION >= NTDDI_WIN7)
1213  USHORT UserModeGlobalLogger[16];
1214 #else
1215  USHORT UserModeGlobalLogger[8];
1216  ULONG HeapTracingPid[2];
1217  ULONG CritSecTracingPid[2];
1218 #endif
1220 #if (NTDDI_VERSION >= NTDDI_VISTASP1)
1222 #else
1223  /* 4 bytes padding */
1224 #endif
1227 #endif
1228 #if (NTDDI_VERSION >= NTDDI_WIN7)
1237  ULONG XStatePad[1];
1239 #endif
1241 
1242 #if (NTDDI_VERSION >= NTDDI_VISTA)
1244 #elif (NTDDI_VERSION >= NTDDI_WINXP)
1246 #else
1247 extern PCCHAR KeNumberProcessors;
1248 #endif
1249 
1251 $if (_NTIFS_)
1252 typedef struct _KAPC_STATE {
1253  LIST_ENTRY ApcListHead[MaximumMode];
1255  BOOLEAN KernelApcInProgress;
1256  BOOLEAN KernelApcPending;
1257  BOOLEAN UserApcPending;
1259 
1260 #define KAPC_STATE_ACTUAL_LENGTH (FIELD_OFFSET(KAPC_STATE, UserApcPending) + sizeof(BOOLEAN))
1261 
1262 #define ASSERT_QUEUE(Q) ASSERT(((Q)->Header.Type & KOBJECT_TYPE_MASK) == QueueObject);
1263 
1264 typedef struct _KQUEUE {
1271 
1272 $endif (_NTIFS_)
1273 
struct _DISPATCHER_HEADER DISPATCHER_HEADER
DWORD *typedef PVOID
Definition: winlogon.h:52
ULONG LargePageMinimum
Definition: ketypes.h:1140
_Out_ ULONG_PTR Address
Definition: ketypes.h:265
volatile LONG Lock
Definition: ketypes.h:778
_KWAIT_REASON
Definition: ketypes.h:402
struct _CACHE_RELATIONSHIP * PCACHE_RELATIONSHIP
struct _NT_TIB * Self
Definition: compat.h:380
* PNTSTATUS
Definition: strlen.c:14
ULONG SpareLong0
Definition: ketypes.h:525
ULONG LowPart
Definition: ketypes.h:895
struct _KGATE PRKGATE
ULONG NtMinorVersion
Definition: ketypes.h:1145
ULONG FlushSingleTb
Definition: ketypes.h:572
KBUGCHECK_CALLBACK_REASON Reason
Definition: ketypes.h:302
_LOCK_OPERATION
Definition: ketypes.h:835
ULONG Freeze
Definition: ketypes.h:568
#define _IRQL_requires_same_
Definition: no_sal2.h:652
struct _KMUTANT KMUTANT
#define IN
Definition: typedefs.h:38
ULONG SharedDataFlags
Definition: ketypes.h:1177
ULONG Processor
Definition: ketypes.h:830
C_ASSERT(sizeof(ARM_CONTROL_REGISTER)==sizeof(ULONG))
PROCESSOR_CACHE_TYPE Type
Definition: ketypes.h:55
VOID(NTAPI * PKINTERRUPT_ROUTINE)(VOID)
Definition: ketypes.h:475
#define __CREATE_NTOS_DATA_IMPORT_ALIAS(_Name)
ULONG Contention
Definition: ketypes.h:802
PKSPIN_LOCK volatile Lock
Definition: ketypes.h:596
GROUP_AFFINITY GroupMask
Definition: ketypes.h:71
LOGICAL_PROCESSOR_RELATIONSHIP Relationship
Definition: ketypes.h:99
#define TIMER_PROCESSOR_INDEX_BITS
Definition: ketypes.h:711
PKBUGCHECK_CALLBACK_ROUTINE CallbackRoutine
Definition: ketypes.h:324
struct _KEVENT * PKEVENT
KAPC_STATE
Definition: ketypes.h:1258
struct _EXCEPTION_REGISTRATION_RECORD * Next
Definition: compat.h:386
struct _KDEVICE_QUEUE * PKDEVICE_QUEUE
DISPATCHER_HEADER Header
Definition: ketypes.h:796
ULONG ArbitraryUserPointer
Definition: ketypes.h:1051
ULONG FlushMultipleTb
Definition: ketypes.h:573
_IRQL_requires_same_ typedef _In_ ULONG _In_ UCHAR _In_ ULONGLONG _In_ ULONGLONG _In_opt_ PEVENT_FILTER_DESCRIPTOR _Inout_opt_ PVOID CallbackContext
Definition: wmitypes.h:55
struct _KAPC KAPC
struct _KDEVICE_QUEUE KDEVICE_QUEUE
struct _XSTATE_FEATURE XSTATE_FEATURE
_POOL_TYPE
Definition: ketypes.h:850
UNICODE_STRING NtSystemRoot
Definition: init.c:72
CONTEXT_CHUNK XState
Definition: ketypes.h:1006
_ALTERNATIVE_ARCHITECTURE_TYPE
Definition: ketypes.h:868
* PPROCESSOR_GROUP_INFO
Definition: ketypes.h:41
struct _NT_TIB32 * PNT_TIB32
struct _KGUARDED_MUTEX * PKGUARDED_MUTEX
struct _KGUARDED_MUTEX KGUARDED_MUTEX
USHORT MaximumGroupCount
Definition: ketypes.h:75
struct _NUMA_NODE_RELATIONSHIP * PNUMA_NODE_RELATIONSHIP
LIST_ENTRY WaitListEntry
Definition: ketypes.h:444
struct _KIPI_COUNTS * PKIPI_COUNTS
#define ANYSIZE_ARRAY
Definition: typedefs.h:45
NUMA_NODE_RELATIONSHIP NumaNode
Definition: ketypes.h:117
ULONG Version
Definition: ketypes.h:1036
KIPI_BROADCAST_WORKER * PKIPI_BROADCAST_WORKER
Definition: ketypes.h:590
ULONG SweepDcache
Definition: ketypes.h:577
struct _TIMER_SET_COALESCABLE_TIMER_INFO TIMER_SET_COALESCABLE_TIMER_INFO
struct _KDEVICE_QUEUE PRKDEVICE_QUEUE
struct _CONTEXT_CHUNK * PCONTEXT_CHUNK
LARGE_INTEGER SystemExpirationDate
Definition: ketypes.h:1152
__wchar_t WCHAR
Definition: xmlstorage.h:180
M128A
Definition: ketypes.h:903
#define _WINNT_
CSHORT Type
Definition: ketypes.h:693
_KBUGCHECK_BUFFER_DUMP_STATE
Definition: ketypes.h:306
_Inout_ PVOID Context
Definition: ketypes.h:262
#define _ANONYMOUS_UNION
Definition: ntbasedef.h:30
LIST_ENTRY ApcListEntry
Definition: ketypes.h:527
ULONG Length
Definition: ketypes.h:943
unsigned char * PUCHAR
Definition: retypes.h:3
UCHAR TimerControlFlags
Definition: ketypes.h:719
#define MAXIMUM_XSTATE_FEATURES
Definition: ketypes.h:1112
struct _XSTATE_CONFIGURATION * PXSTATE_CONFIGURATION
_TIMER_SET_INFORMATION_CLASS
Definition: ketypes.h:1086
struct _XSTATE_CONTEXT XSTATE_CONTEXT
LONGLONG ConsoleSessionForegroundProcessId
Definition: ketypes.h:1208
ULONG FiberData
Definition: ketypes.h:1048
NTSYSAPI volatile CCHAR KeNumberProcessors
Definition: ketypes.h:1243
LIST_ENTRY EntryListHead
Definition: ketypes.h:1266
ULONG ExceptionList
Definition: ketypes.h:1043
* PEXCEPTION_REGISTRATION_RECORD
Definition: ketypes.h:1027
#define _NTIFS_
Definition: ifssupp.h:20
struct _KTHREAD * Thread
Definition: ketypes.h:445
ULONGLONG TestRetInstruction
Definition: ketypes.h:1193
ULONG64 FiberData
Definition: ketypes.h:1061
ULONG MaxStackTraceDepth
Definition: ketypes.h:1137
PROCESSOR_CACHE_TYPE Type
Definition: ketypes.h:69
ULONG SweepIcacheRange
Definition: ketypes.h:579
struct _KUSER_SHARED_DATA * PKUSER_SHARED_DATA
ULONG CryptoExponent
Definition: ketypes.h:1138
_In_ UCHAR Processor
Definition: kefuncs.h:695
#define _WDMDDK_
Definition: wdm.template.h:26
struct _KMUTANT KMUTEX
struct _KDEVICE_QUEUE_ENTRY * PKDEVICE_QUEUE_ENTRY
struct _KTIMER KTIMER
Definition: strmini.h:380
ULONG64 Self
Definition: ketypes.h:1065
struct _CONTEXT_EX CONTEXT_EX
struct _KSPIN_LOCK_QUEUE *volatile Next
Definition: ketypes.h:595
LIST_ENTRY TimerListEntry
Definition: ketypes.h:827
struct _CONTEXT_CHUNK CONTEXT_CHUNK
_IRQL_requires_same_ typedef _In_ ULONG _In_ UCHAR Level
Definition: wmitypes.h:55
ULONGLONG Reserved5
Definition: ketypes.h:1225
* PM128A
Definition: ketypes.h:903
volatile ULONG TimeSlip
Definition: ketypes.h:1149
KSPIN_LOCK * PKSPIN_LOCK
Definition: env_spec_w32.h:73
ULONG FlushIoBuffers
Definition: ketypes.h:580
PVOID PKIPI_CONTEXT
Definition: ketypes.h:558
_In_ PVOID Parameter
Definition: ldrtypes.h:239
_Must_inspect_result_ _In_ ULONG Index
Definition: fltkernel.h:1824
ULONG Self
Definition: ketypes.h:1052
_In_ ULONG64 Offset
Definition: ketypes.h:287
_Function_class_(KBUGCHECK_REASON_CALLBACK_ROUTINE) _IRQL_requires_same_ typedef VOID(NTAPI KBUGCHECK_REASON_CALLBACK_ROUTINE)(_In_ KBUGCHECK_CALLBACK_REASON Reason
struct _XSTATE_CONFIGURATION XSTATE_CONFIGURATION
#define DUMMYUNIONNAME
Definition: ntbasedef.h:32
struct _KE_PROCESSOR_CHANGE_NOTIFY_CONTEXT * PKE_PROCESSOR_CHANGE_NOTIFY_CONTEXT
ULONG Period
Definition: ketypes.h:832
volatile KSYSTEM_TIME InterruptTime
Definition: ketypes.h:1131
$endif(_WDMDDK_) $if(_WDMDDK_||_WINNT_) typedef struct _PROCESSOR_GROUP_INFO
Definition: ketypes.h:33
#define NTSYSAPI
Definition: ntoskrnl.h:14
struct _DISPATCHER_HEADER * PDISPATCHER_HEADER
_In_opt_ PTIMER_APC_ROUTINE TimerApcRoutine
Definition: ketypes.h:1094
ULONG Reason
Definition: ntimage.h:533
#define LOCK_QUEUE_TIMER_TABLE_LOCKS
struct _KE_PROCESSOR_CHANGE_NOTIFY_CONTEXT KE_PROCESSOR_CHANGE_NOTIFY_CONTEXT
#define XSAVE_ALIGN
Definition: ketypes.h:989
ULONG SystemCallReturn
Definition: ketypes.h:1195
LONG KPRIORITY
Definition: compat.h:454
ULONG DPC
Definition: ketypes.h:570
#define _In_opt_
Definition: no_sal2.h:213
struct _NUMA_NODE_RELATIONSHIP NUMA_NODE_RELATIONSHIP
struct _XSTATE_CONTEXT * PXSTATE_CONTEXT
KBUGCHECK_CALLBACK_ROUTINE * PKBUGCHECK_CALLBACK_ROUTINE
Definition: ketypes.h:320
struct _KDPC_WATCHDOG_INFORMATION * PKDPC_WATCHDOG_INFORMATION
_In_ KBUGCHECK_DUMP_IO_TYPE Type
Definition: ketypes.h:290
KSERVICE_ROUTINE * PKSERVICE_ROUTINE
Definition: ketypes.h:485
struct _KMUTANT * PKMUTEX
uint32_t ULONG_PTR
Definition: typedefs.h:63
ULONG GenericCall
Definition: ketypes.h:575
ULONG Version
Definition: ketypes.h:1062
SHORT KernelApcDisable
Definition: ketypes.h:806
_IRQL_requires_same_ _In_ PKE_PROCESSOR_CHANGE_NOTIFY_CONTEXT ChangeContext
Definition: ketypes.h:360
BOOLEAN SafeBootMode
Definition: ketypes.h:1163
ULONG StackBase
Definition: ketypes.h:1044
volatile ULONG AppCompatFlag
Definition: ketypes.h:1234
enum _TIMER_SET_INFORMATION_CLASS TIMER_SET_INFORMATION_CLASS
struct _KBUGCHECK_REASON_CALLBACK_RECORD * PKBUGCHECK_REASON_CALLBACK_RECORD
struct _KSEMAPHORE PRKSEMAPHORE
struct _KMUTANT * PKMUTANT
_PROCESSOR_CACHE_TYPE
Definition: ketypes.h:43
UCHAR KIRQL
Definition: env_spec_w32.h:591
struct _NT_TIB * PNT_TIB
LIST_ENTRY DpcListEntry
Definition: ketypes.h:676
_KDPC_IMPORTANCE
Definition: ketypes.h:665
_In_ struct _KBUGCHECK_REASON_CALLBACK_RECORD * Record
Definition: ketypes.h:256
struct _KDEVICE_QUEUE_ENTRY KDEVICE_QUEUE_ENTRY
struct _KLOCK_QUEUE_HANDLE * PKLOCK_QUEUE_HANDLE
enum _KE_PROCESSOR_CHANGE_NOTIFY_STATE KE_PROCESSOR_CHANGE_NOTIFY_STATE
#define MINIMAL_XSTATE_AREA_LENGTH
Definition: ketypes.h:990
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
Definition: IoEaTest.cpp:117
$if(_WDMDDK_) typedef UCHAR KIRQL
Definition: ke.h:1
ULONG NtMajorVersion
Definition: ketypes.h:1144
struct _KGATE * PKGATE
GROUP_AFFINITY GroupMask
Definition: ketypes.h:61
ULONG ImageFileExecutionOptions
Definition: ketypes.h:1219
KSTART_ROUTINE * PKSTART_ROUTINE
Definition: ketypes.h:472
volatile KSYSTEM_TIME SystemTime
Definition: ketypes.h:1132
Definition: Header.h:8
long LONG
Definition: pedump.c:60
struct _KBUGCHECK_DUMP_IO KBUGCHECK_DUMP_IO
DISPATCHER_HEADER Header
Definition: ketypes.h:825
NT_PRODUCT_TYPE NtProductType
Definition: ketypes.h:1142
CSHORT Size
Definition: ketypes.h:694
struct _KDPC PRKDPC
LONG Limit
Definition: ketypes.h:790
short SHORT
Definition: pedump.c:59
ULONG Length
Definition: ketypes.h:1000
KPROCESSOR_MODE ApcMode
Definition: ketypes.h:539
struct _KSEMAPHORE * PKSEMAPHORE
uint64_t ULONG64
Definition: typedefs.h:65
struct _XSTATE_FEATURE * PXSTATE_FEATURE
BOOLEAN KdDebuggerEnabled
Definition: ketypes.h:1154
_In_ PVOID _In_ ULONG MessageID
Definition: ketypes.h:492
_In_ struct _KBUGCHECK_REASON_CALLBACK_RECORD _Inout_ PVOID _In_ ULONG ReasonSpecificDataLength
Definition: ketypes.h:256
#define DUMMYSTRUCTNAME2
Definition: ntbasedef.h:60
ULONG TickCountMultiplier
Definition: ketypes.h:1130
ULONG SubSystemTib
Definition: ketypes.h:1046
ULONG64 EnabledFeatures
Definition: ketypes.h:1120
LIST_ENTRY MutantListEntry
Definition: ketypes.h:815
PKBUGCHECK_REASON_CALLBACK_ROUTINE CallbackRoutine
Definition: ketypes.h:299
ULONG TickCountLowDeprecated
Definition: ketypes.h:1129
enum _KINTERRUPT_MODE KINTERRUPT_MODE
struct _KAPC PRKAPC
_In_ PVOID Buffer
Definition: ketypes.h:288
KSYNCHRONIZE_ROUTINE * PKSYNCHRONIZE_ROUTINE
Definition: ketypes.h:848
USHORT LineSize
Definition: ketypes.h:53
#define _Out_
Definition: no_sal2.h:323
volatile ULONG ActiveProcessorCount
Definition: ketypes.h:1230
struct _NT_TIB32 NT_TIB32
DISPATCHER_HEADER Header
Definition: ketypes.h:814
ULONG FlushEntireTb
Definition: ketypes.h:574
ULONG64 ExceptionList
Definition: ketypes.h:1056
volatile ULONG AitSamplingValue
Definition: ketypes.h:1233
Definition: bufpool.h:45
USHORT ImageNumberHigh
Definition: ketypes.h:1135
struct _KGATE KGATE
KBUGCHECK_REASON_CALLBACK_ROUTINE * PKBUGCHECK_REASON_CALLBACK_ROUTINE
Definition: ketypes.h:259
struct DECLSPEC_ALIGN(16) _M128A
Definition: ketypes.h:900
_Out_ ULONG_PTR Count
Definition: ketypes.h:266
UCHAR Associativity
Definition: ketypes.h:52
Definition: bcd.h:200
struct _KSYSTEM_TIME KSYSTEM_TIME
struct _KDPC_WATCHDOG_INFORMATION KDPC_WATCHDOG_INFORMATION
PROCESSOR_CALLBACK_FUNCTION * PPROCESSOR_CALLBACK_FUNCTION
Definition: ketypes.h:362
PKTHREAD Owner
Definition: ketypes.h:801
#define MAX_WOW64_SHARED_ENTRIES
Definition: ketypes.h:1126
struct _KEVENT PRKEVENT
DISPATCHER_HEADER Header
Definition: ketypes.h:1265
struct _KSYSTEM_TIME * PKSYSTEM_TIME
_Out_opt_ PBOOLEAN PreviousState
Definition: ketypes.h:1099
BOOLEAN DpcActive
Definition: ketypes.h:775
EXCEPTION_ROUTINE * PEXCEPTION_ROUTINE
Definition: compat.h:369
ULONG SystemDllWowRelocation
Definition: ketypes.h:1236
_In_ NTSTATUS OperationStatus
Definition: iotypes.h:7033
USHORT ImageNumberLow
Definition: ketypes.h:1134
UCHAR Type
Definition: ketypes.h:673
volatile KSYSTEM_TIME TickCount
Definition: ketypes.h:1198
_In_ ULONG BufferLength
Definition: ketypes.h:289
BOOLEAN Busy
Definition: ketypes.h:706
ULONG64 StackLimit
Definition: ketypes.h:1058
_In_opt_ PVOID _In_opt_ PVOID SystemArgument1
Definition: ketypes.h:660
int64_t LONGLONG
Definition: typedefs.h:66
VOID(NTAPI * PTIMER_APC_ROUTINE)(_In_ PVOID TimerContext, _In_ ULONG TimerLowValue, _In_ LONG TimerHighValue)
Definition: ketypes.h:1081
#define _Out_opt_
Definition: no_sal2.h:339
enum _KDPC_IMPORTANCE KDPC_IMPORTANCE
int64_t LONG64
Definition: typedefs.h:66
unsigned char BOOLEAN
UCHAR SpareByte0
Definition: ketypes.h:522
struct _KDPC * Dpc
Definition: ketypes.h:828
_In_ LARGE_INTEGER _In_opt_ PKDPC Dpc
Definition: kefuncs.h:524
#define IPI_LEVEL
Definition: env_spec_w32.h:701
_KINTERRUPT_MODE
Definition: miniport.h:79
UCHAR Associativity
Definition: ketypes.h:66
LONG High1Time
Definition: ketypes.h:896
ULONG Packet
Definition: ketypes.h:569
#define _IRQL_requires_(irql)
Definition: no_sal2.h:649
ULONG ChangeColor
Definition: ketypes.h:576
_KBUGCHECK_DUMP_IO_TYPE
Definition: ketypes.h:278
UCHAR WaitType
Definition: ketypes.h:449
enum _LOGICAL_PROCESSOR_RELATIONSHIP LOGICAL_PROCESSOR_RELATIONSHIP
enum _MODE MODE
_In_ BOOLEAN Handled
Definition: ketypes.h:337
struct _KSPIN_LOCK_QUEUE * PKSPIN_LOCK_QUEUE
#define PROCESSOR_FEATURE_MAX
_Inout_ ULONG Flags
Definition: ketypes.h:263
PVOID SystemArgument1
Definition: ketypes.h:536
ALTERNATIVE_ARCHITECTURE_TYPE AlternativeArchitecture
Definition: ketypes.h:1150
struct _XSTATE_SAVE XSTATE_SAVE
struct _KBUGCHECK_SECONDARY_DUMP_DATA KBUGCHECK_SECONDARY_DUMP_DATA
char CCHAR
Definition: typedefs.h:50
ULONG GratuitousDPC
Definition: ketypes.h:581
struct _KTIMER * PKTIMER
uint64_t ULONGLONG
Definition: typedefs.h:65
struct _KUSER_SHARED_DATA KUSER_SHARED_DATA
struct _SYSTEM_LOGICAL_PROCESSOR_INFORMATION SYSTEM_LOGICAL_PROCESSOR_INFORMATION
VOID(NTAPI * PKIPI_WORKER)(IN OUT PKIPI_CONTEXT PacketContext, IN PVOID Parameter1 OPTIONAL, IN PVOID Parameter2 OPTIONAL, IN PVOID Parameter3 OPTIONAL)
Definition: ketypes.h:561
USHORT WaitKey
Definition: ketypes.h:448
KMESSAGE_SERVICE_ROUTINE * PKMESSAGE_SERVICE_ROUTINE
Definition: ketypes.h:494
struct _CACHE_DESCRIPTOR CACHE_DESCRIPTOR
PVOID Object
Definition: ketypes.h:446
USHORT ActiveGroupCount
Definition: ketypes.h:76
LOGICAL_PROCESSOR_RELATIONSHIP Relationship
Definition: ketypes.h:113
LIST_ENTRY ThreadListHead
Definition: ketypes.h:1269
struct _KIPI_COUNTS KIPI_COUNTS
CONTEXT_CHUNK All
Definition: ketypes.h:1004
VOID(NTAPI * PKRUNDOWN_ROUTINE)(IN struct _KAPC *Apc)
Definition: ketypes.h:638
struct _GROUP_RELATIONSHIP GROUP_RELATIONSHIP
_In_opt_ PFILE_OBJECT _In_opt_ PETHREAD Thread
Definition: fltkernel.h:2653
_Field_size_(GroupCount) GROUP_AFFINITY GroupMask[ANYSIZE_ARRAY]
enum _KBUGCHECK_DUMP_IO_TYPE KBUGCHECK_DUMP_IO_TYPE
ULONGLONG SystemDllNativeRelocation
Definition: ketypes.h:1235
struct _KEVENT KEVENT
VOID(NTAPI * PKNORMAL_ROUTINE)(IN PVOID NormalContext OPTIONAL, IN PVOID SystemArgument1 OPTIONAL, IN PVOID SystemArgument2 OPTIONAL)
Definition: ketypes.h:632
#define _Inout_
Definition: no_sal2.h:244
struct _CACHE_DESCRIPTOR * PCACHE_DESCRIPTOR
struct _KLOCK_QUEUE_HANDLE KLOCK_QUEUE_HANDLE
CCHAR KPROCESSOR_MODE
Definition: ketypes.h:7
ULONG MaximumCount
Definition: ketypes.h:1268
struct _KBUGCHECK_REASON_CALLBACK_RECORD KBUGCHECK_REASON_CALLBACK_RECORD
Definition: strmini.h:378
ULARGE_INTEGER DueTime
Definition: ketypes.h:826
struct _TIMER_SET_COALESCABLE_TIMER_INFO * PTIMER_SET_COALESCABLE_TIMER_INFO
* PXSAVE_AREA
Definition: ketypes.h:939
XSTATE_CONFIGURATION XState
Definition: ketypes.h:1238
enum _KSPIN_LOCK_QUEUE_NUMBER * PKSPIN_LOCK_QUEUE_NUMBER
volatile ULONG64 TscQpcBias
Definition: ketypes.h:1229
struct _SYSTEM_LOGICAL_PROCESSOR_INFORMATION * PSYSTEM_LOGICAL_PROCESSOR_INFORMATION
enum _KINTERRUPT_POLARITY * PKINTERRUPT_POLARITY
ULONG NumberOfPhysicalPages
Definition: ketypes.h:1162
#define RESTRICTED_POINTER
Definition: ntbasedef.h:97
enum _KINTERRUPT_POLARITY KINTERRUPT_POLARITY
unsigned char UCHAR
Definition: xmlstorage.h:181
CCHAR ApcStateIndex
Definition: ketypes.h:538
char * PBOOLEAN
Definition: retypes.h:11
PROCESSOR_GROUP_INFO GroupInfo[ANYSIZE_ARRAY]
Definition: ketypes.h:78
BOOLEAN Inserted
Definition: ketypes.h:554
UCHAR Size
Definition: ketypes.h:523
EXCEPTION_REGISTRATION_RECORD
Definition: ketypes.h:1027
NMI_CALLBACK * PNMI_CALLBACK
Definition: ketypes.h:338
struct _NT_TIB NT_TIB
_In_ LARGE_INTEGER DueTime
Definition: ketypes.h:1093
PVOID NormalContext
Definition: ketypes.h:535
VOID UINTN Length
Definition: acefiex.h:744
Definition: ketypes.h:672
KDEFERRED_ROUTINE * PKDEFERRED_ROUTINE
Definition: ketypes.h:663
volatile ULONG64 InterruptTimeBias
Definition: ketypes.h:1226
#define VOID
Definition: acefi.h:82
struct _KQUEUE * PKQUEUE
KIRQL * PKIRQL
Definition: env_spec_w32.h:592
Definition: ketypes.h:520
_MODE
Definition: ketypes.h:10
PVOID SystemArgument1
Definition: ketypes.h:679
struct _KSEMAPHORE KSEMAPHORE
Definition: typedefs.h:117
BOOLEAN DebugActive
Definition: ketypes.h:766
ULONG PVOID Reserved
Definition: ntimage.h:533
ACPI_PHYSICAL_ADDRESS ACPI_SIZE BOOLEAN Warn BOOLEAN Physical UINT32 ACPI_TABLE_HEADER *OutTableHeader ACPI_TABLE_HEADER **OutTable ACPI_HANDLE UINT32 ACPI_WALK_CALLBACK ACPI_WALK_CALLBACK void void **ReturnValue UINT32 ACPI_BUFFER *RetPathPtr ACPI_OBJECT_HANDLER Handler
Definition: acpixf.h:658
volatile ULONG ActiveConsoleId
Definition: ketypes.h:1158
volatile KSYSTEM_TIME TimeZoneBias
Definition: ketypes.h:1133
ULONG Reserved1
Definition: ketypes.h:944
#define _ANONYMOUS_STRUCT
Definition: ntbasedef.h:56
UCHAR Type
Definition: ketypes.h:521
LIST_ENTRY DeviceListEntry
Definition: ketypes.h:552
_In_opt_ PVOID _In_opt_ PVOID _In_opt_ PVOID SystemArgument2
Definition: ketypes.h:660
PVOID SystemArgument2
Definition: ketypes.h:680
#define OPTIONAL
Definition: typedefs.h:40
struct _KDPC * PKDPC
volatile UCHAR BlockState
Definition: ketypes.h:451
#define DISPATCH_LEVEL
Definition: env_spec_w32.h:696
#define _In_
Definition: no_sal2.h:204
struct _SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX
* PXSAVE_AREA_HEADER
Definition: ketypes.h:934
ULONG StackLimit
Definition: ketypes.h:1045
enum _KSPIN_LOCK_QUEUE_NUMBER KSPIN_LOCK_QUEUE_NUMBER
LONG High2Time
Definition: ketypes.h:897
KSPIN_LOCK Lock
Definition: ketypes.h:696
#define HIGH_LEVEL
Definition: env_spec_w32.h:703
LONG NTSTATUS
Definition: DriverTester.h:11
#define TIMER_EXPIRED_INDEX_BITS
Definition: ketypes.h:710
PROCESSOR_NUMBER
Definition: ntbasedef.h:641
BOOLEAN Signalling
Definition: ketypes.h:731
DISPATCHER_HEADER Header
Definition: ketypes.h:789
enum _LOCK_OPERATION LOCK_OPERATION
Definition: ketypes.h:551
unsigned short USHORT
Definition: pedump.c:61
* PXSAVE_FORMAT
Definition: ketypes.h:929
volatile ULONG64 TickCountQuad
Definition: ketypes.h:1199
struct _NT_TIB64 NT_TIB64
UCHAR ApcDisable
Definition: ketypes.h:818
ULONG_PTR KAFFINITY
Definition: compat.h:75
#define MAXIMUM_SUPPORTED_EXTENSION
Definition: x86context.h:35
struct _KMUTANT PRKMUTEX
*RESTRICTED_POINTER PRKAPC_STATE
Definition: ketypes.h:1258
EXPAND_STACK_CALLOUT * PEXPAND_STACK_CALLOUT
Definition: ketypes.h:1078
volatile ULONG CurrentCount
Definition: ketypes.h:1267
LIST_ENTRY DeviceListHead
Definition: ketypes.h:695
enum _ALTERNATIVE_ARCHITECTURE_TYPE ALTERNATIVE_ARCHITECTURE_TYPE
ULONG KSPIN_LOCK
Definition: env_spec_w32.h:72
_In_ PVOID ServiceContext
Definition: ketypes.h:484
struct _KBUGCHECK_ADD_PAGES * PKBUGCHECK_ADD_PAGES
#define DUMMYUNIONNAME3
Definition: ntbasedef.h:35
#define FIELD_OFFSET(t, f)
Definition: typedefs.h:254
_LOGICAL_PROCESSOR_RELATIONSHIP
Definition: ketypes.h:81
struct _XSTATE_SAVE * PXSTATE_SAVE
KE_PROCESSOR_CHANGE_NOTIFY_STATE State
Definition: ketypes.h:347
UCHAR NXSupportPolicy
Definition: ketypes.h:1156
PROCESSOR_GROUP_INFO
Definition: ketypes.h:41
enum _POOL_TYPE POOL_TYPE
Definition: bcd.h:199
struct _KDEVICE_QUEUE_ENTRY PRKDEVICE_QUEUE_ENTRY
struct _CACHE_RELATIONSHIP CACHE_RELATIONSHIP
IN PKSYNCHRONIZE_ROUTINE IN PVOID SynchronizeContext
Definition: stream.h:9
DISPATCHER_HEADER Header
Definition: ketypes.h:785
volatile USHORT ActiveGroupCount
Definition: ketypes.h:1231
ULONG64 SubSystemTib
Definition: ketypes.h:1059
BOOLEAN Abandoned
Definition: ketypes.h:817
XSAVE_FORMAT
Definition: ketypes.h:929
UCHAR ThreadControlFlags
Definition: ketypes.h:735
UCHAR SpareByte1
Definition: ketypes.h:524
ULONG LastSystemRITEventTickCount
Definition: ketypes.h:1161
_KD_OPTION
Definition: ketypes.h:496
_KSPIN_LOCK_QUEUE_NUMBER
Definition: ketypes.h:630
struct _KTHREAD *RESTRICTED_POINTER OwnerThread
Definition: ketypes.h:816
#define _Field_size_bytes_opt_(size)
Definition: no_sal2.h:193
_Must_inspect_result_ _In_ PLARGE_INTEGER _In_ PLARGE_INTEGER _In_ ULONG _In_ PFILE_OBJECT _In_ PVOID Process
Definition: fsrtlfuncs.h:219
enum _KWAIT_REASON KWAIT_REASON
ULONG APC
Definition: ketypes.h:571
#define OUT
Definition: typedefs.h:39
struct _KWAIT_BLOCK * PKWAIT_BLOCK
enum _NT_PRODUCT_TYPE NT_PRODUCT_TYPE
ULONG64 StackBase
Definition: ketypes.h:1057
ULONG SortKey
Definition: ketypes.h:553
struct _GROUP_RELATIONSHIP * PGROUP_RELATIONSHIP
unsigned int ULONG
Definition: retypes.h:1
struct _KMUTANT PRKMUTANT
PVOID Buffer
Definition: ketypes.h:949
#define DUMMYUNIONNAME2
Definition: ntbasedef.h:34
CONTEXT_CHUNK Legacy
Definition: ketypes.h:1005
_In_ PLARGE_INTEGER _In_opt_ PTIMER_APC_ROUTINE _In_opt_ PVOID TimerContext
Definition: zwfuncs.h:428
struct _NT_TIB64 * PNT_TIB64
enum _KD_OPTION KD_OPTION
ULONG SweepIcache
Definition: ketypes.h:578
_In_opt_ struct _COUNTED_REASON_CONTEXT * WakeContext
Definition: ketypes.h:1096
BOOLEAN Inserted
Definition: ketypes.h:540
KBUGCHECK_CALLBACK_REASON
Definition: ketypes.h:247
struct _KBUGCHECK_DUMP_IO * PKBUGCHECK_DUMP_IO
struct _KQUEUE KQUEUE
KSPIN_LOCK_QUEUE LockQueue
Definition: ketypes.h:600
struct _KTIMER PRKTIMER
volatile LONG Count
Definition: ketypes.h:800
UCHAR TimerMiscFlags
Definition: ketypes.h:749
struct _KWAIT_BLOCK * PRKWAIT_BLOCK
LIST_ENTRY WaitListHead
Definition: ketypes.h:781
struct _KWAIT_BLOCK KWAIT_BLOCK
struct _KTHREAD * Thread
Definition: ketypes.h:526
volatile USHORT Number
Definition: ketypes.h:675
enum _KPROFILE_SOURCE KPROFILE_SOURCE
struct _KSPIN_LOCK_QUEUE KSPIN_LOCK_QUEUE
enum _KBUGCHECK_BUFFER_DUMP_STATE KBUGCHECK_BUFFER_DUMP_STATE
PROCESSOR_RELATIONSHIP Processor
Definition: ketypes.h:116
_In_ struct _KBUGCHECK_REASON_CALLBACK_RECORD _Inout_ PVOID ReasonSpecificData
Definition: ketypes.h:256
volatile PVOID DpcData
Definition: ketypes.h:681
#define DUMMYSTRUCTNAME
Definition: ntbasedef.h:58
PKDEFERRED_ROUTINE DeferredRoutine
Definition: ketypes.h:677
PVOID DeferredContext
Definition: ketypes.h:678
XSAVE_AREA
Definition: ketypes.h:939
short CSHORT
Definition: umtypes.h:115
struct _KBUGCHECK_ADD_PAGES KBUGCHECK_ADD_PAGES
ULONG CombinedApcDisable
Definition: ketypes.h:809
struct _SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX * PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX
SHORT SpecialApcDisable
Definition: ketypes.h:807
struct _CONTEXT_EX * PCONTEXT_EX
_In_ ULONG BugCheckCode
Definition: ketypes.h:264
ULONG64 Mask
Definition: ketypes.h:942
ULONG Version
Definition: ketypes.h:1049
#define _NTDDK_
enum _PROCESSOR_CACHE_TYPE PROCESSOR_CACHE_TYPE
_KE_PROCESSOR_CHANGE_NOTIFY_STATE
Definition: ketypes.h:340
XSAVE_AREA_HEADER
Definition: ketypes.h:934
struct _KDPC KDPC
_KINTERRUPT_POLARITY
Definition: ketypes.h:368
* PKAPC_STATE
Definition: ketypes.h:1258
PVOID SystemArgument2
Definition: ketypes.h:537
ULONG ComPlusPackage
Definition: ketypes.h:1160
struct _KWAIT_BLOCK * NextWaitBlock
Definition: ketypes.h:447
_KPROFILE_SOURCE
Definition: winternl.h:2073
ULONG LangGenerationCount
Definition: ketypes.h:1221
struct _KAPC * PKAPC
struct _KBUGCHECK_SECONDARY_DUMP_DATA * PKBUGCHECK_SECONDARY_DUMP_DATA
struct _KQUEUE PRKQUEUE
volatile ULONG DismountCount
Definition: ketypes.h:1159
BOOLEAN ProductTypeIsValid
Definition: ketypes.h:1143
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)
Definition: ketypes.h:642
UCHAR Importance
Definition: ketypes.h:674
ULONG64 ArbitraryUserPointer
Definition: ketypes.h:1064
_In_opt_ PVOID DeferredContext
Definition: ketypes.h:660