ReactOS 0.4.15-dev-7788-g1ad9096
ketypes.h
Go to the documentation of this file.
1/*++ NDK Version: 0098
2
3Copyright (c) Alex Ionescu. All rights reserved.
4
5Header Name:
6
7 ketypes.h
8
9Abstract:
10
11 Type definitions for the Kernel services.
12
13Author:
14
15 Alex Ionescu (alexi@tinykrnl.org) - Updated - 27-Feb-2006
16
17--*/
18
19#ifndef _KETYPES_H
20#define _KETYPES_H
21
22//
23// Dependencies
24//
25#include <umtypes.h>
26#ifndef NTOS_MODE_USER
27#include <haltypes.h>
28#include <potypes.h>
29#include <ifssupp.h>
30#endif
31
32//
33// A system call ID is formatted as such:
34// .________________________________________________________________.
35// | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
36// |--------------|-------------------------------------------------|
37// | TABLE NUMBER | TABLE OFFSET |
38// \----------------------------------------------------------------/
39//
40// The table number is then used as an index into the service descriptor table.
41#define TABLE_NUMBER_BITS 1
42#define TABLE_OFFSET_BITS 12
43
44//
45// There are 2 tables (kernel and shadow, used by Win32K)
46//
47#define NUMBER_SERVICE_TABLES 2
48#define NTOS_SERVICE_INDEX 0
49#define WIN32K_SERVICE_INDEX 1
50
51//
52// NB. From assembly code, the table number must be computed as an offset into
53// the service descriptor table.
54//
55// Each entry into the table is 16 bytes long on 32-bit architectures, and
56// 32 bytes long on 64-bit architectures.
57//
58// Thus, Table Number 1 is offset 16 (0x10) on x86, and offset 32 (0x20) on
59// x64.
60//
61#ifdef _WIN64
62#define BITS_PER_ENTRY 5 // (1 << 5) = 32 bytes
63#else
64#define BITS_PER_ENTRY 4 // (1 << 4) = 16 bytes
65#endif
66
67//
68// We want the table number, but leave some extra bits to we can have the offset
69// into the descriptor table.
70//
71#define SERVICE_TABLE_SHIFT (12 - BITS_PER_ENTRY)
72
73//
74// Now the table number (as an offset) is corrupted with part of the table offset
75// This mask will remove the extra unwanted bits, and give us the offset into the
76// descriptor table proper.
77//
78#define SERVICE_TABLE_MASK (((1 << TABLE_NUMBER_BITS) - 1) << BITS_PER_ENTRY)
79
80//
81// To get the table offset (ie: the service call number), just keep the 12 bits
82//
83#define SERVICE_NUMBER_MASK ((1 << TABLE_OFFSET_BITS) - 1)
84
85//
86// We'll often need to check if this is a graphics call. This is done by comparing
87// the table number offset with the known Win32K table number offset.
88// This is usually index 1, so table number offset 0x10 (x86) or 0x20 (x64)
89//
90#define SERVICE_TABLE_TEST (WIN32K_SERVICE_INDEX << BITS_PER_ENTRY)
91
92//
93// Context Record Flags
94//
95#define CONTEXT_DEBUGGER (CONTEXT_FULL | CONTEXT_FLOATING_POINT)
96
97//
98// Maximum System Descriptor Table Entries
99//
100#define SSDT_MAX_ENTRIES 2
101
102//
103// Processor Architectures
104//
105#define PROCESSOR_ARCHITECTURE_INTEL 0
106#define PROCESSOR_ARCHITECTURE_MIPS 1
107#define PROCESSOR_ARCHITECTURE_ALPHA 2
108#define PROCESSOR_ARCHITECTURE_PPC 3
109#define PROCESSOR_ARCHITECTURE_SHX 4
110#define PROCESSOR_ARCHITECTURE_ARM 5
111#define PROCESSOR_ARCHITECTURE_IA64 6
112#define PROCESSOR_ARCHITECTURE_ALPHA64 7
113#define PROCESSOR_ARCHITECTURE_MSIL 8
114#define PROCESSOR_ARCHITECTURE_AMD64 9
115#define PROCESSOR_ARCHITECTURE_UNKNOWN 0xFFFF
116
117//
118// Object Type Mask for Kernel Dispatcher Objects
119//
120#define KOBJECT_TYPE_MASK 0x7F
121#define KOBJECT_LOCK_BIT 0x80
122
123//
124// Dispatcher Priority increments
125//
126#define THREAD_ALERT_INCREMENT 2
127
128//
129// Physical memory offset of KUSER_SHARED_DATA
130//
131#define KI_USER_SHARED_DATA_PHYSICAL 0x41000
132
133//
134// Quantum values and decrements
135//
136#define MAX_QUANTUM 0x7F
137#define WAIT_QUANTUM_DECREMENT 1
138#define CLOCK_QUANTUM_DECREMENT 3
139
140//
141// Internal Exception Codes
142//
143#define KI_EXCEPTION_INTERNAL 0x10000000
144#define KI_EXCEPTION_ACCESS_VIOLATION (KI_EXCEPTION_INTERNAL | 0x04)
145
146typedef struct _FIBER /* Field offsets: */
147{ /* i386 arm x64 */
148 PVOID FiberData; /* 0x000 0x000 0x000 */
149 struct _EXCEPTION_REGISTRATION_RECORD *ExceptionList;/* 0x004 0x004 0x008 */
150 PVOID StackBase; /* 0x008 0x008 0x010 */
151 PVOID StackLimit; /* 0x00C 0x00C 0x018 */
152 PVOID DeallocationStack; /* 0x010 0x010 0x020 */
153 CONTEXT FiberContext; /* 0x014 0x018 0x030 */
154#if (NTDDI_VERSION >= NTDDI_LONGHORN)
155 PVOID Wx86Tib; /* 0x2E0 0x1b8 0x500 */
157 PVOID FlsData; /* 0x2E8 0x1c0 0x510 */
158 ULONG GuaranteedStackBytes; /* 0x2EC 0x1c4 0x518 */
159 ULONG TebFlags; /* 0x2F0 0x1c8 0x51C */
160#else
161 ULONG GuaranteedStackBytes; /* 0x2E0 */
162 PVOID FlsData; /* 0x2E4 */
164#endif
166
167#ifndef NTOS_MODE_USER
168//
169// Number of dispatch codes supported by KINTERRUPT
170//
171#ifdef _M_AMD64
172#define DISPATCH_LENGTH 4
173#elif (NTDDI_VERSION >= NTDDI_LONGHORN)
174#define DISPATCH_LENGTH 135
175#else
176#define DISPATCH_LENGTH 106
177#endif
178
179#else // NTOS_MODE_USER
180
181//
182// KPROCESSOR_MODE Type
183//
184typedef CCHAR KPROCESSOR_MODE;
185
186//
187// Dereferencable pointer to KUSER_SHARED_DATA in User-Mode
188//
189#define SharedUserData ((KUSER_SHARED_DATA *)USER_SHARED_DATA)
190
191#ifdef _X86_
192/* Macros for user-mode run-time checks of X86 system architecture */
193
194#ifndef IsNEC_98
195#define IsNEC_98 (SharedUserData->AlternativeArchitecture == NEC98x86)
196#endif
197
198#ifndef IsNotNEC_98
199#define IsNotNEC_98 (SharedUserData->AlternativeArchitecture != NEC98x86)
200#endif
201
202/* User-mode cannot override the architecture */
203#ifndef SetNEC_98
204#define SetNEC_98
205#endif
206
207/* User-mode cannot override the architecture */
208#ifndef SetNotNEC_98
209#define SetNotNEC_98
210#endif
211
212#else // !_X86_
213/* Correctly define these run-time definitions for non X86 machines */
214
215#ifndef IsNEC_98
216#define IsNEC_98 (FALSE)
217#endif
218
219#ifndef IsNotNEC_98
220#define IsNotNEC_98 (TRUE)
221#endif
222
223#ifndef SetNEC_98
224#define SetNEC_98
225#endif
226
227#ifndef SetNotNEC_98
228#define SetNotNEC_98
229#endif
230
231#endif // _X86_
232
233//
234// Maximum WOW64 Entries in KUSER_SHARED_DATA
235//
236#define MAX_WOW64_SHARED_ENTRIES 16
237
238//
239// Maximum Processor Features supported in KUSER_SHARED_DATA
240//
241#define PROCESSOR_FEATURE_MAX 64
242
243//
244// Event Types
245//
246typedef enum _EVENT_TYPE
247{
250} EVENT_TYPE;
251
252//
253// Timer Types
254//
255typedef enum _TIMER_TYPE
256{
259} TIMER_TYPE;
260
261//
262// Wait Types
263//
264typedef enum _WAIT_TYPE
265{
266 WaitAll,
267 WaitAny
268} WAIT_TYPE;
269
270//
271// Processor Execution Modes
272//
273typedef enum _MODE
274{
276 UserMode,
278} MODE;
279
280//
281// Wait Reasons
282//
283typedef enum _KWAIT_REASON
284{
285 Executive,
286 FreePage,
287 PageIn,
290 Suspended,
294 WrPageIn,
300 WrQueue,
304 WrPageOut,
306 Spare2,
308 Spare4,
309 Spare5,
310 Spare6,
311 WrKernel,
314 WrMutex,
321
322//
323// Profiling Sources
324//
325typedef enum _KPROFILE_SOURCE
326{
353
354//
355// NT Product and Architecture Types
356//
357typedef enum _NT_PRODUCT_TYPE
358{
359 NtProductWinNt = 1,
363
365{
367 NEC98x86,
370
371//
372// Flags for NXSupportPolicy
373//
374#if (NTDDI_VERSION >= NTDDI_WINXPSP2)
375#define NX_SUPPORT_POLICY_ALWAYSOFF 0
376#define NX_SUPPORT_POLICY_ALWAYSON 1
377#define NX_SUPPORT_POLICY_OPTIN 2
378#define NX_SUPPORT_POLICY_OPTOUT 3
379#endif
380
381#endif // NTOS_MODE_USER
382
383//
384// Thread States
385//
386typedef enum _KTHREAD_STATE
387{
396#if (NTDDI_VERSION >= NTDDI_WS03)
398#endif
400
401//
402// Kernel Object Types
403//
404typedef enum _KOBJECTS
405{
433
434//
435// Adjust reasons
436//
437typedef enum _ADJUST_REASON
438{
441 AdjustBoost = 2
443
444//
445// Continue Status
446//
448{
454
455//
456// Process States
457//
458typedef enum _KPROCESS_STATE
459{
466
467//
468// NtVdmControl Classes
469//
471{
488
489#ifdef NTOS_MODE_USER
490
491//
492// APC Normal Routine
493//
494typedef VOID
496 _In_ PVOID NormalContext,
499);
500
501//
502// Timer Routine
503//
504typedef VOID
507 _In_ ULONG TimerLowValue,
508 _In_ LONG TimerHighValue
509);
510
511//
512// System Time Structure
513//
514typedef struct _KSYSTEM_TIME
515{
520
521#define MAXIMUM_XSTATE_FEATURES 64
522
523typedef struct _XSTATE_FEATURE
524{
526 ULONG Size;
528
529typedef struct _XSTATE_CONFIGURATION
530{
532#if (NTDDI_VERSION >= NTDDI_WINBLUE)
534#endif
535 ULONG Size;
536 union
537 {
539 struct
540 {
542 ULONG CompactionEnabled:1; // WIN10+
543 };
544 };
546#if (NTDDI_VERSION >= NTDDI_WIN10)
551#endif
552#if (NTDDI_VERSION >= NTDDI_WIN10_RS5)
554#endif
555#if (NTDDI_VERSION >= NTDDI_WIN11)
558 ULONG Spare;
559#endif
561
562//
563// Shared Kernel User Data
564// Keep in sync with sdk/include/xdk/ketypes.h
565//
566typedef struct _KUSER_SHARED_DATA
567{
570 volatile KSYSTEM_TIME InterruptTime; // 0x8
571 volatile KSYSTEM_TIME SystemTime; // 0x14
572 volatile KSYSTEM_TIME TimeZoneBias; // 0x20
573 USHORT ImageNumberLow; // 0x2c
574 USHORT ImageNumberHigh; // 0x2e
575 WCHAR NtSystemRoot[260]; // 0x30
576 ULONG MaxStackTraceDepth; // 0x238
577 ULONG CryptoExponent; // 0x23c
578 ULONG TimeZoneId; // 0x240
579 ULONG LargePageMinimum; // 0x244
580 ULONG Reserved2[7]; // 0x248
583 ULONG NtMajorVersion; // 0x26c
584 ULONG NtMinorVersion; // 0x270
586 ULONG Reserved1; // 0x2b4
587 ULONG Reserved3; // 0x2b8
588 volatile ULONG TimeSlip; // 0x2bc
590 ULONG AltArchitecturePad[1]; // 0x2c4
592 ULONG SuiteMask; // 0x2d0
593 BOOLEAN KdDebuggerEnabled; // 0x2d4
594#if (NTDDI_VERSION >= NTDDI_WINXPSP2)
595 UCHAR NXSupportPolicy; // 0x2d5
596#endif
597 volatile ULONG ActiveConsoleId; // 0x2d8
598 volatile ULONG DismountCount; // 0x2dc
599 ULONG ComPlusPackage; // 0x2e0
602 BOOLEAN SafeBootMode; // 0x2ec
603#if (NTDDI_VERSION >= NTDDI_WIN7)
604 union
605 {
606 UCHAR TscQpcData; // 0x2ed
607 struct
608 {
609 UCHAR TscQpcEnabled:1; // 0x2ed
610 UCHAR TscQpcSpareFlag:1; // 0x2ed
611 UCHAR TscQpcShift:6; // 0x2ed
614 UCHAR TscQpcPad[2]; // 0x2ee
615#endif
616#if (NTDDI_VERSION >= NTDDI_VISTA)
617 union
618 {
619 ULONG SharedDataFlags; // 0x2f0
620 struct
621 {
622 ULONG DbgErrorPortPresent:1; // 0x2f0
623 ULONG DbgElevationEnabled:1; // 0x2f0
624 ULONG DbgVirtEnabled:1; // 0x2f0
626 ULONG DbgSystemDllRelocated:1; // 0x2f0
627 ULONG DbgDynProcessorEnabled:1; // 0x2f0
629 ULONG SpareBits:25; // 0x2f0
632#else
633 ULONG TraceLogging;
634#endif
635 ULONG DataFlagsPad[1]; // 0x2f4
637 ULONG SystemCall; // 0x300
638 ULONG SystemCallReturn; // 0x304
639 ULONGLONG SystemCallPad[3]; // 0x308
640 union
641 {
642 volatile KSYSTEM_TIME TickCount; // 0x320
643 volatile ULONG64 TickCountQuad; // 0x320
644 struct
645 {
647 ULONG TickCountPad[1]; // 0x32c
650 ULONG Cookie; // 0x330
651#if (NTDDI_VERSION >= NTDDI_VISTA)
652 ULONG CookiePad[1]; // 0x334
654#endif
655#if (NTDDI_VERSION >= NTDDI_WS03)
656 ULONG Wow64SharedInformation[MAX_WOW64_SHARED_ENTRIES]; // 2K3: 0x334 / Vista+: 0x340
657#endif
658#if (NTDDI_VERSION >= NTDDI_VISTA)
659#if (NTDDI_VERSION >= NTDDI_WIN7)
660 USHORT UserModeGlobalLogger[16]; // 0x380
661#else
662 USHORT UserModeGlobalLogger[8]; // 0x380
663 ULONG HeapTracingPid[2]; // 0x390
664 ULONG CritSecTracingPid[2]; // 0x398
665#endif
667#if (NTDDI_VERSION >= NTDDI_VISTASP1)
668 ULONG LangGenerationCount; // 0x3a4
669#else
670 /* 4 bytes padding */
671#endif
672 ULONGLONG Reserved5; // 0x3a8
673 volatile ULONG64 InterruptTimeBias; // 0x3b0
674#endif // NTDDI_VERSION >= NTDDI_VISTA
675#if (NTDDI_VERSION >= NTDDI_WIN7)
676 volatile ULONG64 TscQpcBias; // 0x3b8
677 volatile ULONG ActiveProcessorCount; // 0x3c0
678 volatile USHORT ActiveGroupCount; // 0x3c4
679 USHORT Reserved4; // 0x3c6
680 volatile ULONG AitSamplingValue; // 0x3c8
681 volatile ULONG AppCompatFlag; // 0x3cc
684 ULONG XStatePad[1]; // 0x3dc
686#endif
688
689//
690// VDM Structures
691//
692#include "pshpack1.h"
693typedef struct _VdmVirtualIca
694{
695 LONG ica_count[8];
696 LONG ica_int_line;
697 LONG ica_cpu_int;
698 USHORT ica_base;
699 USHORT ica_hipiri;
700 USHORT ica_mode;
701 UCHAR ica_master;
702 UCHAR ica_irr;
703 UCHAR ica_isr;
704 UCHAR ica_imr;
705 UCHAR ica_ssr;
706} VDMVIRTUALICA, *PVDMVIRTUALICA;
707#include "poppack.h"
708
709typedef struct _VdmIcaUserData
710{
711 PVOID pIcaLock;
712 PVDMVIRTUALICA pIcaMaster;
713 PVDMVIRTUALICA pIcaSlave;
714 PULONG pDelayIrq;
715 PULONG pUndelayIrq;
716 PULONG pDelayIret;
717 PULONG pIretHooked;
718 PULONG pAddrIretBopTable;
719 PHANDLE phWowIdleEvent;
720 PLARGE_INTEGER pIcaTimeout;
721 PHANDLE phMainThreadSuspended;
722} VDMICAUSERDATA, *PVDMICAUSERDATA;
723
724typedef struct _VDM_INITIALIZE_DATA
725{
726 PVOID TrapcHandler;
727 PVDMICAUSERDATA IcaUserData;
728} VDM_INITIALIZE_DATA, *PVDM_INITIALIZE_DATA;
729
730#else
731
732//
733// System Thread Start Routine
734//
735typedef
739 PVOID StartContext
740);
741
742#ifndef _NTSYSTEM_
743typedef VOID
745 IN PVOID NormalContext OPTIONAL,
748
749typedef VOID
751 IN struct _KAPC *Apc);
752
753typedef VOID
755 IN struct _KAPC *Apc,
756 IN OUT PKNORMAL_ROUTINE *NormalRoutine OPTIONAL,
760#endif
761
762//
763// APC Environment Types
764//
766{
772
774{
775#if (NTDDI_VERSION >= NTDDI_LONGHORN) || defined(_M_ARM) || defined(_M_AMD64)
777#endif
781
782typedef struct _KTIMER_TABLE
783{
787
788typedef struct _KDPC_LIST
789{
793
794typedef struct _SYNCH_COUNTERS
795{
843
844//
845// PRCB DPC Data
846//
847typedef struct _KDPC_DATA
848{
849#if (NTDDI_VERSION >= NTDDI_LONGHORN)
851#else
852 LIST_ENTRY DpcListHead;
853#endif
855#if defined(_M_AMD64) || defined(_M_ARM)
856 volatile LONG DpcQueueDepth;
857#else
859#endif
861#if (NTDDI_VERSION >= NTDDI_LONGHORN) || defined(_M_ARM)
863#endif
865
866//
867// Per-Processor Lookaside List
868//
869typedef struct _PP_LOOKASIDE_LIST
870{
874
875//
876// Architectural Types
877//
878#include <arch/ketypes.h>
879
880//
881// Kernel Memory Node
882//
883typedef struct _KNODE
884{
891 struct _flags {
899
900//
901// Structure for Get/SetContext APC
902//
903typedef struct _GETSETCONTEXT
904{
910
911//
912// Kernel Profile Object
913//
914typedef struct _KPROFILE
915{
929
930//
931// Kernel Interrupt Object
932//
933typedef struct _KINTERRUPT
934{
939#if (NTDDI_VERSION >= NTDDI_LONGHORN)
942#endif
956#if (NTDDI_VERSION >= NTDDI_LONGHORN)
958#endif
961#if (NTDDI_VERSION >= NTDDI_LONGHORN)
963#endif
964#ifdef _M_AMD64
965 PKTRAP_FRAME TrapFrame;
967#endif
970
971//
972// Kernel Event Pair Object
973//
974typedef struct _KEVENT_PAIR
975{
981
982//
983// Kernel No Execute Options
984//
985typedef struct _KEXECUTE_OPTIONS
986{
995
996#if (NTDDI_VERSION >= NTDDI_WIN7)
998{
1000 struct
1001 {
1009 };
1011
1012typedef struct _COUNTER_READING
1013{
1019
1020typedef struct _KTHREAD_COUNTERS
1021{
1023 struct _THREAD_PERFORMANCE_DATA* UserData;
1030#endif
1031
1033#if (NTDDI_VERSION >= NTDDI_WIN8)
1034typedef struct _RTL_RB_TREE
1035{
1039#endif
1040
1041#if (NTDDI_VERSION >= NTDDI_WINBLUE)
1043{
1044 union
1045 {
1046 struct
1047 {
1048#if (NTDDI_VERSION >= NTDDI_WIN10) // since 6.4.9841.0
1050#else
1051 ULONG_PTR Waiting : 1;
1052#endif
1054 ULONG_PTR Reserved : (8 * sizeof(PVOID)) - 3; // previously Spare
1056 };
1058 };
1059 union
1060 {
1062 struct
1063 {
1065#ifdef _WIN64
1066 ULONG SessionPad;
1067#endif
1068 };
1069 };
1071
1072typedef struct _KLOCK_ENTRY
1073{
1074 union
1075 {
1078 };
1079#if (NTDDI_VERSION >= NTDDI_WIN10)
1080 union
1081 {
1083 struct
1084 {
1086 union
1087 {
1089 struct
1090 {
1093 };
1094 };
1095 union
1096 {
1099 };
1100 union
1101 {
1103 struct
1104 {
1107 UCHAR IoQoSWaiter : 1; // since TH2
1109 };
1110 };
1111 };
1112 struct
1113 {
1116 };
1117 };
1118#ifdef _WIN64
1119 ULONG SpareFlags;
1120#endif
1121#else
1122 union
1123 {
1124 PVOID ThreadUnsafe;
1125 struct
1126 {
1127 volatile UCHAR HeadNodeByte;
1128 UCHAR Reserved1[2];
1129 volatile UCHAR AcquiredByte;
1130 };
1131 };
1132#endif
1133
1134 union
1135 {
1138 struct
1139 {
1140#if (NTDDI_VERSION >= NTDDI_WIN10)
1142#else
1143 volatile UCHAR WaitingAndBusyByte;
1144#endif
1145 UCHAR Reserved[sizeof(PVOID) - 2];
1147 union
1148 {
1150 struct
1151 {
1153#ifdef _WIN64
1154 ULONG SessionPad;
1155#endif
1156 };
1157 };
1158 };
1159 };
1160 union
1161 {
1162 struct
1163 {
1166 };
1168 };
1170 union
1171 {
1172#if _WIN64
1173 ULONG AllBoosts : 17;
1174#else
1176#endif
1177 struct
1178 {
1179 struct
1180 {
1183 };
1184 struct
1185 {
1189 };
1190 };
1191 };
1192#if _WIN64
1193 ULONG SparePad;
1194#endif
1196
1197#endif
1198
1199//
1200// Kernel Thread (KTHREAD)
1201//
1202#if (NTDDI_VERSION < NTDDI_WIN8)
1203
1204typedef struct _KTHREAD
1205{
1207#if (NTDDI_VERSION >= NTDDI_LONGHORN) // [
1209#ifndef _WIN64 // [
1211#endif // ]
1213#else // ][
1215#endif // ]
1217 ULONG_PTR StackLimit; // FIXME: PVOID
1220#if (NTDDI_VERSION >= NTDDI_WIN7) // [
1223 BOOLEAN Alerted[2];
1224 union
1225 {
1226 struct
1227 {
1228 ULONG KernelStackResident:1;
1231 ULONG WaitNext:1;
1233 ULONG Alertable:1;
1234 ULONG GdiFlushActive:1;
1241 ULONG Reserved:19;
1242 };
1244 };
1245#endif // ]
1246 union
1247 {
1249 struct
1250 {
1251 UCHAR ApcStateFill[FIELD_OFFSET(KAPC_STATE, UserApcPending) + 1];
1252#if (NTDDI_VERSION >= NTDDI_LONGHORN) // [
1254#if (NTDDI_VERSION >= NTDDI_WIN7) // [
1255 /* On x86, the following members "fall out" of the union */
1256 volatile ULONG NextProcessor;
1257 volatile ULONG DeferredProcessor;
1258#else // ][
1259 /* On x86, the following members "fall out" of the union */
1260 volatile USHORT NextProcessor;
1261 volatile USHORT DeferredProcessor;
1262#endif // ]
1263#else // ][
1265 /* On x86, the following members "fall out" of the union */
1266 volatile UCHAR NextProcessor;
1267 volatile UCHAR DeferredProcessor;
1270#endif // ]
1271 };
1272 };
1273 KSPIN_LOCK ApcQueueLock;
1274#if !defined(_M_AMD64) && !defined(_M_ARM64) // [
1276 volatile UCHAR State;
1280#endif // ]
1282#if (NTDDI_VERSION >= NTDDI_WIN7) // [
1284#else // ][
1285 union
1286 {
1289 };
1290#if (NTDDI_VERSION >= NTDDI_LONGHORN) // [
1291 union
1292 {
1293 struct
1294 {
1295 ULONG KernelStackResident:1;
1298 ULONG WaitNext:1;
1300 ULONG Alertable:1;
1301 ULONG GdiFlushActive:1;
1302 ULONG Reserved:25;
1303 };
1305 };
1306#else // ][
1309#endif // ]
1311#if (NTDDI_VERSION < NTDDI_LONGHORN)
1314#endif // ]
1315 volatile UCHAR SwapBusy;
1317#endif // ]
1318 union
1319 {
1322 };
1323 PKQUEUE Queue;
1324#if !defined(_M_AMD64) && !defined(_M_ARM64) // [
1326 union
1327 {
1328 struct
1329 {
1332 };
1334 };
1335#endif // ]
1336 struct _TEB *Teb;
1337
1338#if (NTDDI_VERSION >= NTDDI_WIN7) // [
1339 KTIMER Timer;
1340#else // ][
1341 union
1342 {
1343 KTIMER Timer;
1344 struct
1345 {
1346 UCHAR TimerFill[FIELD_OFFSET(KTIMER, Period) + sizeof(LONG)];
1347#if !defined(_WIN64) // [
1348 };
1349 };
1350#endif // ]
1351#endif // ]
1352 union
1353 {
1354 struct
1355 {
1358#if (NTDDI_VERSION >= NTDDI_LONGHORN) // [
1359 ULONG EtwStackTraceApc1Inserted:1;
1360 ULONG EtwStackTraceApc2Inserted:1;
1361 ULONG CycleChargePending:1;
1365 ULONG GuiThread:1;
1366 ULONG ReservedFlags:23;
1367#else // ][
1368 LONG ReservedFlags:30;
1369#endif // ]
1370 };
1372 };
1373#if defined(_WIN64) && (NTDDI_VERSION < NTDDI_WIN7) // [
1374 };
1375 };
1376#endif // ]
1377#if (NTDDI_VERSION >= NTDDI_WIN7) // [
1378#if defined(_WIN64) // [
1379 ULONG Spare0;
1380#else // ][
1382#endif // ]
1383#endif // ]
1384 union
1385 {
1387#if (NTDDI_VERSION < NTDDI_WIN7) // [
1388 struct
1389 {
1390 UCHAR WaitBlockFill0[FIELD_OFFSET(KWAIT_BLOCK, SpareByte)]; // 32bit = 23, 64bit = 43
1391#if (NTDDI_VERSION >= NTDDI_LONGHORN) // [
1392 UCHAR IdealProcessor;
1393#else // ][
1394 BOOLEAN SystemAffinityActive;
1395#endif // ]
1396 };
1397 struct
1398 {
1399 UCHAR WaitBlockFill1[1 * sizeof(KWAIT_BLOCK) + FIELD_OFFSET(KWAIT_BLOCK, SpareByte)]; // 47 / 91
1401 };
1402 struct
1403 {
1404 UCHAR WaitBlockFill2[2 * sizeof(KWAIT_BLOCK) + FIELD_OFFSET(KWAIT_BLOCK, SpareByte)]; // 71 / 139
1405 UCHAR ResourceIndex;
1406 };
1407 struct
1408 {
1409 UCHAR WaitBlockFill3[3 * sizeof(KWAIT_BLOCK) + FIELD_OFFSET(KWAIT_BLOCK, SpareByte)]; // 95 / 187
1410 UCHAR LargeStack;
1411 };
1412#endif // ]
1413#ifdef _WIN64 // [
1414 struct
1415 {
1416 UCHAR WaitBlockFill4[FIELD_OFFSET(KWAIT_BLOCK, SpareLong)];
1417 ULONG ContextSwitches;
1418 };
1419 struct
1420 {
1421 UCHAR WaitBlockFill5[1 * sizeof(KWAIT_BLOCK) + FIELD_OFFSET(KWAIT_BLOCK, SpareLong)];
1422 UCHAR State;
1423 UCHAR NpxState;
1424 UCHAR WaitIrql;
1425 CHAR WaitMode;
1426 };
1427 struct
1428 {
1429 UCHAR WaitBlockFill6[2 * sizeof(KWAIT_BLOCK) + FIELD_OFFSET(KWAIT_BLOCK, SpareLong)];
1430 ULONG WaitTime;
1431 };
1432#if (NTDDI_VERSION >= NTDDI_WIN7) // [
1433 struct
1434 {
1435 UCHAR WaitBlockFill7[168];
1436 PVOID TebMappedLowVa;
1437 struct _UMS_CONTROL_BLOCK* Ucb;
1438 };
1439#endif // ]
1440 struct
1441 {
1442#if (NTDDI_VERSION >= NTDDI_WIN7) // [
1443 UCHAR WaitBlockFill8[188];
1444#else // ][
1445 UCHAR WaitBlockFill7[3 * sizeof(KWAIT_BLOCK) + FIELD_OFFSET(KWAIT_BLOCK, SpareLong)];
1446#endif // ]
1447 union
1448 {
1449 struct
1450 {
1451 SHORT KernelApcDisable;
1452 SHORT SpecialApcDisable;
1453 };
1454 ULONG CombinedApcDisable;
1455 };
1456 };
1457#endif // ]
1458 };
1459 LIST_ENTRY QueueListEntry;
1460 PKTRAP_FRAME TrapFrame;
1461#if (NTDDI_VERSION >= NTDDI_LONGHORN) // [
1462 PVOID FirstArgument;
1463 union
1464 {
1465 PVOID CallbackStack;
1466 ULONG_PTR CallbackDepth;
1467 };
1468#else // ][
1469 PVOID CallbackStack;
1470#endif // ]
1471#if (NTDDI_VERSION < NTDDI_LONGHORN) || ((NTDDI_VERSION < NTDDI_WIN7) && !defined(_WIN64)) // [
1473#endif // ]
1474#if (NTDDI_VERSION < NTDDI_LONGHORN) && defined(_WIN64) // [
1475 ULONG KernelLimit;
1476#endif // ]
1477 UCHAR ApcStateIndex;
1478#if (NTDDI_VERSION < NTDDI_LONGHORN) // [
1479 UCHAR IdealProcessor;
1480 BOOLEAN Preempted;
1481 BOOLEAN ProcessReadyQueue;
1482#ifdef _WIN64 // [
1483 PVOID Win32kTable;
1484 ULONG Win32kLimit;
1485#endif // ]
1486 BOOLEAN KernelStackResident;
1487#endif // ]
1488 SCHAR BasePriority;
1489 SCHAR PriorityDecrement;
1490#if (NTDDI_VERSION >= NTDDI_LONGHORN) // [
1491 BOOLEAN Preempted;
1492 UCHAR AdjustReason;
1493 CHAR AdjustIncrement;
1494#if (NTDDI_VERSION >= NTDDI_WIN7)
1496#else
1497 UCHAR Spare01;
1498#endif
1499#endif // ]
1500 CHAR Saturation;
1501#if (NTDDI_VERSION >= NTDDI_LONGHORN) // [
1502 ULONG SystemCallNumber;
1503#if (NTDDI_VERSION >= NTDDI_WIN7) // [
1504 ULONG FreezeCount;
1505#else // ][
1506 ULONG Spare02;
1507#endif // ]
1508#endif // ]
1509#if (NTDDI_VERSION >= NTDDI_WIN7) // [
1510 GROUP_AFFINITY UserAffinity;
1511 struct _KPROCESS *Process;
1513 ULONG IdealProcessor;
1514 ULONG UserIdealProcessor;
1515#else // ][
1516 KAFFINITY UserAffinity;
1517 struct _KPROCESS *Process;
1519#endif // ]
1520 PKAPC_STATE ApcStatePointer[2];
1521 union
1522 {
1523 KAPC_STATE SavedApcState;
1524 struct
1525 {
1526 UCHAR SavedApcStateFill[FIELD_OFFSET(KAPC_STATE, UserApcPending) + 1];
1527#if (NTDDI_VERSION >= NTDDI_WIN7) // [
1528 UCHAR WaitReason;
1529#else // ][
1530 CCHAR FreezeCount;
1531#endif // ]
1532#ifndef _WIN64 // [
1533 };
1534 };
1535#endif // ]
1536 CCHAR SuspendCount;
1537#if (NTDDI_VERSION >= NTDDI_WIN7) // [
1538 CCHAR Spare1;
1539#else // ][
1540 UCHAR UserIdealProcessor;
1541#endif // ]
1542#if (NTDDI_VERSION >= NTDDI_WIN7) // [
1543#elif (NTDDI_VERSION >= NTDDI_LONGHORN) // ][
1544 UCHAR Spare03;
1545#else // ][
1546 UCHAR CalloutActive;
1547#endif // ]
1548#ifdef _WIN64 // [
1549 UCHAR CodePatchInProgress;
1550 };
1551 };
1552#endif // ]
1553#if defined(_M_IX86) // [
1554#if (NTDDI_VERSION >= NTDDI_LONGHORN) // [
1555 UCHAR OtherPlatformFill;
1556#else // ][
1557 UCHAR Iopl;
1558#endif // ]
1559#endif // ]
1560 PVOID Win32Thread;
1561 PVOID StackBase;
1562 union
1563 {
1564 KAPC SuspendApc;
1565 struct
1566 {
1567 UCHAR SuspendApcFill0[1];
1568#if (NTDDI_VERSION >= NTDDI_WIN7) // [
1569 UCHAR ResourceIndex;
1570#elif (NTDDI_VERSION >= NTDDI_LONGHORN) // ][
1571 CHAR Spare04;
1572#else // ][
1573 SCHAR Quantum;
1574#endif // ]
1575 };
1576 struct
1577 {
1578 UCHAR SuspendApcFill1[3];
1580 };
1581 struct
1582 {
1583 UCHAR SuspendApcFill2[4];
1585 };
1586 struct
1587 {
1588 UCHAR SuspendApcFill3[FIELD_OFFSET(KAPC, SystemArgument1)];
1589#if (NTDDI_VERSION >= NTDDI_LONGHORN)
1590 PKPRCB WaitPrcb;
1591#else
1592 PVOID TlsArray;
1593#endif
1594 };
1595 struct
1596 {
1597 UCHAR SuspendApcFill4[FIELD_OFFSET(KAPC, SystemArgument2)]; // 40 / 72
1598 PVOID LegoData;
1599 };
1600 struct
1601 {
1602 UCHAR SuspendApcFill5[FIELD_OFFSET(KAPC, Inserted) + 1]; // 47 / 83
1603#if (NTDDI_VERSION >= NTDDI_WIN7) // [
1604 UCHAR LargeStack;
1605#else // ][
1607#endif // ]
1608#ifdef _WIN64 // [
1610#endif // ]
1611 };
1612 };
1613#ifndef _WIN64 // [
1615#endif // ]
1616 union
1617 {
1618 KSEMAPHORE SuspendSemaphore;
1619 struct
1620 {
1621 UCHAR SuspendSemaphorefill[FIELD_OFFSET(KSEMAPHORE, Limit) + 4]; // 20 / 28
1622#ifdef _WIN64 // [
1623 ULONG SListFaultCount;
1624#endif // ]
1625 };
1626 };
1627#ifndef _WIN64 // [
1628 ULONG SListFaultCount;
1629#endif // ]
1630 LIST_ENTRY ThreadListEntry;
1631#if (NTDDI_VERSION >= NTDDI_LONGHORN) // [
1632 LIST_ENTRY MutantListHead;
1633#endif // ]
1634 PVOID SListFaultAddress;
1635#ifdef _M_AMD64 // [
1636 LONG64 ReadOperationCount;
1637 LONG64 WriteOperationCount;
1638 LONG64 OtherOperationCount;
1639 LONG64 ReadTransferCount;
1640 LONG64 WriteTransferCount;
1641 LONG64 OtherTransferCount;
1642#endif // ]
1643#if (NTDDI_VERSION >= NTDDI_WIN7) // [
1644 PKTHREAD_COUNTERS ThreadCounters;
1645 PXSTATE_SAVE XStateSave;
1646#elif (NTDDI_VERSION >= NTDDI_LONGHORN) // ][
1647 PVOID MdlForLockedTeb;
1648#endif // ]
1649} KTHREAD;
1650
1651#else // not (NTDDI_VERSION < NTDDI_WIN8)
1652
1653#if defined(_WIN64) && (NTDDI_VERSION < 0x06032580) // since WIN 8.1 Update1 6.3.9600.16384
1654#define NUMBER_OF_LOCK_ENTRIES 5
1655#else
1656#define NUMBER_OF_LOCK_ENTRIES 6
1657#endif
1658
1659typedef struct _KTHREAD
1660{
1665 volatile VOID *StackLimit;
1669#ifndef _WIN64
1672#endif
1677 struct _KSCHEDULING_GROUP* SchedulingGroup;
1681
1682 union
1683 {
1684 struct
1685 {
1686#if (NTDDI_VERSION < NTDDI_WIN10)
1687 ULONG KernelStackResident : 1;
1688#else
1690#endif
1692#if (NTDDI_VERSION < NTDDI_WIN10TH2)
1694#endif
1699#if (NTDDI_VERSION < NTDDI_WIN81)
1700 ULONG CodePatchInProgress : 1;
1701#endif
1716 };
1718 };
1719
1720 union
1721 {
1722 struct
1723 {
1738#if (NTDDI_VERSION >= 0x060324D7) // since 6.3.9431.0
1739 ULONG TerminationApcRequest : 1;
1740#endif
1741#if (NTDDI_VERSION >= 0x06032580) // since 6.3.9600.16384
1742 ULONG AutoBoostEntriesExhausted : 1;
1743#endif
1744#if (NTDDI_VERSION >= 0x06032580) // since 6.3.9600.17031
1745 ULONG KernelStackResident : 1;
1746#endif
1747#if (NTDDI_VERSION >= NTDDI_WIN10)
1751#endif
1753#if (NTDDI_VERSION < NTDDI_WIN10)
1754 ULONG ReservedFlags : 10;
1755#endif
1756 };
1758 };
1759
1760#if (NTDDI_VERSION >= NTDDI_WIN10)
1761 volatile UCHAR Tag;
1766#else
1767 ULONG Spare0;
1768#endif
1770#ifdef _WIN64
1771 ULONG Spare1; // Win 10: Spare10
1772#endif
1775
1776 union
1777 {
1779 struct
1780 {
1781 UCHAR ApcStateFill[RTL_SIZEOF_THROUGH_FIELD(KAPC_STATE, UserApcPending)]; // 32bit: 23/0x17, 64bit: 43/0x2B
1784 };
1785 };
1786
1787#ifndef _WIN64
1789 volatile UCHAR State;
1790#if (NTDDI_VERSION >= NTDDI_WIN10) // since 10.0.10074.0
1792#else
1793 CHAR NpxState;
1794#endif
1797#endif
1798
1801 union
1802 {
1805 };
1808#if (NTDDI_VERSION >= NTDDI_WIN8 /* 0x060223F0 */) // since 6.2.9200.16384
1810#endif
1812
1813 union
1814 {
1816#ifdef _WIN64
1817 struct
1818 {
1819 UCHAR WaitBlockFill4[FIELD_OFFSET(KWAIT_BLOCK, SpareLong)]; // 32bit: -, 64bit: 20/0x14
1821 };
1822 struct
1823 {
1824 UCHAR WaitBlockFill5[1 * sizeof(KWAIT_BLOCK) + FIELD_OFFSET(KWAIT_BLOCK, SpareLong)]; // 32bit: -, 64bit: 68/0x44
1825 UCHAR State;
1826#if (NTDDI_VERSION >= NTDDI_WIN10)
1827 CHAR Spare13;
1828#else
1829 CHAR NpxState;
1830#endif
1832 CHAR WaitMode;
1833 };
1834 struct
1835 {
1836 UCHAR WaitBlockFill6[2 * sizeof(KWAIT_BLOCK) + FIELD_OFFSET(KWAIT_BLOCK, SpareLong)]; // 32bit: -, 64bit: 116/0x74
1838 };
1839 struct
1840 {
1841 UCHAR WaitBlockFill7[3 * sizeof(KWAIT_BLOCK) + FIELD_OFFSET(KWAIT_BLOCK, SpareLong)]; // 32bit: -, 64bit: 164/0xA4
1842 union
1843 {
1844 struct
1845 {
1848 };
1850 };
1851 };
1852#endif
1853 struct
1854 {
1855 UCHAR WaitBlockFill8[FIELD_OFFSET(KWAIT_BLOCK, SparePtr)]; // 32bit: 20/0x14, 64bit: 40/0x28
1857 };
1858 struct
1859 {
1860 UCHAR WaitBlockFill9[1 * sizeof(KWAIT_BLOCK) + FIELD_OFFSET(KWAIT_BLOCK, SparePtr)]; // 32bit: 44/0x2C, 64bit: 88/0x58
1862 };
1863 struct
1864 {
1865 UCHAR WaitBlockFill10[2 * sizeof(KWAIT_BLOCK) + FIELD_OFFSET(KWAIT_BLOCK, SparePtr)]; // 32bit: 68/0x44, 64bit: 136/0x88
1867 };
1868 struct
1869 {
1870 UCHAR WaitBlockFill11[3 * sizeof(KWAIT_BLOCK) + FIELD_OFFSET(KWAIT_BLOCK, Object)]; // 32bit: 88/0x58, 64bit: 176/0xB0
1871#ifdef _WIN64
1872 struct _UMS_CONTROL_BLOCK* Ucb;
1873 struct _KUMS_CONTEXT_HEADER* Uch;
1874#else
1876 union
1877 {
1878 struct
1879 {
1882 };
1884 };
1885#endif
1886 };
1887 };
1888
1889#ifdef _WIN64
1890 PVOID TebMappedLowVa;
1891#endif
1893#if (NTDDI_VERSION >= 0x060223F0) // since 6.2.9200.16384
1894 union
1895 {
1897 struct
1898 {
1899 ULONG NextProcessorNumber : 31;
1900 ULONG SharedReadyQueue : 1;
1901 };
1902 };
1903 LONG QueuePriority;
1904#else
1907#endif
1909
1910 union
1911 {
1913 struct
1914 {
1915 UCHAR UserAffinityFill[FIELD_OFFSET(GROUP_AFFINITY, Reserved)]; // 32bit: 6/0x6, 64bit: 10/0x0A
1918 union
1919 {
1921 struct
1922 {
1925 };
1926 };
1930 };
1931 };
1932
1933#if (NTDDI_VERSION >= NTDDI_WIN10) // since 10.0.10240.16384
1935#endif
1936 union
1937 {
1939 struct
1940 {
1941 UCHAR AffinityFill[FIELD_OFFSET(GROUP_AFFINITY, Reserved)]; // 32bit: 6/0x6, 64bit: 10/0x0A
1945 };
1946 };
1947
1948#if (NTDDI_VERSION >= NTDDI_WIN10) // since 10.0.10240.16384
1949#ifdef _WIN64
1951#else
1953#endif
1954#else
1955 PKAPC_STATE ApcStatePointer[2];
1956#endif
1957
1958 union
1959 {
1961 struct
1962 {
1963 UCHAR SavedApcStateFill[FIELD_OFFSET(KAPC_STATE, UserApcPending) + 1]; // 32bit: 23/0x17, 64bit: 43/0x2B
1968 };
1969 };
1970
1971 union
1972 {
1974 struct
1975 {
1976 UCHAR SchedulerApcFill0[FIELD_OFFSET(KAPC, SpareByte0)]; // 32bit: 1/0x01, 64bit: 1/0x01
1978 };
1979 struct
1980 {
1981 UCHAR SchedulerApcFill1[FIELD_OFFSET(KAPC, SpareByte1)]; // 32bit: 3/0x03, 64bit: 3/0x03
1983 };
1984 struct
1985 {
1986 UCHAR SchedulerApcFill2[FIELD_OFFSET(KAPC, SpareLong0)]; // 32bit: 4/0x04, 64bit: 4/0x04
1988 };
1989 struct
1990 {
1993 };
1994 struct
1995 {
1998 };
1999 struct
2000 {
2001 UCHAR SchedulerApcFill5[FIELD_OFFSET(KAPC, Inserted) + 1]; // 32 bit:, 64 bit: 83/0x53
2004 };
2005 };
2006
2010
2011#if (NTDDI_VERSION >= NTDDI_WIN10)
2015#if _WIN64
2016 ULONG SecureThreadCookie;
2017#endif
2018#elif (NTDDI_VERSION >= NTDDI_WINBLUE) // 6.3.9431.0
2019 SINGLE_LIST_ENTRY LockEntriesFreeList;
2020#endif
2021
2022#if (NTDDI_VERSION >= NTDDI_WINBLUE /* 0x06032580 */) // since 6.3.9600.16384
2029 #if (NTDDI_VERSION >= NTDDI_WIN10_RS1)
2031 #endif
2032
2033 #if (NTDDI_VERSION >= NTDDI_WIN10) // since 10.0.10240.16384
2035 #else
2036 volatile SHORT AbReferenceCount;
2037 #endif
2038 #if (NTDDI_VERSION >= 0x06040000) // since 6.4.9841.0
2039 UCHAR AbOrphanedEntrySummary;
2040 UCHAR AbOwnedEntryCount;
2041 #else
2044 #endif
2046 union
2047 {
2049 struct
2050 {
2053 };
2054 };
2055#endif
2056
2057#if _WIN64
2058 LONG64 ReadOperationCount;
2059 LONG64 WriteOperationCount;
2060 LONG64 OtherOperationCount;
2061 LONG64 ReadTransferCount;
2062 LONG64 WriteTransferCount;
2063 LONG64 OtherTransferCount;
2064#endif
2065#if (NTDDI_VERSION >= NTDDI_WIN10) // since 10.0.10041.0
2066 struct _KSCB *QueuedScb;
2067#ifndef _WIN64
2069#endif
2070#endif
2072
2073#endif
2074
2075
2076#define ASSERT_THREAD(object) \
2077 ASSERT((((object)->Header.Type & KOBJECT_TYPE_MASK) == ThreadObject))
2078
2079//
2080// Kernel Process (KPROCESS)
2081//
2082typedef struct _KPROCESS
2083{
2086#if (NTDDI_VERSION >= NTDDI_LONGHORN)
2089#else
2091#endif
2092#if defined(_M_IX86)
2093 KGDTENTRY LdtDescriptor;
2094 KIDTENTRY Int21Descriptor;
2095#endif
2097#if defined(_M_IX86)
2098 UCHAR Iopl;
2099 UCHAR Unused;
2100#endif
2110 union
2111 {
2112 struct
2113 {
2118 };
2120 };
2128 union
2129 {
2132 };
2135#if (NTDDI_VERSION >= NTDDI_LONGHORN) // [
2137#endif // ]
2139
2140#define ASSERT_PROCESS(object) \
2141 ASSERT((((object)->Header.Type & KOBJECT_TYPE_MASK) == ProcessObject))
2142
2143//
2144// System Service Table Descriptor
2145//
2147{
2151#if defined(_IA64_)
2152 LONG TableBaseGpOffset;
2153#endif
2156
2157#if (NTDDI_VERSION >= NTDDI_WIN8)
2158//
2159// Entropy Timing State
2160//
2162{
2169
2170//
2171// Constants from ks386.inc, ksamd64.inc and ksarm.h
2172//
2173#define KENTROPY_TIMING_INTERRUPTS_PER_BUFFER 0x400
2174#define KENTROPY_TIMING_BUFFER_MASK 0x7ff
2175#define KENTROPY_TIMING_ANALYSIS 0x0
2176
2177#endif /* (NTDDI_VERSION >= NTDDI_WIN8) */
2178
2179//
2180// Exported Loader Parameter Block
2181//
2183
2184//
2185// Exported Hardware Data
2186//
2194
2195//
2196// Exported System Service Descriptor Tables
2197//
2200
2201#endif // !NTOS_MODE_USER
2202
2203#endif // _KETYPES_H
unsigned char BOOLEAN
#define VOID
Definition: acefi.h:82
static SERVICE_TABLE_ENTRYW ServiceTable[2]
Definition: eventlog.c:24
@ Reserved1
Definition: bcd.h:201
#define NTSYSAPI
Definition: ntoskrnl.h:12
Definition: bufpool.h:45
ULONG_PTR KAFFINITY
Definition: compat.h:85
enum _NT_PRODUCT_TYPE NT_PRODUCT_TYPE
enum _NT_PRODUCT_TYPE * PNT_PRODUCT_TYPE
_NT_PRODUCT_TYPE
Definition: shellpath.c:63
@ NtProductWinNt
Definition: shellpath.c:64
@ NtProductLanManNt
Definition: shellpath.c:65
@ NtProductServer
Definition: shellpath.c:66
UCHAR KIRQL
Definition: env_spec_w32.h:591
ULONG KSPIN_LOCK
Definition: env_spec_w32.h:72
KSPIN_LOCK * PKSPIN_LOCK
Definition: env_spec_w32.h:73
_Must_inspect_result_ _In_ PLARGE_INTEGER _In_ PLARGE_INTEGER _In_ ULONG _In_ PFILE_OBJECT _In_ PVOID Process
Definition: fsrtlfuncs.h:223
enum _KPROFILE_SOURCE KPROFILE_SOURCE
VOID(CALLBACK * PTIMER_APC_ROUTINE)(PVOID, ULONG, LONG)
Definition: winternl.h:2018
_KPROFILE_SOURCE
Definition: winternl.h:2122
@ ProfileFpInstructions
Definition: winternl.h:2136
@ ProfileIntegerInstructions
Definition: winternl.h:2137
@ ProfileBranchMispredictions
Definition: winternl.h:2134
@ ProfileMaximum
Definition: winternl.h:2147
@ ProfileStoreInstructions
Definition: winternl.h:2135
@ ProfileAlignmentFixup
Definition: winternl.h:2124
@ ProfilePipelineDry
Definition: winternl.h:2126
@ ProfileMemoryBarrierCycles
Definition: winternl.h:2145
@ Profile3Issue
Definition: winternl.h:2139
@ ProfileLoadLinkedIssues
Definition: winternl.h:2146
@ ProfileDcacheMisses
Definition: winternl.h:2131
@ ProfileIcacheIssues
Definition: winternl.h:2143
@ ProfileIcacheMisses
Definition: winternl.h:2132
@ ProfileTotalNonissues
Definition: winternl.h:2130
@ ProfileTime
Definition: winternl.h:2123
@ ProfileSpecialInstructions
Definition: winternl.h:2141
@ Profile2Issue
Definition: winternl.h:2138
@ ProfileTotalCycles
Definition: winternl.h:2142
@ ProfileBranchInstructions
Definition: winternl.h:2129
@ ProfilePipelineFrozen
Definition: winternl.h:2128
@ ProfileDcacheAccesses
Definition: winternl.h:2144
@ ProfileLoadInstructions
Definition: winternl.h:2127
@ ProfileTotalIssues
Definition: winternl.h:2125
@ Profile4Issue
Definition: winternl.h:2140
@ ProfileCacheMisses
Definition: winternl.h:2133
_HARDWARE_COUNTER_TYPE
Definition: pstypes.h:123
#define Unused(x)
Definition: atlwin.h:28
unsigned __int64 ULONG64
Definition: imports.h:198
#define _In_
Definition: ms_sal.h:308
__int3264 LONG_PTR
Definition: mstsclib_h.h:276
#define KernelMode
Definition: asm.h:34
#define UserMode
Definition: asm.h:35
#define NUMBER_OF_LOCK_ENTRIES
Definition: ketypes.h:1656
struct _KINTERRUPT KINTERRUPT
VOID(NTAPI * PKSYSTEM_ROUTINE)(PKSTART_ROUTINE StartRoutine, PVOID StartContext)
Definition: ketypes.h:737
ULONG NTSYSAPI KeIcacheFlushCount
Definition: cpu.c:19
struct _KNODE * PKNODE
_KPROCESS_STATE
Definition: ketypes.h:459
@ ProcessOutOfMemory
Definition: ketypes.h:461
@ ProcessInMemory
Definition: ketypes.h:460
@ ProcessOutSwap
Definition: ketypes.h:464
@ ProcessInSwap
Definition: ketypes.h:463
@ ProcessInTransition
Definition: ketypes.h:462
struct _KPROFILE KPROFILE
struct _KDPC_DATA KDPC_DATA
struct _KTHREAD_COUNTERS KTHREAD_COUNTERS
struct _KDPC_LIST KDPC_LIST
struct _COUNTER_READING * PCOUNTER_READING
struct _KEXECUTE_OPTIONS KEXECUTE_OPTIONS
struct _FIBER FIBER
struct _KDPC_LIST * PKDPC_LIST
enum _ADJUST_REASON ADJUST_REASON
struct _KEVENT_PAIR * PKEVENT_PAIR
_KOBJECTS
Definition: ketypes.h:405
@ ApcObject
Definition: ketypes.h:424
@ Spare3Object
Definition: ketypes.h:417
@ ProfileObject
Definition: ketypes.h:429
@ EventSynchronizationObject
Definition: ketypes.h:407
@ TimerNotificationObject
Definition: ketypes.h:414
@ Spare4Object
Definition: ketypes.h:418
@ DeviceQueueObject
Definition: ketypes.h:426
@ TimerSynchronizationObject
Definition: ketypes.h:415
@ Spare5Object
Definition: ketypes.h:419
@ Spare2Object
Definition: ketypes.h:416
@ MaximumKernelObject
Definition: ketypes.h:431
@ QueueObject
Definition: ketypes.h:410
@ Spare8Object
Definition: ketypes.h:422
@ Spare6Object
Definition: ketypes.h:420
@ ProcessObject
Definition: ketypes.h:409
@ SemaphoreObject
Definition: ketypes.h:411
@ DpcObject
Definition: ketypes.h:425
@ EventNotificationObject
Definition: ketypes.h:406
@ GateObject
Definition: ketypes.h:413
@ ThreadObject
Definition: ketypes.h:412
@ ThreadedDpcObject
Definition: ketypes.h:430
@ Spare7Object
Definition: ketypes.h:421
@ MutantObject
Definition: ketypes.h:408
@ InterruptObject
Definition: ketypes.h:428
@ EventPairObject
Definition: ketypes.h:427
@ Spare9Object
Definition: ketypes.h:423
struct _PP_LOOKASIDE_LIST * PPP_LOOKASIDE_LIST
ULONG_PTR NTSYSAPI KiBugCheckData[]
Definition: bug.c:31
struct _KEVENT_PAIR KEVENT_PAIR
struct _KTHREAD_COUNTERS * PKTHREAD_COUNTERS
enum _KCONTINUE_STATUS KCONTINUE_STATUS
struct _RTL_RB_TREE RTL_RB_TREE
FIXME: should move to rtltypes.h, but we can't include it here.
struct _KLOCK_ENTRY KLOCK_ENTRY
struct _KDPC_DATA * PKDPC_DATA
struct _KTHREAD KTHREAD
struct _KTIMER_TABLE KTIMER_TABLE
ULONG NTSYSAPI KiDmaIoCoherency
Definition: cpu.c:29
struct _PP_LOOKASIDE_LIST PP_LOOKASIDE_LIST
_VDMSERVICECLASS
Definition: ketypes.h:471
@ VdmSetLdtEntries
Definition: ketypes.h:482
@ VdmSetProcessLdtInfo
Definition: ketypes.h:483
@ VdmQueryDir
Definition: ketypes.h:478
@ VdmSetInt21Handler
Definition: ketypes.h:477
@ VdmAdlibEmulation
Definition: ketypes.h:484
@ VdmQueueInterrupt
Definition: ketypes.h:473
@ VdmDelayInterrupt
Definition: ketypes.h:474
@ VdmPrinterDirectIoClose
Definition: ketypes.h:480
@ VdmPrinterDirectIoOpen
Definition: ketypes.h:479
@ VdmPrinterInitialize
Definition: ketypes.h:481
@ VdmFeatures
Definition: ketypes.h:476
@ VdmPMCliControl
Definition: ketypes.h:485
@ VdmInitialize
Definition: ketypes.h:475
@ VdmQueryVdmProcess
Definition: ketypes.h:486
@ VdmStartExecution
Definition: ketypes.h:472
enum _KTHREAD_STATE KTHREAD_STATE
struct _COUNTER_READING COUNTER_READING
struct _KLOCK_ENTRY * PKLOCK_ENTRY
struct _FIBER * PFIBER
ULONG NTSYSAPI KeMaximumIncrement
Definition: clock.c:20
struct _KTIMER_TABLE_ENTRY * PKTIMER_TABLE_ENTRY
struct _KPROCESS KPROCESS
VOID(NTAPI * PKRUNDOWN_ROUTINE)(IN struct _KAPC *Apc)
Definition: ketypes.h:750
struct _KLOCK_ENTRY_LOCK_STATE KLOCK_ENTRY_LOCK_STATE
union _KWAIT_STATUS_REGISTER KWAIT_STATUS_REGISTER
_KTHREAD_STATE
Definition: ketypes.h:387
@ Terminated
Definition: ketypes.h:392
@ Ready
Definition: ketypes.h:389
@ Running
Definition: ketypes.h:390
@ GateWait
Definition: ketypes.h:397
@ Standby
Definition: ketypes.h:391
@ DeferredReady
Definition: ketypes.h:395
@ Waiting
Definition: ketypes.h:393
@ Transition
Definition: ketypes.h:394
@ Initialized
Definition: ketypes.h:388
_KAPC_ENVIRONMENT
Definition: ketypes.h:766
@ AttachedApcEnvironment
Definition: ketypes.h:768
@ OriginalApcEnvironment
Definition: ketypes.h:767
@ CurrentApcEnvironment
Definition: ketypes.h:769
@ InsertApcEnvironment
Definition: ketypes.h:770
struct _KPROFILE * PKPROFILE
struct _KTIMER_TABLE * PKTIMER_TABLE
struct _KENTROPY_TIMING_STATE * PKENTROPY_TIMING_STATE
enum _KPROCESS_STATE KPROCESS_STATE
enum _KTHREAD_STATE * PKTHREAD_STATE
#define SSDT_MAX_ENTRIES
Definition: ketypes.h:100
struct _KNODE KNODE
enum _KOBJECTS KOBJECTS
struct _KSERVICE_TABLE_DESCRIPTOR KSERVICE_TABLE_DESCRIPTOR
BOOLEAN NTSYSAPI KiEnableTimerWatchdog
Definition: timerobj.c:20
enum _KPROCESS_STATE * PKPROCESS_STATE
KSERVICE_TABLE_DESCRIPTOR NTSYSAPI KeServiceDescriptorTable[SSDT_MAX_ENTRIES]
Definition: procobj.c:23
enum _VDMSERVICECLASS VDMSERVICECLASS
struct _GETSETCONTEXT * PGETSETCONTEXT
ULONG NTSYSAPI KeDcacheFlushCount
Definition: cpu.c:20
_KCONTINUE_STATUS
Definition: ketypes.h:448
@ ContinueNextProcessor
Definition: ketypes.h:452
@ ContinueProcessorReselected
Definition: ketypes.h:451
@ ContinueError
Definition: ketypes.h:449
@ ContinueSuccess
Definition: ketypes.h:450
#define DISPATCH_LENGTH
Definition: ketypes.h:174
struct _KEXECUTE_OPTIONS * PKEXECUTE_OPTIONS
struct _KSERVICE_TABLE_DESCRIPTOR * PKSERVICE_TABLE_DESCRIPTOR
_ADJUST_REASON
Definition: ketypes.h:438
@ AdjustUnwait
Definition: ketypes.h:440
@ AdjustNone
Definition: ketypes.h:439
@ AdjustBoost
Definition: ketypes.h:441
struct _KENTROPY_TIMING_STATE KENTROPY_TIMING_STATE
struct _LOADER_PARAMETER_BLOCK NTSYSAPI * KeLoaderBlock
Definition: krnlinit.c:29
union _KWAIT_STATUS_REGISTER * PKWAIT_STATUS_REGISTER
struct _GETSETCONTEXT GETSETCONTEXT
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:754
struct _SYNCH_COUNTERS SYNCH_COUNTERS
KSERVICE_TABLE_DESCRIPTOR NTSYSAPI KeServiceDescriptorTableShadow[SSDT_MAX_ENTRIES]
Definition: procobj.c:24
struct _SYNCH_COUNTERS * PSYNCH_COUNTERS
VOID(NTAPI * PKNORMAL_ROUTINE)(IN PVOID NormalContext OPTIONAL, IN PVOID SystemArgument1 OPTIONAL, IN PVOID SystemArgument2 OPTIONAL)
Definition: ketypes.h:744
struct _RTL_RB_TREE * PRTL_RB_TREE
ULONG NTSYSAPI KeMinimumIncrement
Definition: clock.c:21
struct _KTIMER_TABLE_ENTRY KTIMER_TABLE_ENTRY
enum _KAPC_ENVIRONMENT KAPC_ENVIRONMENT
struct _KLOCK_ENTRY_LOCK_STATE * PKLOCK_ENTRY_LOCK_STATE
#define DECLSPEC_ALIGN(x)
Definition: ntbasedef.h:251
#define RTL_SIZEOF_THROUGH_FIELD(type, field)
Definition: ntbasedef.h:672
enum _TIMER_TYPE TIMER_TYPE
_EVENT_TYPE
@ NotificationEvent
@ SynchronizationEvent
_WAIT_TYPE
@ WaitAll
@ WaitAny
enum _EVENT_TYPE EVENT_TYPE
enum _WAIT_TYPE WAIT_TYPE
_TIMER_TYPE
@ SynchronizationTimer
@ NotificationTimer
PVOID *typedef PHANDLE
Definition: ntsecpkg.h:455
short SHORT
Definition: pedump.c:59
long LONG
Definition: pedump.c:60
unsigned short USHORT
Definition: pedump.c:61
enum _KINTERRUPT_MODE KINTERRUPT_MODE
signed char SCHAR
Definition: sqltypes.h:14
enum _HARDWARE_COUNTER_TYPE Type
Definition: ketypes.h:1014
ULONG64 Start
Definition: ketypes.h:1016
ULONG64 Total
Definition: ketypes.h:1017
PVOID StackLimit
Definition: ketypes.h:151
CONTEXT FiberContext
Definition: ketypes.h:153
PVOID DeallocationStack
Definition: ketypes.h:152
PVOID Wx86Tib
Definition: ketypes.h:155
ULONG GuaranteedStackBytes
Definition: ketypes.h:158
PVOID StackBase
Definition: ketypes.h:150
ULONG TebFlags
Definition: ketypes.h:159
struct _ACTIVATION_CONTEXT_STACK * ActivationContextStackPointer
Definition: ketypes.h:156
struct _EXCEPTION_REGISTRATION_RECORD * ExceptionList
Definition: ketypes.h:149
PVOID FiberData
Definition: ketypes.h:148
PVOID FlsData
Definition: ketypes.h:157
CONTEXT Context
Definition: ketypes.h:908
KPROCESSOR_MODE Mode
Definition: ketypes.h:907
KEVENT Event
Definition: ketypes.h:906
Definition: ketypes.h:547
PVOID NormalContext
Definition: ketypes.h:562
ULONG DpcCount
Definition: ketypes.h:860
ULONG_PTR DpcLock
Definition: ketypes.h:854
volatile ULONG DpcQueueDepth
Definition: ketypes.h:858
PKDPC ActiveDpc
Definition: ketypes.h:862
KDPC_LIST DpcList
Definition: ketypes.h:850
SINGLE_LIST_ENTRY ListHead
Definition: ketypes.h:790
SINGLE_LIST_ENTRY * LastEntry
Definition: ketypes.h:791
Definition: ketypes.h:699
CSHORT Type
Definition: ketypes.h:976
KEVENT HighEvent
Definition: ketypes.h:979
CSHORT Size
Definition: ketypes.h:977
KEVENT LowEvent
Definition: ketypes.h:978
UCHAR DisableThunkEmulation
Definition: ketypes.h:989
UCHAR ExecuteDisable
Definition: ketypes.h:987
UCHAR ExecuteEnable
Definition: ketypes.h:988
UCHAR ExecuteDispatchEnable
Definition: ketypes.h:991
UCHAR ImageDispatchEnable
Definition: ketypes.h:992
KIRQL SynchronizeIrql
Definition: ketypes.h:950
CCHAR Number
Definition: ketypes.h:953
ULONG ServiceCount
Definition: ketypes.h:959
PKINTERRUPT_ROUTINE DispatchAddress
Definition: ketypes.h:947
ULONG DispatchCount
Definition: ketypes.h:960
CSHORT Size
Definition: ketypes.h:936
ULONG DispatchCode[DISPATCH_LENGTH]
Definition: ketypes.h:968
BOOLEAN Connected
Definition: ketypes.h:952
KINTERRUPT_POLARITY Polarity
Definition: ketypes.h:957
KINTERRUPT_MODE Mode
Definition: ketypes.h:955
BOOLEAN ShareVector
Definition: ketypes.h:954
ULONG Vector
Definition: ketypes.h:948
PKSERVICE_ROUTINE MessageServiceRoutine
Definition: ketypes.h:940
KSPIN_LOCK SpinLock
Definition: ketypes.h:944
KIRQL Irql
Definition: ketypes.h:949
BOOLEAN FloatingSave
Definition: ketypes.h:951
LIST_ENTRY InterruptListEntry
Definition: ketypes.h:937
ULONG MessageIndex
Definition: ketypes.h:941
ULONG TickCount
Definition: ketypes.h:945
PKSPIN_LOCK ActualLock
Definition: ketypes.h:946
CSHORT Type
Definition: ketypes.h:935
ULONGLONG Rsvd1
Definition: ketypes.h:962
PKSERVICE_ROUTINE ServiceRoutine
Definition: ketypes.h:938
PVOID ServiceContext
Definition: ketypes.h:943
Definition: ketypes.h:1043
ULONG_PTR Busy
Definition: ketypes.h:1053
ULONG_PTR CrossThreadReleasable
Definition: ketypes.h:1049
ULONG_PTR InTree
Definition: ketypes.h:1055
ULONG_PTR Reserved
Definition: ketypes.h:1054
PVOID LockState
Definition: ketypes.h:1057
ULONG SessionId
Definition: ketypes.h:1064
PVOID SessionState
Definition: ketypes.h:1061
Definition: ketypes.h:1073
KLOCK_ENTRY_LOCK_STATE LockState
Definition: ketypes.h:1136
UCHAR Spare0
Definition: ketypes.h:1092
UCHAR AcquiredByte
Definition: ketypes.h:1097
PVOID SessionState
Definition: ketypes.h:1149
UCHAR WaitingBit
Definition: ketypes.h:1091
USHORT IoBoost
Definition: ketypes.h:1182
RTL_RB_TREE WaiterTree
Definition: ketypes.h:1165
ULONG SessionId
Definition: ketypes.h:1152
USHORT IoQoSWaiterCount
Definition: ketypes.h:1188
USHORT IoQoSBoost
Definition: ketypes.h:1186
ULONG_PTR EntryLock
Definition: ketypes.h:1169
volatile UCHAR CrossThreadReleasableAndBusyByte
Definition: ketypes.h:1141
RTL_RB_TREE OwnerTree
Definition: ketypes.h:1164
ULONG AllFlags
Definition: ketypes.h:1115
UCHAR HeadNodeBit
Definition: ketypes.h:1105
SINGLE_LIST_ENTRY FreeListEntry
Definition: ketypes.h:1077
UCHAR IoQoSWaiter
Definition: ketypes.h:1107
ULONG EntryFlags
Definition: ketypes.h:1082
UCHAR AcquiredBit
Definition: ketypes.h:1098
UCHAR InTreeByte
Definition: ketypes.h:1146
USHORT CpuBoostsBitmap
Definition: ketypes.h:1181
PVOID LockUnsafe
Definition: ketypes.h:1137
UCHAR ThreadLocalFlags
Definition: ketypes.h:1088
UCHAR IoPriorityBit
Definition: ketypes.h:1106
CHAR CpuPriorityKey
Definition: ketypes.h:1167
USHORT AllBoosts
Definition: ketypes.h:1175
UCHAR Spare1
Definition: ketypes.h:1108
ULONG StaticState
Definition: ketypes.h:1114
UCHAR EntryOffset
Definition: ketypes.h:1085
RTL_BALANCED_NODE TreeNode
Definition: ketypes.h:1076
UCHAR CrossThreadFlags
Definition: ketypes.h:1102
USHORT IoNormalPriorityWaiterCount
Definition: ketypes.h:1187
UCHAR Removable
Definition: ketypes.h:892
UCHAR Fill
Definition: ketypes.h:893
SLIST_HEADER DeadStackList
Definition: ketypes.h:885
UCHAR Seed
Definition: ketypes.h:889
ULONG_PTR FreeCount[2]
Definition: ketypes.h:896
ULONG MmShiftedColor
Definition: ketypes.h:895
struct _SINGLE_LIST_ENTRY * PfnDeferredList
Definition: ketypes.h:897
struct _KNODE::_flags Flags
UCHAR NodeNumber
Definition: ketypes.h:890
KAFFINITY ProcessorMask
Definition: ketypes.h:887
SLIST_HEADER PfnDereferenceSListHead
Definition: ketypes.h:886
UCHAR Color
Definition: ketypes.h:888
DISPATCHER_HEADER Header
Definition: ketypes.h:2084
SCHAR BasePriority
Definition: ketypes.h:2121
SCHAR QuantumReset
Definition: ketypes.h:2122
LIST_ENTRY ProcessListEntry
Definition: ketypes.h:2134
SINGLE_LIST_ENTRY SwapListEntry
Definition: ketypes.h:2105
ULONG StackCount
Definition: ketypes.h:2133
UCHAR ThreadSeed
Definition: ketypes.h:2124
UCHAR IdealNode
Definition: ketypes.h:2126
LONG DisableQuantum
Definition: ketypes.h:2116
LONG DisableBoost
Definition: ketypes.h:2115
USHORT IopmOffset
Definition: ketypes.h:2096
LONG ProcessFlags
Definition: ketypes.h:2119
UCHAR ExecuteOptions
Definition: ketypes.h:2131
ULONG_PTR Unused0
Definition: ketypes.h:2088
PVOID VdmTrapcHandler
Definition: ketypes.h:2106
volatile KAFFINITY ActiveProcessors
Definition: ketypes.h:2101
ULONG KernelTime
Definition: ketypes.h:2102
LONG AutoAlignment
Definition: ketypes.h:2114
ULONG_PTR DirectoryTableBase
Definition: ketypes.h:2087
UCHAR Visited
Definition: ketypes.h:2127
ULONG UserTime
Definition: ketypes.h:2103
ULONGLONG CycleTime
Definition: ketypes.h:2136
UCHAR State
Definition: ketypes.h:2123
KAFFINITY Affinity
Definition: ketypes.h:2109
LIST_ENTRY ProfileListHead
Definition: ketypes.h:2085
LONG ReservedFlags
Definition: ketypes.h:2117
UCHAR PowerState
Definition: ketypes.h:2125
KEXECUTE_OPTIONS Flags
Definition: ketypes.h:2130
LIST_ENTRY ThreadListHead
Definition: ketypes.h:2107
LIST_ENTRY ReadyListHead
Definition: ketypes.h:2104
KSPIN_LOCK ProcessLock
Definition: ketypes.h:2108
struct _KPROCESS * Process
Definition: ketypes.h:919
CSHORT Size
Definition: ketypes.h:917
ULONG BucketShift
Definition: ketypes.h:922
PVOID RangeLimit
Definition: ketypes.h:921
KPROFILE_SOURCE Source
Definition: ketypes.h:926
PVOID Buffer
Definition: ketypes.h:923
BOOLEAN Started
Definition: ketypes.h:927
ULONG_PTR Segment
Definition: ketypes.h:924
PVOID RangeBase
Definition: ketypes.h:920
CSHORT Type
Definition: ketypes.h:916
KAFFINITY Affinity
Definition: ketypes.h:925
LIST_ENTRY ProfileListEntry
Definition: ketypes.h:918
LONG High1Time
Definition: ketypes.h:930
LONG High2Time
Definition: ketypes.h:931
ULONG LowPart
Definition: ketypes.h:929
ULONG64 CycleTimeBias
Definition: ketypes.h:1026
ULONG64 WaitReasonBitMap
Definition: ketypes.h:1022
ULONG64 HardwareCounters
Definition: ketypes.h:1027
struct _THREAD_PERFORMANCE_DATA * UserData
Definition: ketypes.h:1023
COUNTER_READING HwCounter[16]
Definition: ketypes.h:1028
ULONG ContextSwitches
Definition: ketypes.h:1025
ULONG ApcInterruptRequest
Definition: ketypes.h:1703
PKTRAP_FRAME TrapFrame
Definition: ketypes.h:1774
PVOID InitialStack
Definition: ketypes.h:1664
ULONG SystemCallNumber
Definition: ketypes.h:1769
PKQUEUE Queue
Definition: ketypes.h:1806
ULONG UserIdealProcessor
Definition: ketypes.h:1783
UCHAR AdjustReason
Definition: ketypes.h:1928
UCHAR UnusualBoost
Definition: ketypes.h:1924
ULONG CurrentRunTime
Definition: ketypes.h:1673
UCHAR SchedulerApcFill4[FIELD_OFFSET(KAPC, SystemArgument2)]
Definition: ketypes.h:1996
GROUP_AFFINITY Affinity
Definition: ketypes.h:1938
ULONG IdealProcessor
Definition: ketypes.h:1944
ULONG ThreadFlagsSpare
Definition: ketypes.h:1750
ULONG UserStackWalkActive
Definition: ketypes.h:1702
ULONG DisableBoost
Definition: ketypes.h:1725
volatile INT_PTR WaitStatus
Definition: ketypes.h:1799
UCHAR ForegroundBoost
Definition: ketypes.h:1923
ULONG ProcessReadyQueue
Definition: ketypes.h:1695
ULONG ChargeOnlyGroup
Definition: ketypes.h:1732
ULONG QuantumDonation
Definition: ketypes.h:1728
KPROCESSOR_MODE WaitMode
Definition: ketypes.h:1796
UCHAR CallbackNestingLevel
Definition: ketypes.h:2002
LIST_ENTRY WaitListEntry
Definition: ketypes.h:1803
ULONG FreezeCount
Definition: ketypes.h:1737
SHORT SListFaultCount
Definition: ketypes.h:1967
ULONG ReservedStackInUse
Definition: ketypes.h:1712
LONG AbCompletedIoQoSBoostCount
Definition: ketypes.h:2030
CHAR PriorityDecrement
Definition: ketypes.h:1920
ULONG QuantumEndMigrate
Definition: ketypes.h:1704
BOOLEAN Running
Definition: ketypes.h:1679
KAPC_STATE SavedApcState
Definition: ketypes.h:1960
ULONG_PTR AffinityVersion
Definition: ketypes.h:1934
UCHAR WaitBlockFill10[2 *sizeof(KWAIT_BLOCK)+FIELD_OFFSET(KWAIT_BLOCK, SparePtr)]
Definition: ketypes.h:1865
ULONG Reserved
Definition: ketypes.h:1715
ULONG ExpectedRunTime
Definition: ketypes.h:1674
ULONG DisableQuantum
Definition: ketypes.h:1731
ULONG64 QuantumTarget
Definition: ketypes.h:1663
PVOID Win32Thread
Definition: ketypes.h:1866
ULONG_PTR InGlobalForegroundList
Definition: ketypes.h:2052
ULONG SystemAffinityActive
Definition: ketypes.h:1697
BOOLEAN Alerted[MaximumMode]
Definition: ketypes.h:1680
volatile ULONG64 CycleTime
Definition: ketypes.h:1668
ULONG ForegroundLossTime
Definition: ketypes.h:2045
LIST_ENTRY GlobalForegroundListEntry
Definition: ketypes.h:2048
UCHAR AbFreeEntryCount
Definition: ketypes.h:2042
struct _KSCB * QueuedScb
Definition: ketypes.h:2066
LONG ThreadFlags
Definition: ketypes.h:1757
ULONG CombinedApcDisable
Definition: ketypes.h:1883
ULONG Alertable
Definition: ketypes.h:1698
PKPRCB WaitPrcb
Definition: ketypes.h:1992
KSPIN_LOCK ThreadLock
Definition: ketypes.h:1667
volatile LONG AbCompletedIoBoostCount
Definition: ketypes.h:2028
UCHAR ApcStateFill[RTL_SIZEOF_THROUGH_FIELD(KAPC_STATE, UserApcPending)]
Definition: ketypes.h:1781
PVOID FirstArgument
Definition: ketypes.h:1773
ULONG CalloutActive
Definition: ketypes.h:1709
SCHAR Priority
Definition: ketypes.h:1782
ULONG UserAffinitySet
Definition: ketypes.h:1726
SHORT SpecialApcDisable
Definition: ketypes.h:1881
ULONG CommitFailTerminateRequest
Definition: ketypes.h:1748
UCHAR SuspendApcFill3[FIELD_OFFSET(KAPC, SystemArgument1)]
Definition: ketypes.h:1991
UCHAR ApcStateIndex
Definition: ketypes.h:1942
PVOID SListFaultAddress
Definition: ketypes.h:1662
USHORT Spare20
Definition: ketypes.h:2014
UCHAR SchedulerApcFill0[FIELD_OFFSET(KAPC, SpareByte0)]
Definition: ketypes.h:1976
PVOID Teb
Definition: ketypes.h:1807
struct _KTHREAD_COUNTERS * ThreadCounters
Definition: ketypes.h:1856
SINGLE_LIST_ENTRY SwapListEntry
Definition: ketypes.h:1804
CHAR PreviousMode
Definition: ketypes.h:1916
KLOCK_ENTRY LockEntries[NUMBER_OF_LOCK_ENTRIES]
Definition: ketypes.h:2023
PVOID ServiceTable
Definition: ketypes.h:1671
ULONG QueueDeferPreemption
Definition: ketypes.h:1734
UCHAR SchedulerApcFill5[FIELD_OFFSET(KAPC, Inserted)+1]
Definition: ketypes.h:2001
ULONG64 NpxState
Definition: ketypes.h:2068
ULONG AutoAlignment
Definition: ketypes.h:1724
ULONG AutoBoostActive
Definition: ketypes.h:1689
ULONG ReadyTransition
Definition: ketypes.h:1691
ULONG ScbReadyQueue
Definition: ketypes.h:1710
GROUP_AFFINITY UserAffinity
Definition: ketypes.h:1912
PVOID KernelStack
Definition: ketypes.h:1675
ULONG GuiThread
Definition: ketypes.h:1730
ULONG DeferredProcessor
Definition: ketypes.h:1906
ULONG KernelTime
Definition: ketypes.h:1987
ULONG Spare15
Definition: ketypes.h:1952
UCHAR ResourceIndex
Definition: ketypes.h:1977
LIST_ENTRY ThreadListEntry
Definition: ketypes.h:2008
UCHAR SystemHeteroCpuPolicy
Definition: ketypes.h:1762
ULONG UmsPerformingSyscall
Definition: ketypes.h:1713
CHAR BasePriority
Definition: ketypes.h:1917
ULONG WaitTime
Definition: ketypes.h:1875
UCHAR UserHeteroCpuPolicy
Definition: ketypes.h:1763
UCHAR SchedulerApcFill2[FIELD_OFFSET(KAPC, SpareLong0)]
Definition: ketypes.h:1986
UCHAR AffinityFill[FIELD_OFFSET(GROUP_AFFINITY, Reserved)]
Definition: ketypes.h:1941
ULONG PriorityFloorSummary
Definition: ketypes.h:2027
UCHAR QuantumReset
Definition: ketypes.h:1982
PVOID LegoData
Definition: ketypes.h:1997
UCHAR WaitReason
Definition: ketypes.h:1964
volatile SHORT KeReferenceCount
Definition: ketypes.h:2034
PXSTATE_SAVE XStateSave
Definition: ketypes.h:1861
PVOID StackBase
Definition: ketypes.h:1666
ULONG SystemThread
Definition: ketypes.h:1707
ULONG NextProcessor
Definition: ketypes.h:1905
ULONG ExplicitIdealProcessor
Definition: ketypes.h:1736
ULONG EnableStackSwap
Definition: ketypes.h:1729
UCHAR WaitBlockFill8[FIELD_OFFSET(KWAIT_BLOCK, SparePtr)]
Definition: ketypes.h:1855
LONG MiscFlags
Definition: ketypes.h:1717
ULONG TimerActive
Definition: ketypes.h:1706
UCHAR AbWaitEntryCount
Definition: ketypes.h:2013
CHAR AdjustIncrement
Definition: ketypes.h:1929
volatile ULONG HighCycleTime
Definition: ketypes.h:1670
LIST_ENTRY MutantListHead
Definition: ketypes.h:2009
UCHAR SchedulerApcFill1[FIELD_OFFSET(KAPC, SpareByte1)]
Definition: ketypes.h:1981
UCHAR PriorityFloorCounts[16]
Definition: ketypes.h:2026
UCHAR ExplicitSystemHeteroCpuPolicy
Definition: ketypes.h:1764
volatile UCHAR Tag
Definition: ketypes.h:1761
UCHAR AbEntrySummary
Definition: ketypes.h:2012
SHORT KernelApcDisable
Definition: ketypes.h:1880
ULONG AlertedByThreadId
Definition: ketypes.h:1727
SINGLE_LIST_ENTRY IoSelfBoostsEntry
Definition: ketypes.h:2025
KEVENT SuspendEvent
Definition: ketypes.h:2007
CHAR Spare12
Definition: ketypes.h:1791
SINGLE_LIST_ENTRY PropagateBoostsEntry
Definition: ketypes.h:2024
DISPATCHER_HEADER Header
Definition: ketypes.h:1661
KWAIT_STATUS_REGISTER WaitRegister
Definition: ketypes.h:1678
PKWAIT_BLOCK WaitBlockList
Definition: ketypes.h:1800
ULONG ProcessStackCountDecremented
Definition: ketypes.h:1749
ULONG ContextSwitches
Definition: ketypes.h:1788
ULONG64 RelativeTimerBias
Definition: ketypes.h:1809
ULONG DisableStackCheck
Definition: ketypes.h:1714
ULONG EtwStackTraceApcInserted
Definition: ketypes.h:1752
UCHAR SavedApcStateFill[FIELD_OFFSET(KAPC_STATE, UserApcPending)+1]
Definition: ketypes.h:1963
UCHAR WaitBlockFill9[1 *sizeof(KWAIT_BLOCK)+FIELD_OFFSET(KWAIT_BLOCK, SparePtr)]
Definition: ketypes.h:1860
CHAR Saturation
Definition: ketypes.h:1966
XSAVE_FORMAT * StateSaveArea
Definition: ketypes.h:1676
CHAR SuspendCount
Definition: ketypes.h:1965
ULONG DeferPreemption
Definition: ketypes.h:1733
UCHAR Spare0
Definition: ketypes.h:1765
KTIMER Timer
Definition: ketypes.h:1811
UCHAR WaitBlockFill11[3 *sizeof(KWAIT_BLOCK)+FIELD_OFFSET(KWAIT_BLOCK, Object)]
Definition: ketypes.h:1870
volatile VOID * StackLimit
Definition: ketypes.h:1665
LIST_ENTRY QueueListEntry
Definition: ketypes.h:1892
ULONG ProcessDetachActive
Definition: ketypes.h:1708
KAPC_STATE ApcState
Definition: ketypes.h:1778
struct _KSCHEDULING_GROUP * SchedulingGroup
Definition: ketypes.h:1677
PKPROCESS Process
Definition: ketypes.h:1908
KIRQL WaitIrql
Definition: ketypes.h:1795
KAPC SchedulerApc
Definition: ketypes.h:1973
UCHAR Preempted
Definition: ketypes.h:1927
ULONG UserTime
Definition: ketypes.h:2003
ULONG UmsDirectedSwitchEnable
Definition: ketypes.h:1705
ULONG ApcQueueable
Definition: ketypes.h:1711
SINGLE_LIST_ENTRY ForegroundDpcStackListEntry
Definition: ketypes.h:2051
volatile UCHAR State
Definition: ketypes.h:1789
ULONG WaitNext
Definition: ketypes.h:1696
UCHAR UserAffinityFill[FIELD_OFFSET(GROUP_AFFINITY, Reserved)]
Definition: ketypes.h:1915
ULONG ForceDeferSchedule
Definition: ketypes.h:1735
UCHAR WaitBlockCount
Definition: ketypes.h:1943
Definition: ketypes.h:774
KSPIN_LOCK Lock
Definition: ketypes.h:776
ULARGE_INTEGER Time
Definition: ketypes.h:779
LIST_ENTRY Entry
Definition: ketypes.h:778
KTIMER_TABLE_ENTRY TimerEntries[256]
Definition: ketypes.h:785
PKTIMER TimerExpiry[64]
Definition: ketypes.h:784
union _KUSER_SHARED_DATA::@4127 DUMMYUNIONNAME3
struct _KUSER_SHARED_DATA::@4126::@4129 DUMMYSTRUCTNAME2
ULONG LangGenerationCount
Definition: ketypes.h:1372
ULONG CookiePad[1]
Definition: ketypes.h:1356
XSTATE_CONFIGURATION XState
Definition: ketypes.h:1389
BOOLEAN ProductTypeIsValid
Definition: ketypes.h:1286
ULONG DbgSystemDllRelocated
Definition: ketypes.h:1330
ULONG DbgInstallerDetectEnabled
Definition: ketypes.h:1329
volatile KSYSTEM_TIME SystemTime
Definition: ketypes.h:1275
ULONG DbgSEHValidationEnabled
Definition: ketypes.h:1332
ULONG TickCountLowDeprecated
Definition: ketypes.h:1272
NT_PRODUCT_TYPE NtProductType
Definition: ketypes.h:1285
ULONG SystemCallReturn
Definition: ketypes.h:1342
union _KUSER_SHARED_DATA::@4126 DUMMYUNIONNAME2
ULONGLONG SystemDllNativeRelocation
Definition: ketypes.h:1386
ULONGLONG TestRetInstruction
Definition: ketypes.h:1340
volatile ULONG64 TscQpcBias
Definition: ketypes.h:1380
volatile ULONG ActiveConsoleId
Definition: ketypes.h:1301
BOOLEAN KdDebuggerEnabled
Definition: ketypes.h:1297
ULONG NtMajorVersion
Definition: ketypes.h:1287
union _KUSER_SHARED_DATA::@4125 DUMMYUNIONNAME
volatile ULONG64 InterruptTimeBias
Definition: ketypes.h:1377
ULONG TickCountMultiplier
Definition: ketypes.h:1273
LONGLONG ConsoleSessionForegroundProcessId
Definition: ketypes.h:1357
ULONG Wow64SharedInformation[MAX_WOW64_SHARED_ENTRIES]
Definition: ketypes.h:1360
ULONG DbgElevationEnabled
Definition: ketypes.h:1327
ULONG SharedDataFlags
Definition: ketypes.h:1323
UCHAR NXSupportPolicy
Definition: ketypes.h:1299
ULONGLONG Reserved5
Definition: ketypes.h:1376
BOOLEAN ProcessorFeatures[PROCESSOR_FEATURE_MAX]
Definition: ketypes.h:1289
ULONG LastSystemRITEventTickCount
Definition: ketypes.h:1304
ULONG NumberOfPhysicalPages
Definition: ketypes.h:1305
volatile ULONG64 TickCountQuad
Definition: ketypes.h:1347
volatile ULONG AppCompatFlag
Definition: ketypes.h:1385
volatile KSYSTEM_TIME TickCount
Definition: ketypes.h:1346
volatile ULONG AitSamplingValue
Definition: ketypes.h:1384
ULONG LargePageMinimum
Definition: ketypes.h:1283
volatile KSYSTEM_TIME InterruptTime
Definition: ketypes.h:1274
struct _KUSER_SHARED_DATA::@4125::@4128 DUMMYSTRUCTNAME
ULONG CryptoExponent
Definition: ketypes.h:1281
BOOLEAN SafeBootMode
Definition: ketypes.h:1306
volatile ULONG TimeSlip
Definition: ketypes.h:1292
UCHAR TscQpcPad[2]
Definition: ketypes.h:1318
LARGE_INTEGER SystemExpirationDate
Definition: ketypes.h:1295
ULONG NtMinorVersion
Definition: ketypes.h:1288
WCHAR NtSystemRoot[260]
Definition: ketypes.h:1279
USHORT ImageNumberHigh
Definition: ketypes.h:1278
ULONG ReservedTickCountOverlay[3]
Definition: ketypes.h:1350
ULONG XStatePad[1]
Definition: ketypes.h:1388
ULONG MaxStackTraceDepth
Definition: ketypes.h:1280
ULONG DbgErrorPortPresent
Definition: ketypes.h:1326
ULONG DbgVirtEnabled
Definition: ketypes.h:1328
ULONG ImageFileExecutionOptions
Definition: ketypes.h:1370
ULONG Reserved2[7]
Definition: ketypes.h:1284
volatile ULONG ActiveProcessorCount
Definition: ketypes.h:1381
UCHAR TscQpcSpareFlag
Definition: ketypes.h:1314
ULONG ComPlusPackage
Definition: ketypes.h:1303
ULONG TickCountPad[1]
Definition: ketypes.h:1351
ALTERNATIVE_ARCHITECTURE_TYPE AlternativeArchitecture
Definition: ketypes.h:1293
volatile USHORT ActiveGroupCount
Definition: ketypes.h:1382
ULONG SystemDllWowRelocation
Definition: ketypes.h:1387
volatile ULONG DismountCount
Definition: ketypes.h:1302
ULONG AltArchitecturePad[1]
Definition: ketypes.h:1294
volatile KSYSTEM_TIME TimeZoneBias
Definition: ketypes.h:1276
ULONG DataFlagsPad[1]
Definition: ketypes.h:1339
ULONG DbgDynProcessorEnabled
Definition: ketypes.h:1331
ULONGLONG SystemCallPad[3]
Definition: ketypes.h:1343
USHORT UserModeGlobalLogger[16]
Definition: ketypes.h:1364
USHORT ImageNumberLow
Definition: ketypes.h:1277
Definition: typedefs.h:120
struct _GENERAL_LOOKASIDE * P
Definition: ketypes.h:871
struct _GENERAL_LOOKASIDE * L
Definition: ketypes.h:872
FIXME: should move to rtltypes.h, but we can't include it here.
Definition: ketypes.h:1035
PRTL_BALANCED_NODE Root
Definition: ketypes.h:1036
PRTL_BALANCED_NODE Min
Definition: ketypes.h:1037
Definition: ntbasedef.h:628
ULONG ExTryToAcqExclusiveAcquires
Definition: ketypes.h:837
ULONG ExTryToAcqExclusiveAttempts
Definition: ketypes.h:836
ULONG ExInitializeResourceCount
Definition: ketypes.h:802
ULONG ExecutiveResourceReleaseSharedCount
Definition: ketypes.h:808
ULONG ExAcqResSharedAcquiresExclusive
Definition: ketypes.h:816
ULONG ExAcqResExclusiveNotAcquires
Definition: ketypes.h:814
ULONG ExAcqResSharedStarveExclusiveNotAcquires
Definition: ketypes.h:826
ULONG ExSetResOwnerPointerSharedOld
Definition: ketypes.h:835
ULONG ExAcqResSharedWaitForExclusiveAcquiresSharedRecursive
Definition: ketypes.h:830
ULONG ExAcqResExclusiveAcquiresExclusiveRecursive
Definition: ketypes.h:812
ULONG ExEtwSynchTrackingNotificationsAccountedCount
Definition: ketypes.h:841
ULONG ExecutiveResourceConvertsCount
Definition: ketypes.h:809
ULONG ExecutiveResourceReleaseExclusiveCount
Definition: ketypes.h:807
ULONG IpiSendRequestBroadcastCount
Definition: ketypes.h:799
ULONG ExAcqResExclusiveWaits
Definition: ketypes.h:813
ULONG ExAcqResSharedWaitForExclusiveWaits
Definition: ketypes.h:831
ULONG ExAcqResSharedWaits
Definition: ketypes.h:819
ULONG ExAcqResSharedWaitForExclusiveAcquiresExclusive
Definition: ketypes.h:828
ULONG SpinLockContentionCount
Definition: ketypes.h:797
ULONG ExAcqResSharedStarveExclusiveAttempts
Definition: ketypes.h:821
ULONG ExAcqResSharedAttempts
Definition: ketypes.h:815
ULONG ExDeleteResourceCount
Definition: ketypes.h:804
ULONG ExecutiveResourceContentionsCount
Definition: ketypes.h:806
ULONG ExAcqResSharedWaitForExclusiveAttempts
Definition: ketypes.h:827
ULONG ExAcqResSharedWaitForExclusiveNotAcquires
Definition: ketypes.h:832
ULONG ExEtwSynchTrackingNotificationsCount
Definition: ketypes.h:840
ULONG ExBoostSharedOwners
Definition: ketypes.h:839
ULONG IpiSendRequestRoutineCount
Definition: ketypes.h:800
ULONG ExAcqResSharedStarveExclusiveAcquiresSharedRecursive
Definition: ketypes.h:824
ULONG ExAcqResSharedStarveExclusiveAcquiresShared
Definition: ketypes.h:823
ULONG ExAcqResSharedStarveExclusiveWaits
Definition: ketypes.h:825
ULONG ExAcqResSharedAcquiresShared
Definition: ketypes.h:817
ULONG SpinLockSpinCount
Definition: ketypes.h:798
ULONG IpiSendSoftwareInterruptCount
Definition: ketypes.h:801
ULONG ExSetResOwnerPointerExclusive
Definition: ketypes.h:833
ULONG ExAcqResSharedNotAcquires
Definition: ketypes.h:820
ULONG ExReInitializeResourceCount
Definition: ketypes.h:803
ULONG ExAcqResSharedWaitForExclusiveAcquiresShared
Definition: ketypes.h:829
ULONG ExecutiveResourceAcquiresCount
Definition: ketypes.h:805
ULONG ExAcqResSharedStarveExclusiveAcquiresExclusive
Definition: ketypes.h:822
ULONG ExAcqResExclusiveAttempts
Definition: ketypes.h:810
ULONG ExSetResOwnerPointerSharedNew
Definition: ketypes.h:834
ULONG ExAcqResExclusiveAcquiresExclusive
Definition: ketypes.h:811
ULONG SpinLockAcquireCount
Definition: ketypes.h:796
ULONG ExBoostExclusiveOwner
Definition: ketypes.h:838
ULONG ExAcqResSharedAcquiresSharedRecursive
Definition: ketypes.h:818
Definition: compat.h:836
XSTATE_FEATURE Features[MAXIMUM_XSTATE_FEATURES]
Definition: ketypes.h:1237
ULONG64 EnabledSupervisorFeatures
Definition: ketypes.h:1239
ULONG64 EnabledVolatileFeatures
Definition: ketypes.h:1225
ULONG64 EnabledFeatures
Definition: ketypes.h:1223
ULONG64 EnabledUserVisibleSupervisorFeatures
Definition: ketypes.h:1245
ULONG AllFeatures[MAXIMUM_XSTATE_FEATURES]
Definition: ketypes.h:1242
ULONG AllNonLargeFeatureSize
Definition: ketypes.h:1249
ULONG64 ExtendedFeatureDisableFeatures
Definition: ketypes.h:1248
ULONG64 AlignedFeatures
Definition: ketypes.h:1240
#define MODE
Definition: telnetd.h:40
uint32_t * PULONG_PTR
Definition: typedefs.h:65
int32_t INT_PTR
Definition: typedefs.h:64
#define OPTIONAL
Definition: typedefs.h:41
uint32_t * PULONG
Definition: typedefs.h:59
int64_t LONG64
Definition: typedefs.h:68
#define FIELD_OFFSET(t, f)
Definition: typedefs.h:255
int64_t LONGLONG
Definition: typedefs.h:68
#define NTAPI
Definition: typedefs.h:36
void * PVOID
Definition: typedefs.h:50
uint32_t ULONG_PTR
Definition: typedefs.h:65
#define IN
Definition: typedefs.h:39
unsigned char * PUCHAR
Definition: typedefs.h:53
uint32_t ULONG
Definition: typedefs.h:59
uint64_t ULONGLONG
Definition: typedefs.h:67
#define OUT
Definition: typedefs.h:40
char CCHAR
Definition: typedefs.h:51
short CSHORT
Definition: umtypes.h:127
_Must_inspect_result_ _In_ WDFCOLLECTION _In_ WDFOBJECT Object
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ WDF_DEVICE_POWER_STATE PowerState
Definition: wdfdevice.h:3034
_Reserved_ PVOID Reserved
Definition: winddi.h:3974
_In_ ULONG _In_ ULONG _In_ ULONG _Out_ PKIRQL _Out_ PKAFFINITY Affinity
Definition: halfuncs.h:174
_Out_ PULONG UserTime
Definition: kefuncs.h:759
_In_ LARGE_INTEGER _In_ ULONG Period
Definition: kefuncs.h:1313
_In_ LONG _In_ LONG Limit
Definition: kefuncs.h:304
struct _XSTATE_CONFIGURATION * PXSTATE_CONFIGURATION
#define PROCESSOR_FEATURE_MAX
struct _XSTATE_FEATURE XSTATE_FEATURE
struct _KUSER_SHARED_DATA KUSER_SHARED_DATA
XSAVE_FORMAT
Definition: ketypes.h:963
KSTART_ROUTINE * PKSTART_ROUTINE
Definition: ketypes.h:499
struct _KSYSTEM_TIME KSYSTEM_TIME
_KWAIT_REASON
Definition: ketypes.h:414
@ WrLpcReply
Definition: ketypes.h:432
@ WrGuardedMutex
Definition: ketypes.h:450
@ WrPageIn
Definition: ketypes.h:424
@ WrPoolAllocation
Definition: ketypes.h:425
@ Suspended
Definition: ketypes.h:420
@ WrPageOut
Definition: ketypes.h:434
@ PageIn
Definition: ketypes.h:417
@ WrKernel
Definition: ketypes.h:441
@ PoolAllocation
Definition: ketypes.h:418
@ WrYieldExecution
Definition: ketypes.h:448
@ WrUserRequest
Definition: ketypes.h:428
@ UserRequest
Definition: ketypes.h:421
@ WrLpcReceive
Definition: ketypes.h:431
@ WrFreePage
Definition: ketypes.h:423
@ DelayExecution
Definition: ketypes.h:419
@ WrDispatchInt
Definition: ketypes.h:446
@ WrMutex
Definition: ketypes.h:444
@ WrExecutive
Definition: ketypes.h:422
@ WrQuantumEnd
Definition: ketypes.h:445
@ WrResource
Definition: ketypes.h:442
@ WrEventPair
Definition: ketypes.h:429
@ WrPushLock
Definition: ketypes.h:443
@ WrPreempted
Definition: ketypes.h:447
@ WrQueue
Definition: ketypes.h:430
@ MaximumWaitReason
Definition: ketypes.h:452
@ WrRendezvous
Definition: ketypes.h:435
@ FreePage
Definition: ketypes.h:416
@ WrVirtualMemory
Definition: ketypes.h:433
@ WrDelayExecution
Definition: ketypes.h:426
@ WrSuspended
Definition: ketypes.h:427
@ Executive
Definition: ketypes.h:415
struct _XSTATE_FEATURE * PXSTATE_FEATURE
CCHAR KPROCESSOR_MODE
Definition: ketypes.h:7
KSERVICE_ROUTINE * PKSERVICE_ROUTINE
Definition: ketypes.h:512
#define MAX_WOW64_SHARED_ENTRIES
Definition: ketypes.h:1254
#define MAXIMUM_XSTATE_FEATURES
Definition: ketypes.h:1214
_In_opt_ PVOID _In_opt_ PVOID SystemArgument1
Definition: ketypes.h:688
struct _KWAIT_BLOCK KWAIT_BLOCK
_MODE
Definition: ketypes.h:10
@ MaximumMode
Definition: ketypes.h:13
enum _KINTERRUPT_POLARITY KINTERRUPT_POLARITY
#define THREAD_WAIT_OBJECTS
Definition: ketypes.h:492
_ALTERNATIVE_ARCHITECTURE_TYPE
Definition: ketypes.h:901
@ EndAlternatives
Definition: ketypes.h:904
@ StandardDesign
Definition: ketypes.h:902
@ NEC98x86
Definition: ketypes.h:903
* PKAPC_STATE
Definition: ketypes.h:1409
struct _XSTATE_CONFIGURATION XSTATE_CONFIGURATION
struct _KUSER_SHARED_DATA * PKUSER_SHARED_DATA
struct _KSYSTEM_TIME * PKSYSTEM_TIME
VOID(NTAPI * PKINTERRUPT_ROUTINE)(VOID)
Definition: ketypes.h:502
enum _KWAIT_REASON KWAIT_REASON
_In_opt_ PVOID _In_opt_ PVOID _In_opt_ PVOID SystemArgument2
Definition: ketypes.h:689
KAPC_STATE
Definition: ketypes.h:1409
enum _ALTERNATIVE_ARCHITECTURE_TYPE ALTERNATIVE_ARCHITECTURE_TYPE
_In_ ULONG _In_opt_ POBJECT_ATTRIBUTES _In_opt_ HANDLE _Out_opt_ PCLIENT_ID _In_ PKSTART_ROUTINE StartRoutine
Definition: psfuncs.h:91
_In_ KPROCESSOR_MODE PreviousMode
Definition: sefuncs.h:103
unsigned char UCHAR
Definition: xmlstorage.h:181
__wchar_t WCHAR
Definition: xmlstorage.h:180
char CHAR
Definition: xmlstorage.h:175
_In_ PLARGE_INTEGER _In_opt_ PTIMER_APC_ROUTINE _In_opt_ PVOID TimerContext
Definition: zwfuncs.h:430