ReactOS  0.4.11-dev-765-g5e024bf
ketypes.h
Go to the documentation of this file.
1 /*++ NDK Version: 0098
2 
3 Copyright (c) Alex Ionescu. All rights reserved.
4 
5 Header Name:
6 
7  ketypes.h
8 
9 Abstract:
10 
11  Type definitions for the Kernel services.
12 
13 Author:
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 // Kernel Feature Bits
142 //
143 #define KF_V86_VIS 0x00000001
144 #define KF_RDTSC 0x00000002
145 #define KF_CR4 0x00000004
146 #define KF_CMOV 0x00000008
147 #define KF_GLOBAL_PAGE 0x00000010
148 #define KF_LARGE_PAGE 0x00000020
149 #define KF_MTRR 0x00000040
150 #define KF_CMPXCHG8B 0x00000080
151 #define KF_MMX 0x00000100
152 #define KF_WORKING_PTE 0x00000200
153 #define KF_PAT 0x00000400
154 #define KF_FXSR 0x00000800
155 #define KF_FAST_SYSCALL 0x00001000
156 #define KF_XMMI 0x00002000
157 #define KF_3DNOW 0x00004000
158 #define KF_AMDK6MTRR 0x00008000
159 #define KF_XMMI64 0x00010000
160 #define KF_DTS 0x00020000
161 #define KF_BRANCH 0x00020000 // from ksamd64.inc
162 #define KF_SSE3 0x00080000
163 #define KF_CMPXCHG16B 0x00100000
164 #define KF_XSTATE 0x00800000 // from ks386.inc, ksamd64.inc
165 #define KF_NX_BIT 0x20000000
166 #define KF_NX_DISABLED 0x40000000
167 #define KF_NX_ENABLED 0x80000000
168 
169 #define KF_XSAVEOPT_BIT 15
170 #define KF_XSTATE_BIT 23
171 #define KF_RDWRFSGSBASE_BIT 28
172 
173 //
174 // Internal Exception Codes
175 //
176 #define KI_EXCEPTION_INTERNAL 0x10000000
177 #define KI_EXCEPTION_ACCESS_VIOLATION (KI_EXCEPTION_INTERNAL | 0x04)
178 
179 typedef struct _FIBER /* Field offsets: */
180 { /* i386 arm x64 */
181  PVOID FiberData; /* 0x000 0x000 0x000 */
182  struct _EXCEPTION_REGISTRATION_RECORD *ExceptionList;/* 0x004 0x004 0x008 */
183  PVOID StackBase; /* 0x008 0x008 0x010 */
184  PVOID StackLimit; /* 0x00C 0x00C 0x018 */
185  PVOID DeallocationStack; /* 0x010 0x010 0x020 */
186  CONTEXT FiberContext; /* 0x014 0x018 0x030 */
187 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
188  PVOID Wx86Tib; /* 0x2E0 0x1b8 0x500 */
190  PVOID FlsData; /* 0x2E8 0x1c0 0x510 */
191  ULONG GuaranteedStackBytes; /* 0x2EC 0x1c4 0x518 */
192  ULONG TebFlags; /* 0x2F0 0x1c8 0x51C */
193 #else
194  ULONG GuaranteedStackBytes; /* 0x2E0 */
195  PVOID FlsData; /* 0x2E4 */
197 #endif
198 } FIBER, *PFIBER;
199 
200 #ifndef NTOS_MODE_USER
201 //
202 // Number of dispatch codes supported by KINTERRUPT
203 //
204 #ifdef _M_AMD64
205 #define DISPATCH_LENGTH 4
206 #elif (NTDDI_VERSION >= NTDDI_LONGHORN)
207 #define DISPATCH_LENGTH 135
208 #else
209 #define DISPATCH_LENGTH 106
210 #endif
211 
212 #else
213 
214 //
215 // KPROCESSOR_MODE Type
216 //
217 typedef CCHAR KPROCESSOR_MODE;
218 
219 //
220 // Dereferencable pointer to KUSER_SHARED_DATA in User-Mode
221 //
222 #define SharedUserData ((KUSER_SHARED_DATA *)USER_SHARED_DATA)
223 
224 //
225 // Maximum WOW64 Entries in KUSER_SHARED_DATA
226 //
227 #define MAX_WOW64_SHARED_ENTRIES 16
228 
229 //
230 // Maximum Processor Features supported in KUSER_SHARED_DATA
231 //
232 #define PROCESSOR_FEATURE_MAX 64
233 
234 //
235 // Event Types
236 //
237 typedef enum _EVENT_TYPE
238 {
241 } EVENT_TYPE;
242 
243 //
244 // Timer Types
245 //
246 typedef enum _TIMER_TYPE
247 {
250 } TIMER_TYPE;
251 
252 //
253 // Wait Types
254 //
255 typedef enum _WAIT_TYPE
256 {
257  WaitAll,
258  WaitAny
259 } WAIT_TYPE;
260 
261 //
262 // Processor Execution Modes
263 //
264 typedef enum _MODE
265 {
266  KernelMode,
267  UserMode,
269 } MODE;
270 
271 //
272 // Wait Reasons
273 //
274 typedef enum _KWAIT_REASON
275 {
276  Executive,
277  FreePage,
278  PageIn,
281  Suspended,
282  UserRequest,
283  WrExecutive,
284  WrFreePage,
285  WrPageIn,
288  WrSuspended,
290  WrEventPair,
291  WrQueue,
292  WrLpcReceive,
293  WrLpcReply,
295  WrPageOut,
296  WrRendezvous,
297  Spare2,
299  Spare4,
300  Spare5,
301  Spare6,
302  WrKernel,
303  WrResource,
304  WrPushLock,
305  WrMutex,
306  WrQuantumEnd,
308  WrPreempted,
311 } KWAIT_REASON;
312 
313 //
314 // Profiling Sources
315 //
316 typedef enum _KPROFILE_SOURCE
317 {
318  ProfileTime,
344 
345 //
346 // NT Product and Architecture Types
347 //
348 typedef enum _NT_PRODUCT_TYPE
349 {
350  NtProductWinNt = 1,
354 
356 {
358  NEC98x86,
361 
362 #endif
363 
364 //
365 // Thread States
366 //
367 typedef enum _KTHREAD_STATE
368 {
377 #if (NTDDI_VERSION >= NTDDI_WS03)
379 #endif
381 
382 //
383 // Kernel Object Types
384 //
385 typedef enum _KOBJECTS
386 {
405  ApcObject = 18,
406  DpcObject = 19,
413 } KOBJECTS;
414 
415 //
416 // Adjust reasons
417 //
418 typedef enum _ADJUST_REASON
419 {
423 } ADJUST_REASON;
424 
425 //
426 // Continue Status
427 //
428 typedef enum _KCONTINUE_STATUS
429 {
435 
436 //
437 // Process States
438 //
439 typedef enum _KPROCESS_STATE
440 {
447 
448 //
449 // NtVdmControl Classes
450 //
451 typedef enum _VDMSERVICECLASS
452 {
469 
470 #ifdef NTOS_MODE_USER
471 
472 //
473 // APC Normal Routine
474 //
475 typedef VOID
477  _In_ PVOID NormalContext,
480 );
481 
482 //
483 // Timer Routine
484 //
485 typedef VOID
488  _In_ ULONG TimerLowValue,
489  _In_ LONG TimerHighValue
490 );
491 
492 //
493 // System Time Structure
494 //
495 typedef struct _KSYSTEM_TIME
496 {
497  ULONG LowPart;
498  LONG High1Time;
499  LONG High2Time;
501 
502 //
503 // Shared Kernel User Data
504 //
505 typedef struct _KUSER_SHARED_DATA
506 {
509  volatile KSYSTEM_TIME InterruptTime;
510  volatile KSYSTEM_TIME SystemTime;
511  volatile KSYSTEM_TIME TimeZoneBias;
514  WCHAR NtSystemRoot[260];
519  ULONG Reserved2[7];
527  volatile ULONG TimeSlip;
532 #if (NTDDI_VERSION >= NTDDI_WINXPSP2)
534 #endif
535  volatile ULONG ActiveConsoleId;
536  volatile ULONG DismountCount;
541  ULONG TraceLogging;
542  ULONG Fill0;
547  union {
548  volatile KSYSTEM_TIME TickCount;
549  volatile ULONG64 TickCountQuad;
550  };
551  ULONG Cookie;
552 #if (NTDDI_VERSION >= NTDDI_WS03)
555 #endif
556 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
558  ULONG HeapTracingPid[2];
559  ULONG CritSecTracingPid[2];
560  union
561  {
563  struct
564  {
569  ULONG SpareBits:28;
570  };
571  };
573  KAFFINITY ActiveProcessorAffinity;
574 #endif
576 
577 //
578 // VDM Structures
579 //
580 #include "pshpack1.h"
581 typedef struct _VdmVirtualIca
582 {
583  LONG ica_count[8];
584  LONG ica_int_line;
585  LONG ica_cpu_int;
586  USHORT ica_base;
587  USHORT ica_hipiri;
588  USHORT ica_mode;
589  UCHAR ica_master;
590  UCHAR ica_irr;
591  UCHAR ica_isr;
592  UCHAR ica_imr;
593  UCHAR ica_ssr;
594 } VDMVIRTUALICA, *PVDMVIRTUALICA;
595 #include "poppack.h"
596 
597 typedef struct _VdmIcaUserData
598 {
599  PVOID pIcaLock;
600  PVDMVIRTUALICA pIcaMaster;
601  PVDMVIRTUALICA pIcaSlave;
602  PULONG pDelayIrq;
603  PULONG pUndelayIrq;
604  PULONG pDelayIret;
605  PULONG pIretHooked;
606  PULONG pAddrIretBopTable;
607  PHANDLE phWowIdleEvent;
608  PLARGE_INTEGER pIcaTimeout;
609  PHANDLE phMainThreadSuspended;
610 } VDMICAUSERDATA, *PVDMICAUSERDATA;
611 
612 typedef struct _VDM_INITIALIZE_DATA
613 {
614  PVOID TrapcHandler;
615  PVDMICAUSERDATA IcaUserData;
616 } VDM_INITIALIZE_DATA, *PVDM_INITIALIZE_DATA;
617 
618 #else
619 
620 //
621 // System Thread Start Routine
622 //
623 typedef
624 VOID
627  PVOID StartContext
628 );
629 
630 #ifndef _NTSYSTEM_
631 typedef VOID
633  IN PVOID NormalContext OPTIONAL,
636 
637 typedef VOID
639  IN struct _KAPC *Apc);
640 
641 typedef VOID
643  IN struct _KAPC *Apc,
644  IN OUT PKNORMAL_ROUTINE *NormalRoutine OPTIONAL,
648 #endif
649 
650 //
651 // APC Environment Types
652 //
653 typedef enum _KAPC_ENVIRONMENT
654 {
660 
661 typedef struct _KTIMER_TABLE_ENTRY
662 {
663 #if (NTDDI_VERSION >= NTDDI_LONGHORN) || defined(_M_ARM) || defined(_M_AMD64)
665 #endif
669 
670 typedef struct _KTIMER_TABLE
671 {
675 
676 typedef struct _KDPC_LIST
677 {
681 
682 typedef struct _SYNCH_COUNTERS
683 {
731 
732 //
733 // PRCB DPC Data
734 //
735 typedef struct _KDPC_DATA
736 {
737 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
739 #else
740  LIST_ENTRY DpcListHead;
741 #endif
743 #if defined(_M_AMD64) || defined(_M_ARM)
744  volatile LONG DpcQueueDepth;
745 #else
747 #endif
749 #if (NTDDI_VERSION >= NTDDI_LONGHORN) || defined(_M_ARM)
751 #endif
753 
754 //
755 // Per-Processor Lookaside List
756 //
757 typedef struct _PP_LOOKASIDE_LIST
758 {
762 
763 //
764 // Architectural Types
765 //
766 #include <arch/ketypes.h>
767 
768 //
769 // Kernel Memory Node
770 //
771 #include <pshpack1.h>
772 typedef struct _KNODE
773 {
780  struct _flags {
782  UCHAR Fill : 7;
783  } Flags;
787 } KNODE, *PKNODE;
788 #include <poppack.h>
789 
790 //
791 // Structure for Get/SetContext APC
792 //
793 typedef struct _GETSETCONTEXT
794 {
800 
801 //
802 // Kernel Profile Object
803 //
804 typedef struct _KPROFILE
805 {
818 } KPROFILE, *PKPROFILE;
819 
820 //
821 // Kernel Interrupt Object
822 //
823 typedef struct _KINTERRUPT
824 {
829 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
832 #endif
846 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
848 #endif
851 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
853 #endif
854 #ifdef _M_AMD64
855  PKTRAP_FRAME TrapFrame;
856  PVOID Reserved;
857 #endif
859 } KINTERRUPT;
860 
861 //
862 // Kernel Event Pair Object
863 //
864 typedef struct _KEVENT_PAIR
865 {
871 
872 //
873 // Kernel No Execute Options
874 //
875 typedef struct _KEXECUTE_OPTIONS
876 {
885 
886 #if (NTDDI_VERSION >= NTDDI_WIN7)
888 {
890  struct
891  {
895  UCHAR Apc:1;
899  };
901 
902 typedef struct _COUNTER_READING
903 {
909 
910 typedef struct _KTHREAD_COUNTERS
911 {
913  struct _THREAD_PERFORMANCE_DATA* UserData;
920 #endif
921 
923 #if (NTDDI_VERSION >= NTDDI_WIN8)
924 typedef struct _RTL_RB_TREE
925 {
929 #endif
930 
931 #if (NTDDI_VERSION >= NTDDI_WINBLUE)
933 {
934  union
935  {
936  struct
937  {
938 #if (NTDDI_VERSION >= NTDDI_WIN10) // since 6.4.9841.0
940 #else
941  ULONG_PTR Waiting : 1;
942 #endif
944  ULONG_PTR Reserved : (8 * sizeof(PVOID)) - 3; // previously Spare
946  };
948  };
949  union
950  {
952  struct
953  {
955 #ifdef _WIN64
956  ULONG SessionPad;
957 #endif
958  };
959  };
961 
962 typedef struct _KLOCK_ENTRY
963 {
964  union
965  {
968  };
969 #if (NTDDI_VERSION >= NTDDI_WIN10)
970  union
971  {
973  struct
974  {
976  union
977  {
979  struct
980  {
983  };
984  };
985  union
986  {
989  };
990  union
991  {
993  struct
994  {
997  UCHAR IoQoSWaiter : 1; // since TH2
999  };
1000  };
1001  };
1002  struct
1003  {
1006  };
1007  };
1008 #ifdef _WIN64
1009  ULONG SpareFlags;
1010 #endif
1011 #else
1012  union
1013  {
1014  PVOID ThreadUnsafe;
1015  struct
1016  {
1017  volatile UCHAR HeadNodeByte;
1018  UCHAR Reserved1[2];
1019  volatile UCHAR AcquiredByte;
1020  };
1021  };
1022 #endif
1023 
1024  union
1025  {
1028  struct
1029  {
1030 #if (NTDDI_VERSION >= NTDDI_WIN10)
1032 #else
1033  volatile UCHAR WaitingAndBusyByte;
1034 #endif
1035  UCHAR Reserved[sizeof(PVOID) - 2];
1037  union
1038  {
1040  struct
1041  {
1043 #ifdef _WIN64
1044  ULONG SessionPad;
1045 #endif
1046  };
1047  };
1048  };
1049  };
1050  union
1051  {
1052  struct
1053  {
1056  };
1058  };
1060  union
1061  {
1062 #if _WIN64
1063  ULONG AllBoosts : 17;
1064 #else
1066 #endif
1067  struct
1068  {
1069  struct
1070  {
1073  };
1074  struct
1075  {
1079  };
1080  };
1081  };
1082 #if _WIN64
1083  ULONG SparePad;
1084 #endif
1086 
1087 #endif
1088 
1089 //
1090 // Kernel Thread (KTHREAD)
1091 //
1092 #if (NTDDI_VERSION < NTDDI_WIN8)
1093 
1094 typedef struct _KTHREAD
1095 {
1097 #if (NTDDI_VERSION >= NTDDI_LONGHORN) // [
1099 #ifndef _WIN64 // [
1101 #endif // ]
1103 #else // ][
1105 #endif // ]
1107  ULONG_PTR StackLimit; // FIXME: PVOID
1110 #if (NTDDI_VERSION >= NTDDI_WIN7) // [
1112  BOOLEAN Running;
1113  BOOLEAN Alerted[2];
1114  union
1115  {
1116  struct
1117  {
1118  ULONG KernelStackResident:1;
1121  ULONG WaitNext:1;
1123  ULONG Alertable:1;
1124  ULONG GdiFlushActive:1;
1130  ULONG TimerActive:1;
1131  ULONG Reserved:19;
1132  };
1133  LONG MiscFlags;
1134  };
1135 #endif // ]
1136  union
1137  {
1139  struct
1140  {
1141  UCHAR ApcStateFill[FIELD_OFFSET(KAPC_STATE, UserApcPending) + 1];
1142 #if (NTDDI_VERSION >= NTDDI_LONGHORN) // [
1143  SCHAR Priority;
1144 #if (NTDDI_VERSION >= NTDDI_WIN7) // [
1145  /* On x86, the following members "fall out" of the union */
1146  volatile ULONG NextProcessor;
1147  volatile ULONG DeferredProcessor;
1148 #else // ][
1149  /* On x86, the following members "fall out" of the union */
1150  volatile USHORT NextProcessor;
1151  volatile USHORT DeferredProcessor;
1152 #endif // ]
1153 #else // ][
1155  /* On x86, the following members "fall out" of the union */
1156  volatile UCHAR NextProcessor;
1157  volatile UCHAR DeferredProcessor;
1160 #endif // ]
1161  };
1162  };
1163  KSPIN_LOCK ApcQueueLock;
1164 #ifndef _M_AMD64 // [
1166  volatile UCHAR State;
1167  UCHAR NpxState;
1168  KIRQL WaitIrql;
1170 #endif // ]
1172 #if (NTDDI_VERSION >= NTDDI_WIN7) // [
1174 #else // ][
1175  union
1176  {
1179  };
1180 #if (NTDDI_VERSION >= NTDDI_LONGHORN) // [
1181  union
1182  {
1183  struct
1184  {
1185  ULONG KernelStackResident:1;
1188  ULONG WaitNext:1;
1190  ULONG Alertable:1;
1191  ULONG GdiFlushActive:1;
1192  ULONG Reserved:25;
1193  };
1194  LONG MiscFlags;
1195  };
1196 #else // ][
1198  BOOLEAN WaitNext;
1199 #endif // ]
1200  UCHAR WaitReason;
1201 #if (NTDDI_VERSION < NTDDI_LONGHORN)
1202  SCHAR Priority;
1204 #endif // ]
1205  volatile UCHAR SwapBusy;
1207 #endif // ]
1208  union
1209  {
1212  };
1213  PKQUEUE Queue;
1214 #ifndef _M_AMD64 // [
1215  ULONG WaitTime;
1216  union
1217  {
1218  struct
1219  {
1222  };
1224  };
1225 #endif // ]
1226  struct _TEB *Teb;
1227 
1228 #if (NTDDI_VERSION >= NTDDI_WIN7) // [
1229  KTIMER Timer;
1230 #else // ][
1231  union
1232  {
1233  KTIMER Timer;
1234  struct
1235  {
1236  UCHAR TimerFill[FIELD_OFFSET(KTIMER, Period) + sizeof(LONG)];
1237 #if !defined(_WIN64) // [
1238  };
1239  };
1240 #endif // ]
1241 #endif // ]
1242  union
1243  {
1244  struct
1245  {
1246  ULONG AutoAlignment:1;
1247  ULONG DisableBoost:1;
1248 #if (NTDDI_VERSION >= NTDDI_LONGHORN) // [
1249  ULONG EtwStackTraceApc1Inserted:1;
1250  ULONG EtwStackTraceApc2Inserted:1;
1251  ULONG CycleChargePending:1;
1252  ULONG CalloutActive:1;
1253  ULONG ApcQueueable:1;
1255  ULONG GuiThread:1;
1256  ULONG ReservedFlags:23;
1257 #else // ][
1258  LONG ReservedFlags:30;
1259 #endif // ]
1260  };
1261  LONG ThreadFlags;
1262  };
1263 #if defined(_WIN64) && (NTDDI_VERSION < NTDDI_WIN7) // [
1264  };
1265  };
1266 #endif // ]
1267 #if (NTDDI_VERSION >= NTDDI_WIN7) // [
1268 #if defined(_WIN64) // [
1269  ULONG Spare0;
1270 #else // ][
1272 #endif // ]
1273 #endif // ]
1274  union
1275  {
1277 #if (NTDDI_VERSION < NTDDI_WIN7) // [
1278  struct
1279  {
1280  UCHAR WaitBlockFill0[FIELD_OFFSET(KWAIT_BLOCK, SpareByte)]; // 32bit = 23, 64bit = 43
1281 #if (NTDDI_VERSION >= NTDDI_LONGHORN) // [
1282  UCHAR IdealProcessor;
1283 #else // ][
1284  BOOLEAN SystemAffinityActive;
1285 #endif // ]
1286  };
1287  struct
1288  {
1289  UCHAR WaitBlockFill1[1 * sizeof(KWAIT_BLOCK) + FIELD_OFFSET(KWAIT_BLOCK, SpareByte)]; // 47 / 91
1291  };
1292  struct
1293  {
1294  UCHAR WaitBlockFill2[2 * sizeof(KWAIT_BLOCK) + FIELD_OFFSET(KWAIT_BLOCK, SpareByte)]; // 71 / 139
1295  UCHAR ResourceIndex;
1296  };
1297  struct
1298  {
1299  UCHAR WaitBlockFill3[3 * sizeof(KWAIT_BLOCK) + FIELD_OFFSET(KWAIT_BLOCK, SpareByte)]; // 95 / 187
1300  UCHAR LargeStack;
1301  };
1302 #endif // ]
1303 #ifdef _WIN64 // [
1304  struct
1305  {
1306  UCHAR WaitBlockFill4[FIELD_OFFSET(KWAIT_BLOCK, SpareLong)];
1307  ULONG ContextSwitches;
1308  };
1309  struct
1310  {
1311  UCHAR WaitBlockFill5[1 * sizeof(KWAIT_BLOCK) + FIELD_OFFSET(KWAIT_BLOCK, SpareLong)];
1312  UCHAR State;
1313  UCHAR NpxState;
1314  UCHAR WaitIrql;
1315  CHAR WaitMode;
1316  };
1317  struct
1318  {
1319  UCHAR WaitBlockFill6[2 * sizeof(KWAIT_BLOCK) + FIELD_OFFSET(KWAIT_BLOCK, SpareLong)];
1320  ULONG WaitTime;
1321  };
1322 #if (NTDDI_VERSION >= NTDDI_WIN7) // [
1323  struct
1324  {
1325  UCHAR WaitBlockFill7[168];
1326  PVOID TebMappedLowVa;
1327  struct _UMS_CONTROL_BLOCK* Ucb;
1328  };
1329 #endif // ]
1330  struct
1331  {
1332 #if (NTDDI_VERSION >= NTDDI_WIN7) // [
1333  UCHAR WaitBlockFill8[188];
1334 #else // ][
1335  UCHAR WaitBlockFill7[3 * sizeof(KWAIT_BLOCK) + FIELD_OFFSET(KWAIT_BLOCK, SpareLong)];
1336 #endif // ]
1337  union
1338  {
1339  struct
1340  {
1341  SHORT KernelApcDisable;
1342  SHORT SpecialApcDisable;
1343  };
1344  ULONG CombinedApcDisable;
1345  };
1346  };
1347 #endif // ]
1348  };
1349  LIST_ENTRY QueueListEntry;
1350  PKTRAP_FRAME TrapFrame;
1351 #if (NTDDI_VERSION >= NTDDI_LONGHORN) // [
1352  PVOID FirstArgument;
1353  union
1354  {
1355  PVOID CallbackStack;
1356  ULONG_PTR CallbackDepth;
1357  };
1358 #else // ][
1359  PVOID CallbackStack;
1360 #endif // ]
1361 #if (NTDDI_VERSION < NTDDI_LONGHORN) || ((NTDDI_VERSION < NTDDI_WIN7) && !defined(_WIN64)) // [
1363 #endif // ]
1364 #if (NTDDI_VERSION < NTDDI_LONGHORN) && defined(_WIN64) // [
1365  ULONG KernelLimit;
1366 #endif // ]
1367  UCHAR ApcStateIndex;
1368 #if (NTDDI_VERSION < NTDDI_LONGHORN) // [
1369  UCHAR IdealProcessor;
1370  BOOLEAN Preempted;
1371  BOOLEAN ProcessReadyQueue;
1372 #ifdef _WIN64 // [
1373  PVOID Win32kTable;
1374  ULONG Win32kLimit;
1375 #endif // ]
1376  BOOLEAN KernelStackResident;
1377 #endif // ]
1378  SCHAR BasePriority;
1379  SCHAR PriorityDecrement;
1380 #if (NTDDI_VERSION >= NTDDI_LONGHORN) // [
1381  BOOLEAN Preempted;
1382  UCHAR AdjustReason;
1383  CHAR AdjustIncrement;
1384 #if (NTDDI_VERSION >= NTDDI_WIN7)
1386 #else
1387  UCHAR Spare01;
1388 #endif
1389 #endif // ]
1390  CHAR Saturation;
1391 #if (NTDDI_VERSION >= NTDDI_LONGHORN) // [
1392  ULONG SystemCallNumber;
1393 #if (NTDDI_VERSION >= NTDDI_WIN7) // [
1394  ULONG FreezeCount;
1395 #else // ][
1396  ULONG Spare02;
1397 #endif // ]
1398 #endif // ]
1399 #if (NTDDI_VERSION >= NTDDI_WIN7) // [
1400  GROUP_AFFINITY UserAffinity;
1401  struct _KPROCESS *Process;
1403  ULONG IdealProcessor;
1404  ULONG UserIdealProcessor;
1405 #else // ][
1406  KAFFINITY UserAffinity;
1407  struct _KPROCESS *Process;
1409 #endif // ]
1410  PKAPC_STATE ApcStatePointer[2];
1411  union
1412  {
1413  KAPC_STATE SavedApcState;
1414  struct
1415  {
1416  UCHAR SavedApcStateFill[FIELD_OFFSET(KAPC_STATE, UserApcPending) + 1];
1417 #if (NTDDI_VERSION >= NTDDI_WIN7) // [
1418  UCHAR WaitReason;
1419 #else // ][
1420  CCHAR FreezeCount;
1421 #endif // ]
1422 #ifndef _WIN64 // [
1423  };
1424  };
1425 #endif // ]
1426  CCHAR SuspendCount;
1427 #if (NTDDI_VERSION >= NTDDI_WIN7) // [
1428  CCHAR Spare1;
1429 #else // ][
1430  UCHAR UserIdealProcessor;
1431 #endif // ]
1432 #if (NTDDI_VERSION >= NTDDI_WIN7) // [
1433 #elif (NTDDI_VERSION >= NTDDI_LONGHORN) // ][
1434  UCHAR Spare03;
1435 #else // ][
1436  UCHAR CalloutActive;
1437 #endif // ]
1438 #ifdef _WIN64 // [
1439  UCHAR CodePatchInProgress;
1440  };
1441  };
1442 #endif // ]
1443 #if defined(_M_IX86) // [
1444 #if (NTDDI_VERSION >= NTDDI_LONGHORN) // [
1445  UCHAR OtherPlatformFill;
1446 #else // ][
1447  UCHAR Iopl;
1448 #endif // ]
1449 #endif // ]
1450  PVOID Win32Thread;
1451  PVOID StackBase;
1452  union
1453  {
1454  KAPC SuspendApc;
1455  struct
1456  {
1457  UCHAR SuspendApcFill0[1];
1458 #if (NTDDI_VERSION >= NTDDI_WIN7) // [
1459  UCHAR ResourceIndex;
1460 #elif (NTDDI_VERSION >= NTDDI_LONGHORN) // ][
1461  CHAR Spare04;
1462 #else // ][
1463  SCHAR Quantum;
1464 #endif // ]
1465  };
1466  struct
1467  {
1468  UCHAR SuspendApcFill1[3];
1470  };
1471  struct
1472  {
1473  UCHAR SuspendApcFill2[4];
1474  ULONG KernelTime;
1475  };
1476  struct
1477  {
1478  UCHAR SuspendApcFill3[FIELD_OFFSET(KAPC, SystemArgument1)];
1479 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
1480  PKPRCB WaitPrcb;
1481 #else
1482  PVOID TlsArray;
1483 #endif
1484  };
1485  struct
1486  {
1487  UCHAR SuspendApcFill4[FIELD_OFFSET(KAPC, SystemArgument2)]; // 40 / 72
1488  PVOID LegoData;
1489  };
1490  struct
1491  {
1492  UCHAR SuspendApcFill5[FIELD_OFFSET(KAPC, Inserted) + 1]; // 47 / 83
1493 #if (NTDDI_VERSION >= NTDDI_WIN7) // [
1494  UCHAR LargeStack;
1495 #else // ][
1496  UCHAR PowerState;
1497 #endif // ]
1498 #ifdef _WIN64 // [
1499  ULONG UserTime;
1500 #endif // ]
1501  };
1502  };
1503 #ifndef _WIN64 // [
1504  ULONG UserTime;
1505 #endif // ]
1506  union
1507  {
1508  KSEMAPHORE SuspendSemaphore;
1509  struct
1510  {
1511  UCHAR SuspendSemaphorefill[FIELD_OFFSET(KSEMAPHORE, Limit) + 4]; // 20 / 28
1512 #ifdef _WIN64 // [
1513  ULONG SListFaultCount;
1514 #endif // ]
1515  };
1516  };
1517 #ifndef _WIN64 // [
1518  ULONG SListFaultCount;
1519 #endif // ]
1520  LIST_ENTRY ThreadListEntry;
1521 #if (NTDDI_VERSION >= NTDDI_LONGHORN) // [
1522  LIST_ENTRY MutantListHead;
1523 #endif // ]
1524  PVOID SListFaultAddress;
1525 #ifdef _M_AMD64 // [
1526  LONG64 ReadOperationCount;
1527  LONG64 WriteOperationCount;
1528  LONG64 OtherOperationCount;
1529  LONG64 ReadTransferCount;
1530  LONG64 WriteTransferCount;
1531  LONG64 OtherTransferCount;
1532 #endif // ]
1533 #if (NTDDI_VERSION >= NTDDI_WIN7) // [
1534  PKTHREAD_COUNTERS ThreadCounters;
1535  PXSTATE_SAVE XStateSave;
1536 #elif (NTDDI_VERSION >= NTDDI_LONGHORN) // ][
1537  PVOID MdlForLockedTeb;
1538 #endif // ]
1539 } KTHREAD;
1540 
1541 #else // not (NTDDI_VERSION < NTDDI_WIN8)
1542 
1543 #if defined(_WIN64) && (NTDDI_VERSION < 0x06032580) // since WIN 8.1 Update1 6.3.9600.16384
1544 #define NUMBER_OF_LOCK_ENTRIES 5
1545 #else
1546 #define NUMBER_OF_LOCK_ENTRIES 6
1547 #endif
1548 
1549 typedef struct _KTHREAD
1550 {
1555  volatile VOID *StackLimit;
1558  volatile ULONG64 CycleTime;
1559 #ifndef _WIN64
1562 #endif
1567  struct _KSCHEDULING_GROUP* SchedulingGroup;
1571 
1572  union
1573  {
1574  struct
1575  {
1576 #if (NTDDI_VERSION < NTDDI_WIN10)
1577  ULONG KernelStackResident : 1;
1578 #else
1580 #endif
1582 #if (NTDDI_VERSION < NTDDI_WIN10TH2)
1584 #endif
1589 #if (NTDDI_VERSION < NTDDI_WIN81)
1590  ULONG CodePatchInProgress : 1;
1591 #endif
1606  };
1608  };
1609 
1610  union
1611  {
1612  struct
1613  {
1628 #if (NTDDI_VERSION >= 0x060324D7) // since 6.3.9431.0
1629  ULONG TerminationApcRequest : 1;
1630 #endif
1631 #if (NTDDI_VERSION >= 0x06032580) // since 6.3.9600.16384
1632  ULONG AutoBoostEntriesExhausted : 1;
1633 #endif
1634 #if (NTDDI_VERSION >= 0x06032580) // since 6.3.9600.17031
1635  ULONG KernelStackResident : 1;
1636 #endif
1637 #if (NTDDI_VERSION >= NTDDI_WIN10)
1641 #endif
1643 #if (NTDDI_VERSION < NTDDI_WIN10)
1644  ULONG ReservedFlags : 10;
1645 #endif
1646  };
1648  };
1649 
1650 #if (NTDDI_VERSION >= NTDDI_WIN10)
1651  volatile UCHAR Tag;
1656 #else
1657  ULONG Spare0;
1658 #endif
1660 #ifdef _WIN64
1661  ULONG Spare1; // Win 10: Spare10
1662 #endif
1665 
1666  union
1667  {
1669  struct
1670  {
1671  UCHAR ApcStateFill[RTL_SIZEOF_THROUGH_FIELD(KAPC_STATE, UserApcPending)]; // 32bit: 23/0x17, 64bit: 43/0x2B
1674  };
1675  };
1676 
1677 #ifndef _WIN64
1679  volatile UCHAR State;
1680 #if (NTDDI_VERSION >= NTDDI_WIN10) // since 10.0.10074.0
1682 #else
1683  CHAR NpxState;
1684 #endif
1687 #endif
1688 
1691  union
1692  {
1695  };
1698 #if (NTDDI_VERSION >= NTDDI_WIN8 /* 0x060223F0 */) // since 6.2.9200.16384
1700 #endif
1702 
1703  union
1704  {
1706 #ifdef _WIN64
1707  struct
1708  {
1709  UCHAR WaitBlockFill4[FIELD_OFFSET(KWAIT_BLOCK, SpareLong)]; // 32bit: -, 64bit: 20/0x14
1711  };
1712  struct
1713  {
1714  UCHAR WaitBlockFill5[1 * sizeof(KWAIT_BLOCK) + FIELD_OFFSET(KWAIT_BLOCK, SpareLong)]; // 32bit: -, 64bit: 68/0x44
1715  UCHAR State;
1716 #if (NTDDI_VERSION >= NTDDI_WIN10)
1717  CHAR Spare13;
1718 #else
1719  CHAR NpxState;
1720 #endif
1721  UCHAR WaitIrql;
1722  CHAR WaitMode;
1723  };
1724  struct
1725  {
1726  UCHAR WaitBlockFill6[2 * sizeof(KWAIT_BLOCK) + FIELD_OFFSET(KWAIT_BLOCK, SpareLong)]; // 32bit: -, 64bit: 116/0x74
1727  ULONG WaitTime;
1728  };
1729  struct
1730  {
1731  UCHAR WaitBlockFill7[3 * sizeof(KWAIT_BLOCK) + FIELD_OFFSET(KWAIT_BLOCK, SpareLong)]; // 32bit: -, 64bit: 164/0xA4
1732  union
1733  {
1734  struct
1735  {
1738  };
1740  };
1741  };
1742 #endif
1743  struct
1744  {
1745  UCHAR WaitBlockFill8[FIELD_OFFSET(KWAIT_BLOCK, SparePtr)]; // 32bit: 20/0x14, 64bit: 40/0x28
1747  };
1748  struct
1749  {
1750  UCHAR WaitBlockFill9[1 * sizeof(KWAIT_BLOCK) + FIELD_OFFSET(KWAIT_BLOCK, SparePtr)]; // 32bit: 44/0x2C, 64bit: 88/0x58
1752  };
1753  struct
1754  {
1755  UCHAR WaitBlockFill10[2 * sizeof(KWAIT_BLOCK) + FIELD_OFFSET(KWAIT_BLOCK, SparePtr)]; // 32bit: 68/0x44, 64bit: 136/0x88
1757  };
1758  struct
1759  {
1760  UCHAR WaitBlockFill11[3 * sizeof(KWAIT_BLOCK) + FIELD_OFFSET(KWAIT_BLOCK, Object)]; // 32bit: 88/0x58, 64bit: 176/0xB0
1761 #ifdef _WIN64
1762  struct _UMS_CONTROL_BLOCK* Ucb;
1763  struct _KUMS_CONTEXT_HEADER* Uch;
1764 #else
1766  union
1767  {
1768  struct
1769  {
1772  };
1774  };
1775 #endif
1776  };
1777  };
1778 
1779 #ifdef _WIN64
1780  PVOID TebMappedLowVa;
1781 #endif
1783 #if (NTDDI_VERSION >= 0x060223F0) // since 6.2.9200.16384
1784  union
1785  {
1787  struct
1788  {
1789  ULONG NextProcessorNumber : 31;
1790  ULONG SharedReadyQueue : 1;
1791  };
1792  };
1793  LONG QueuePriority;
1794 #else
1797 #endif
1799 
1800  union
1801  {
1803  struct
1804  {
1805  UCHAR UserAffinityFill[FIELD_OFFSET(GROUP_AFFINITY, Reserved)]; // 32bit: 6/0x6, 64bit: 10/0x0A
1808  union
1809  {
1811  struct
1812  {
1815  };
1816  };
1820  };
1821  };
1822 
1823 #if (NTDDI_VERSION >= NTDDI_WIN10) // since 10.0.10240.16384
1825 #endif
1826  union
1827  {
1829  struct
1830  {
1831  UCHAR AffinityFill[FIELD_OFFSET(GROUP_AFFINITY, Reserved)]; // 32bit: 6/0x6, 64bit: 10/0x0A
1835  };
1836  };
1837 
1838 #if (NTDDI_VERSION >= NTDDI_WIN10) // since 10.0.10240.16384
1839 #ifdef _WIN64
1840  ULONG64 NpxState;
1841 #else
1843 #endif
1844 #else
1845  PKAPC_STATE ApcStatePointer[2];
1846 #endif
1847 
1848  union
1849  {
1851  struct
1852  {
1853  UCHAR SavedApcStateFill[FIELD_OFFSET(KAPC_STATE, UserApcPending) + 1]; // 32bit: 23/0x17, 64bit: 43/0x2B
1858  };
1859  };
1860 
1861  union
1862  {
1864  struct
1865  {
1866  UCHAR SchedulerApcFill0[FIELD_OFFSET(KAPC, SpareByte0)]; // 32bit: 1/0x01, 64bit: 1/0x01
1868  };
1869  struct
1870  {
1871  UCHAR SchedulerApcFill1[FIELD_OFFSET(KAPC, SpareByte1)]; // 32bit: 3/0x03, 64bit: 3/0x03
1873  };
1874  struct
1875  {
1876  UCHAR SchedulerApcFill2[FIELD_OFFSET(KAPC, SpareLong0)]; // 32bit: 4/0x04, 64bit: 4/0x04
1878  };
1879  struct
1880  {
1881  UCHAR SuspendApcFill3[FIELD_OFFSET(KAPC, SystemArgument1)]; // 32 bit:, 64 bit: 64/0x40
1883  };
1884  struct
1885  {
1886  UCHAR SchedulerApcFill4[FIELD_OFFSET(KAPC, SystemArgument2)]; // 32 bit:, 64 bit: 72/0x48
1888  };
1889  struct
1890  {
1891  UCHAR SchedulerApcFill5[FIELD_OFFSET(KAPC, Inserted) + 1]; // 32 bit:, 64 bit: 83/0x53
1894  };
1895  };
1896 
1900 
1901 #if (NTDDI_VERSION >= NTDDI_WIN10)
1905 #if _WIN64
1906  ULONG SecureThreadCookie;
1907 #endif
1908 #elif (NTDDI_VERSION >= NTDDI_WINBLUE) // 6.3.9431.0
1909  SINGLE_LIST_ENTRY LockEntriesFreeList;
1910 #endif
1911 
1912 #if (NTDDI_VERSION >= NTDDI_WINBLUE /* 0x06032580 */) // since 6.3.9600.16384
1919  #if (NTDDI_VERSION >= NTDDI_WIN10_RS1)
1921  #endif
1922 
1923  #if (NTDDI_VERSION >= NTDDI_WIN10) // since 10.0.10240.16384
1925  #else
1926  volatile SHORT AbReferenceCount;
1927  #endif
1928  #if (NTDDI_VERSION >= 0x06040000) // since 6.4.9841.0
1929  UCHAR AbOrphanedEntrySummary;
1930  UCHAR AbOwnedEntryCount;
1931  #else
1934  #endif
1936  union
1937  {
1939  struct
1940  {
1943  };
1944  };
1945 #endif
1946 
1947 #if _WIN64
1948  LONG64 ReadOperationCount;
1949  LONG64 WriteOperationCount;
1950  LONG64 OtherOperationCount;
1951  LONG64 ReadTransferCount;
1952  LONG64 WriteTransferCount;
1953  LONG64 OtherTransferCount;
1954 #endif
1955 #if (NTDDI_VERSION >= NTDDI_WIN10) // since 10.0.10041.0
1956  struct _KSCB *QueuedScb;
1957 #ifndef _WIN64
1959 #endif
1960 #endif
1961 } KTHREAD;
1962 
1963 #endif
1964 
1965 
1966 #define ASSERT_THREAD(object) \
1967  ASSERT((((object)->Header.Type & KOBJECT_TYPE_MASK) == ThreadObject))
1968 
1969 //
1970 // Kernel Process (KPROCESS)
1971 //
1972 typedef struct _KPROCESS
1973 {
1976 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
1979 #else
1981 #endif
1982 #if defined(_M_IX86)
1983  KGDTENTRY LdtDescriptor;
1984  KIDTENTRY Int21Descriptor;
1985 #endif
1987 #if defined(_M_IX86)
1988  UCHAR Iopl;
1989  UCHAR Unused;
1990 #endif
2000  union
2001  {
2002  struct
2003  {
2008  };
2010  };
2018  union
2019  {
2022  };
2025 #if (NTDDI_VERSION >= NTDDI_LONGHORN) // [
2027 #endif // ]
2028 } KPROCESS;
2029 
2030 #define ASSERT_PROCESS(object) \
2031  ASSERT((((object)->Header.Type & KOBJECT_TYPE_MASK) == ProcessObject))
2032 
2033 //
2034 // System Service Table Descriptor
2035 //
2037 {
2041 #if defined(_IA64_)
2042  LONG TableBaseGpOffset;
2043 #endif
2046 
2047 #if (NTDDI_VERSION >= NTDDI_WIN8)
2048 //
2049 // Entropy Timing State
2050 //
2052 {
2059 
2060 //
2061 // Constants from ks386.inc, ksamd64.inc and ksarm.h
2062 //
2063 #define KENTROPY_TIMING_INTERRUPTS_PER_BUFFER 0x400
2064 #define KENTROPY_TIMING_BUFFER_MASK 0x7ff
2065 #define KENTROPY_TIMING_ANALYSIS 0x0
2066 
2067 #endif /* (NTDDI_VERSION >= NTDDI_WIN8) */
2068 
2069 //
2070 // Exported Loader Parameter Block
2071 //
2073 
2074 //
2075 // Exported Hardware Data
2076 //
2084 
2085 //
2086 // Exported System Service Descriptor Tables
2087 //
2090 
2091 #endif // !NTOS_MODE_USER
2092 
2093 #endif // _KETYPES_H
DWORD *typedef PVOID
Definition: winlogon.h:61
ULONG LargePageMinimum
Definition: ketypes.h:1155
BOOLEAN Started
Definition: ketypes.h:817
ULONG ServiceCount
Definition: ketypes.h:849
_KWAIT_REASON
Definition: ketypes.h:402
CSHORT Type
Definition: ketypes.h:806
UCHAR SuspendApcFill3[FIELD_OFFSET(KAPC, SystemArgument1)]
Definition: ketypes.h:1881
PVOID StackBase
Definition: ketypes.h:183
SCHAR QuantumReset
Definition: ketypes.h:2012
LONG ThreadFlags
Definition: ketypes.h:1647
ULONG LowPart
Definition: ketypes.h:910
CONTEXT FiberContext
Definition: ketypes.h:186
struct _KTIMER_TABLE KTIMER_TABLE
LONG AbCompletedIoQoSBoostCount
Definition: ketypes.h:1920
ULONG NtMinorVersion
Definition: ketypes.h:1160
PVOID Buffer
Definition: ketypes.h:813
_Must_inspect_result_ typedef _In_ PVOID Unused
Definition: iotypes.h:1128
ULONG ExAcqResSharedWaitForExclusiveAttempts
Definition: ketypes.h:715
ULONG FreezeCount
Definition: ketypes.h:1627
#define IN
Definition: typedefs.h:38
ULONG_PTR Unused0
Definition: ketypes.h:1978
ULONG SharedDataFlags
Definition: ketypes.h:1192
_VDMSERVICECLASS
Definition: ketypes.h:451
enum _KPROFILE_SOURCE KPROFILE_SOURCE
ULONG AutoBoostActive
Definition: ketypes.h:1579
UCHAR Spare1
Definition: ketypes.h:998
enum _KPROCESS_STATE * PKPROCESS_STATE
BOOLEAN Connected
Definition: ketypes.h:842
KAFFINITY Affinity
Definition: ketypes.h:815
VOID(NTAPI * PKINTERRUPT_ROUTINE)(VOID)
Definition: ketypes.h:490
KSPIN_LOCK Lock
Definition: ketypes.h:664
USHORT UserModeGlobalLogger[16]
Definition: ketypes.h:1228
ULONG EtwStackTraceApcInserted
Definition: ketypes.h:1642
USHORT AllBoosts
Definition: ketypes.h:1065
_In_ UCHAR _In_ POWER_STATE PowerState
Definition: pofuncs.h:42
ULONG UserIdealProcessor
Definition: ketypes.h:1673
KAPC_STATE
Definition: ketypes.h:1273
ULONG TimerActive
Definition: ketypes.h:1596
struct _KENTROPY_TIMING_STATE KENTROPY_TIMING_STATE
LONG DisableBoost
Definition: ketypes.h:2005
USHORT Spare20
Definition: ketypes.h:1904
_KPROCESS_STATE
Definition: ketypes.h:439
ULONG ExTryToAcqExclusiveAttempts
Definition: ketypes.h:724
UCHAR AbWaitEntryCount
Definition: ketypes.h:1903
PVOID RangeBase
Definition: ketypes.h:810
struct _KDPC_DATA KDPC_DATA
RTL_RB_TREE WaiterTree
Definition: ketypes.h:1055
KSPIN_LOCK SpinLock
Definition: ketypes.h:834
ULONG Reserved2[7]
Definition: ketypes.h:1156
CONTEXT Context
Definition: ketypes.h:798
enum _KAPC_ENVIRONMENT KAPC_ENVIRONMENT
ULONG EnableStackSwap
Definition: ketypes.h:1619
_ALTERNATIVE_ARCHITECTURE_TYPE
Definition: ketypes.h:883
ULONG AlertedByThreadId
Definition: ketypes.h:1617
volatile LONG AbCompletedIoBoostCount
Definition: ketypes.h:1918
KTIMER_TABLE_ENTRY TimerEntries[256]
Definition: ketypes.h:673
ULONG_PTR DirectoryTableBase
Definition: ketypes.h:1977
enum _KOBJECTS KOBJECTS
UCHAR State
Definition: ketypes.h:2013
SHORT SpecialApcDisable
Definition: ketypes.h:1771
USHORT IoNormalPriorityWaiterCount
Definition: ketypes.h:1077
UCHAR AcquiredBit
Definition: ketypes.h:988
Definition: ntbasedef.h:635
ULONG ForegroundLossTime
Definition: ketypes.h:1935
ULONG CombinedApcDisable
Definition: ketypes.h:1773
struct _EXCEPTION_REGISTRATION_RECORD * ExceptionList
Definition: ketypes.h:182
_In_ ULONG _In_opt_ POBJECT_ATTRIBUTES _In_opt_ HANDLE _Out_opt_ PCLIENT_ID _In_ PKSTART_ROUTINE StartRoutine
Definition: psfuncs.h:87
ULONG EntryFlags
Definition: ketypes.h:972
SINGLE_LIST_ENTRY * LastEntry
Definition: ketypes.h:679
ULONG ExSetResOwnerPointerExclusive
Definition: ketypes.h:721
LARGE_INTEGER SystemExpirationDate
Definition: ketypes.h:1167
__wchar_t WCHAR
Definition: xmlstorage.h:180
ULONG UserStackWalkActive
Definition: ketypes.h:1592
SCHAR BasePriority
Definition: ketypes.h:2011
KAPC_STATE SavedApcState
Definition: ketypes.h:1850
LONG ProcessFlags
Definition: ketypes.h:2009
ULONG ExSetResOwnerPointerSharedOld
Definition: ketypes.h:723
ULONG ExAcqResExclusiveAttempts
Definition: ketypes.h:698
PVOID ServiceTable
Definition: ketypes.h:1561
UCHAR UnusualBoost
Definition: ketypes.h:1814
PVOID StackLimit
Definition: ketypes.h:184
_KOBJECTS
Definition: ketypes.h:385
UCHAR SchedulerApcFill2[FIELD_OFFSET(KAPC, SpareLong0)]
Definition: ketypes.h:1876
struct _KTHREAD_COUNTERS * ThreadCounters
Definition: ketypes.h:1746
UCHAR SchedulerApcFill5[FIELD_OFFSET(KAPC, Inserted)+1]
Definition: ketypes.h:1891
unsigned char * PUCHAR
Definition: retypes.h:3
char CHAR
Definition: xmlstorage.h:175
CSHORT Size
Definition: ketypes.h:867
ULONG ProcessDetachActive
Definition: ketypes.h:1598
PKSERVICE_ROUTINE MessageServiceRoutine
Definition: ketypes.h:830
USHORT IopmOffset
Definition: ketypes.h:1986
PVOID SListFaultAddress
Definition: ketypes.h:1552
Definition: ketypes.h:932
struct _KTIMER_TABLE_ENTRY * PKTIMER_TABLE_ENTRY
LONGLONG ConsoleSessionForegroundProcessId
Definition: ketypes.h:1223
ULONG Spare15
Definition: ketypes.h:1842
ULONG CommitFailTerminateRequest
Definition: ketypes.h:1638
union _KWAIT_STATUS_REGISTER KWAIT_STATUS_REGISTER
ULONGLONG TestRetInstruction
Definition: ketypes.h:1208
SCHAR Priority
Definition: ketypes.h:1672
ULONG MaxStackTraceDepth
Definition: ketypes.h:1152
UCHAR AcquiredByte
Definition: ketypes.h:987
enum _KCONTINUE_STATUS KCONTINUE_STATUS
struct _KUSER_SHARED_DATA * PKUSER_SHARED_DATA
ULONG UmsPerformingSyscall
Definition: ketypes.h:1603
ULONG64 Total
Definition: ketypes.h:907
UCHAR Removable
Definition: ketypes.h:781
struct _KDPC_LIST KDPC_LIST
ULONG CryptoExponent
Definition: ketypes.h:1153
CHAR Saturation
Definition: ketypes.h:1856
BOOLEAN Alerted[MaximumMode]
Definition: ketypes.h:1570
_In_ LARGE_INTEGER _In_ ULONG Period
Definition: kefuncs.h:1268
PKTRAP_FRAME TrapFrame
Definition: ketypes.h:1664
ULONG QuantumDonation
Definition: ketypes.h:1618
ULONG_PTR InTree
Definition: ketypes.h:945
ULONG SystemThread
Definition: ketypes.h:1597
struct _KEXECUTE_OPTIONS KEXECUTE_OPTIONS
ULONG ExEtwSynchTrackingNotificationsCount
Definition: ketypes.h:728
ULONG IpiSendRequestBroadcastCount
Definition: ketypes.h:687
ULONG ExAcqResSharedAttempts
Definition: ketypes.h:703
KSPIN_LOCK * PKSPIN_LOCK
Definition: env_spec_w32.h:73
volatile ULONG TimeSlip
Definition: ketypes.h:1164
PKWAIT_BLOCK WaitBlockList
Definition: ketypes.h:1690
CSHORT Type
Definition: ketypes.h:825
USHORT IoQoSBoost
Definition: ketypes.h:1076
ULONG UserAffinitySet
Definition: ketypes.h:1616
ULONG DeferPreemption
Definition: ketypes.h:1623
Definition: ketypes.h:962
int32_t INT_PTR
Definition: typedefs.h:62
_HARDWARE_COUNTER_TYPE
Definition: pstypes.h:123
#define SSDT_MAX_ENTRIES
Definition: ketypes.h:100
PKPROCESS Process
Definition: ketypes.h:1798
#define NUMBER_OF_LOCK_ENTRIES
Definition: ketypes.h:1546
struct _KEVENT_PAIR * PKEVENT_PAIR
ULONG ProcessReadyQueue
Definition: ketypes.h:1585
ULONG_PTR Busy
Definition: ketypes.h:943
struct _KEVENT_PAIR KEVENT_PAIR
ULONG NTSYSAPI KiDmaIoCoherency
Definition: cpu.c:33
struct _SINGLE_LIST_ENTRY * PfnDeferredList
Definition: ketypes.h:786
KLOCK_ENTRY_LOCK_STATE LockState
Definition: ketypes.h:1026
ULONG NTSYSAPI KeIcacheFlushCount
Definition: cpu.c:19
volatile KSYSTEM_TIME InterruptTime
Definition: ketypes.h:1146
#define NTSYSAPI
Definition: ntoskrnl.h:14
ULONG ExAcqResExclusiveAcquiresExclusiveRecursive
Definition: ketypes.h:700
BOOLEAN FloatingSave
Definition: ketypes.h:841
UCHAR ExecuteDisable
Definition: ketypes.h:877
ULONG ExAcqResSharedStarveExclusiveAttempts
Definition: ketypes.h:709
ULONG ExAcqResSharedStarveExclusiveWaits
Definition: ketypes.h:713
struct _SYNCH_COUNTERS SYNCH_COUNTERS
ULONG SystemCallReturn
Definition: ketypes.h:1210
FIXME: should move to rtltypes.h, but we can't include it here.
Definition: ketypes.h:924
SINGLE_LIST_ENTRY FreeListEntry
Definition: ketypes.h:967
ULONG64 HardwareCounters
Definition: ketypes.h:917
ULONG_PTR DpcLock
Definition: ketypes.h:742
ULONG ExAcqResSharedWaits
Definition: ketypes.h:707
ULONG UmsDirectedSwitchEnable
Definition: ketypes.h:1595
ULONG ExAcqResSharedStarveExclusiveAcquiresExclusive
Definition: ketypes.h:710
PKTIMER TimerExpiry[64]
Definition: ketypes.h:672
struct _KDPC_DATA * PKDPC_DATA
KINTERRUPT_MODE Mode
Definition: ketypes.h:845
enum _KPROCESS_STATE KPROCESS_STATE
volatile ULONG HighCycleTime
Definition: ketypes.h:1560
KSERVICE_ROUTINE * PKSERVICE_ROUTINE
Definition: ketypes.h:500
ULONG ExplicitIdealProcessor
Definition: ketypes.h:1626
ULONG ExAcqResSharedAcquiresExclusive
Definition: ketypes.h:704
Definition: ketypes.h:661
_TIMER_TYPE
PKPRCB WaitPrcb
Definition: ketypes.h:1882
uint32_t ULONG_PTR
Definition: typedefs.h:63
PVOID LockState
Definition: ketypes.h:947
ULONG NextProcessor
Definition: ketypes.h:1795
BOOLEAN SafeBootMode
Definition: ketypes.h:1178
LONG ReservedFlags
Definition: ketypes.h:2007
SLIST_HEADER DeadStackList
Definition: ketypes.h:774
ULONG AutoAlignment
Definition: ketypes.h:1614
PVOID FiberData
Definition: ketypes.h:181
BOOLEAN NTSYSAPI KiEnableTimerWatchdog
Definition: timerobj.c:20
UCHAR IoQoSWaiter
Definition: ketypes.h:997
struct _RTL_RB_TREE * PRTL_RB_TREE
struct _COUNTER_READING * PCOUNTER_READING
UCHAR KIRQL
Definition: env_spec_w32.h:591
struct _KPROCESS * Process
Definition: ketypes.h:809
ULONG ExecutiveResourceReleaseSharedCount
Definition: ketypes.h:696
UCHAR PriorityFloorCounts[16]
Definition: ketypes.h:1916
ULONG AllFlags
Definition: ketypes.h:1005
enum _NT_PRODUCT_TYPE * PNT_PRODUCT_TYPE
ULONG ExBoostSharedOwners
Definition: ketypes.h:727
RTL_BALANCED_NODE TreeNode
Definition: ketypes.h:966
struct _GETSETCONTEXT GETSETCONTEXT
PXSTATE_SAVE XStateSave
Definition: ketypes.h:1751
SINGLE_LIST_ENTRY ForegroundDpcStackListEntry
Definition: ketypes.h:1941
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
Definition: IoEaTest.cpp:117
LONG MiscFlags
Definition: ketypes.h:1607
ULONG NtMajorVersion
Definition: ketypes.h:1159
SHORT KernelApcDisable
Definition: ketypes.h:1770
KPROFILE_SOURCE Source
Definition: ketypes.h:816
UCHAR CallbackNestingLevel
Definition: ketypes.h:1892
ULONG ImageFileExecutionOptions
Definition: ketypes.h:1234
ULONG TickCount
Definition: ketypes.h:835
KSTART_ROUTINE * PKSTART_ROUTINE
Definition: ketypes.h:487
volatile KSYSTEM_TIME SystemTime
Definition: ketypes.h:1147
ULONG ExAcqResSharedWaitForExclusiveAcquiresShared
Definition: ketypes.h:717
PRTL_BALANCED_NODE Min
Definition: ketypes.h:927
ULONG ExAcqResSharedStarveExclusiveAcquiresShared
Definition: ketypes.h:711
ULONG ExAcqResSharedStarveExclusiveNotAcquires
Definition: ketypes.h:714
ULONG ExAcqResSharedNotAcquires
Definition: ketypes.h:708
long LONG
Definition: pedump.c:60
ULONG ExSetResOwnerPointerSharedNew
Definition: ketypes.h:722
UCHAR ExecuteOptions
Definition: ketypes.h:2021
NT_PRODUCT_TYPE NtProductType
Definition: ketypes.h:1157
KDPC_LIST DpcList
Definition: ketypes.h:738
UCHAR SystemHeteroCpuPolicy
Definition: ketypes.h:1652
KAPC_STATE ApcState
Definition: ketypes.h:1668
short SHORT
Definition: pedump.c:59
UCHAR EntryOffset
Definition: ketypes.h:975
ULONG SystemAffinityActive
Definition: ketypes.h:1587
struct _KTHREAD_COUNTERS * PKTHREAD_COUNTERS
PVOID FirstArgument
Definition: ketypes.h:1663
ULONG SessionId
Definition: ketypes.h:1042
BOOLEAN KdDebuggerEnabled
Definition: ketypes.h:1169
ULONG_PTR EntryLock
Definition: ketypes.h:1059
KEVENT Event
Definition: ketypes.h:796
ULONG WaitNext
Definition: ketypes.h:1586
ULONG ExAcqResSharedAcquiresShared
Definition: ketypes.h:705
ULONG TickCountMultiplier
Definition: ketypes.h:1145
ULONG ExAcqResSharedWaitForExclusiveAcquiresSharedRecursive
Definition: ketypes.h:718
ULONG64 CycleTimeBias
Definition: ketypes.h:916
UCHAR ImageDispatchEnable
Definition: ketypes.h:882
volatile UCHAR CrossThreadReleasableAndBusyByte
Definition: ketypes.h:1031
UCHAR UserHeteroCpuPolicy
Definition: ketypes.h:1653
ULONG ApcInterruptRequest
Definition: ketypes.h:1593
LIST_ENTRY ProfileListEntry
Definition: ketypes.h:808
ULONG64 WaitReasonBitMap
Definition: ketypes.h:912
ULONG StackCount
Definition: ketypes.h:2023
PVOID RangeLimit
Definition: ketypes.h:811
enum _KINTERRUPT_MODE KINTERRUPT_MODE
ULONG TickCountLowDeprecated
Definition: ketypes.h:1144
SINGLE_LIST_ENTRY ListHead
Definition: ketypes.h:678
USHORT IoQoSWaiterCount
Definition: ketypes.h:1078
enum _VDMSERVICECLASS VDMSERVICECLASS
struct _KLOCK_ENTRY_LOCK_STATE * PKLOCK_ENTRY_LOCK_STATE
USHORT IoBoost
Definition: ketypes.h:1072
LIST_ENTRY QueueListEntry
Definition: ketypes.h:1782
LIST_ENTRY ProcessListEntry
Definition: ketypes.h:2024
Definition: bufpool.h:45
UCHAR WaitBlockFill10[2 *sizeof(KWAIT_BLOCK)+FIELD_OFFSET(KWAIT_BLOCK, SparePtr)]
Definition: ketypes.h:1755
PVOID KernelStack
Definition: ketypes.h:1565
USHORT ImageNumberHigh
Definition: ketypes.h:1150
PVOID DeallocationStack
Definition: ketypes.h:185
struct DECLSPEC_ALIGN(16) _M128A
Definition: ketypes.h:915
KPROCESSOR_MODE Mode
Definition: ketypes.h:797
PVOID FlsData
Definition: ketypes.h:190
CHAR CpuPriorityKey
Definition: ketypes.h:1057
KTIMER Timer
Definition: ketypes.h:1701
ULONG DispatchCount
Definition: ketypes.h:850
LIST_ENTRY ThreadListHead
Definition: ketypes.h:1997
enum _KTHREAD_STATE KTHREAD_STATE
ULONG ScbReadyQueue
Definition: ketypes.h:1600
UCHAR DisableThunkEmulation
Definition: ketypes.h:879
LONG DisableQuantum
Definition: ketypes.h:2006
struct _KSYSTEM_TIME KSYSTEM_TIME
ULONG DpcCount
Definition: ketypes.h:748
CCHAR Number
Definition: ketypes.h:843
struct _LOADER_PARAMETER_BLOCK NTSYSAPI * KeLoaderBlock
Definition: krnlinit.c:29
#define MAX_WOW64_SHARED_ENTRIES
Definition: ketypes.h:1141
struct _KSYSTEM_TIME * PKSYSTEM_TIME
UCHAR WaitReason
Definition: ketypes.h:1854
CHAR BasePriority
Definition: ketypes.h:1807
ULARGE_INTEGER Time
Definition: ketypes.h:667
ULONG SessionId
Definition: ketypes.h:954
ULONG ExecutiveResourceAcquiresCount
Definition: ketypes.h:693
enum _EVENT_TYPE EVENT_TYPE
ULONG ExDeleteResourceCount
Definition: ketypes.h:692
USHORT ImageNumberLow
Definition: ketypes.h:1149
union _KWAIT_STATUS_REGISTER * PKWAIT_STATUS_REGISTER
_Out_ PULONG UserTime
Definition: kefuncs.h:784
UCHAR ExplicitSystemHeteroCpuPolicy
Definition: ketypes.h:1654
struct _KNODE::_flags Flags
struct _KLOCK_ENTRY_LOCK_STATE KLOCK_ENTRY_LOCK_STATE
volatile KSYSTEM_TIME TickCount
Definition: ketypes.h:1213
ULONG DisableBoost
Definition: ketypes.h:1615
ULONG Alertable
Definition: ketypes.h:1588
_In_opt_ PVOID _In_opt_ PVOID SystemArgument1
Definition: ketypes.h:675
ULONG64 NpxState
Definition: ketypes.h:1958
SINGLE_LIST_ENTRY PropagateBoostsEntry
Definition: ketypes.h:1914
LIST_ENTRY InterruptListEntry
Definition: ketypes.h:827
volatile INT_PTR WaitStatus
Definition: ketypes.h:1689
int64_t LONGLONG
Definition: typedefs.h:66
struct _FIBER * PFIBER
VOID(NTAPI * PTIMER_APC_ROUTINE)(_In_ PVOID TimerContext, _In_ ULONG TimerLowValue, _In_ LONG TimerHighValue)
Definition: ketypes.h:1096
KAFFINITY Affinity
Definition: ketypes.h:1999
int64_t LONG64
Definition: typedefs.h:66
unsigned char BOOLEAN
struct _KPROCESS KPROCESS
_In_ KPROCESSOR_MODE PreviousMode
Definition: sefuncs.h:103
ULONG NTSYSAPI KeMaximumIncrement
Definition: clock.c:20
USHORT CpuBoostsBitmap
Definition: ketypes.h:1071
struct _KLOCK_ENTRY KLOCK_ENTRY
LIST_ENTRY Entry
Definition: ketypes.h:666
ULONG64 Start
Definition: ketypes.h:906
KIRQL Irql
Definition: ketypes.h:839
ULONG TebFlags
Definition: ketypes.h:192
ULONG KernelTime
Definition: ketypes.h:1877
ULONGLONG Rsvd1
Definition: ketypes.h:852
struct _THREAD_PERFORMANCE_DATA * UserData
Definition: ketypes.h:913
LONG High1Time
Definition: ketypes.h:911
UCHAR HeadNodeBit
Definition: ketypes.h:995
UCHAR WaitingBit
Definition: ketypes.h:981
ULONG MmShiftedColor
Definition: ketypes.h:784
enum _MODE MODE
#define PROCESSOR_FEATURE_MAX
ALTERNATIVE_ARCHITECTURE_TYPE AlternativeArchitecture
Definition: ketypes.h:1165
KAPC SchedulerApc
Definition: ketypes.h:1863
SINGLE_LIST_ENTRY SwapListEntry
Definition: ketypes.h:1995
UCHAR CrossThreadFlags
Definition: ketypes.h:992
VOID(NTAPI * PKSYSTEM_ROUTINE)(PKSTART_ROUTINE StartRoutine, PVOID StartContext)
Definition: ketypes.h:625
char CCHAR
Definition: typedefs.h:50
UCHAR Spare0
Definition: ketypes.h:1655
ULONG ExAcqResExclusiveNotAcquires
Definition: ketypes.h:702
uint64_t ULONGLONG
Definition: typedefs.h:65
UCHAR IoPriorityBit
Definition: ketypes.h:996
SINGLE_LIST_ENTRY SwapListEntry
Definition: ketypes.h:1694
struct _KUSER_SHARED_DATA KUSER_SHARED_DATA
UCHAR Visited
Definition: ketypes.h:2017
BOOLEAN ShareVector
Definition: ketypes.h:844
ULONG DbgElevationEnabled
Definition: ketypes.h:1195
ULONG ExpectedRunTime
Definition: ketypes.h:1564
volatile VOID * StackLimit
Definition: ketypes.h:1555
VOID(NTAPI * PKRUNDOWN_ROUTINE)(IN struct _KAPC *Apc)
Definition: ketypes.h:638
signed char SCHAR
Definition: sqltypes.h:14
_In_ ULONG _In_ ULONG _In_ ULONG _Out_ PKIRQL _Out_ PKAFFINITY Affinity
Definition: halfuncs.h:170
ULONG MessageIndex
Definition: ketypes.h:831
enum _WAIT_TYPE WAIT_TYPE
struct _RTL_RB_TREE RTL_RB_TREE
FIXME: should move to rtltypes.h, but we can't include it here.
SINGLE_LIST_ENTRY IoSelfBoostsEntry
Definition: ketypes.h:1915
PKQUEUE Queue
Definition: ketypes.h:1696
KINTERRUPT_POLARITY Polarity
Definition: ketypes.h:847
ULONG64 QuantumTarget
Definition: ketypes.h:1553
#define RTL_SIZEOF_THROUGH_FIELD(type, field)
Definition: ntbasedef.h:679
UCHAR WaitBlockFill8[FIELD_OFFSET(KWAIT_BLOCK, SparePtr)]
Definition: ketypes.h:1745
VOID(NTAPI * PKNORMAL_ROUTINE)(IN PVOID NormalContext OPTIONAL, IN PVOID SystemArgument1 OPTIONAL, IN PVOID SystemArgument2 OPTIONAL)
Definition: ketypes.h:632
ULONG ExReInitializeResourceCount
Definition: ketypes.h:691
struct _KSCHEDULING_GROUP * SchedulingGroup
Definition: ketypes.h:1567
PVOID LockUnsafe
Definition: ketypes.h:1027
CCHAR KPROCESSOR_MODE
Definition: ketypes.h:7
struct _PP_LOOKASIDE_LIST * PPP_LOOKASIDE_LIST
ULONG ChargeOnlyGroup
Definition: ketypes.h:1622
UCHAR ForegroundBoost
Definition: ketypes.h:1813
struct _FIBER FIBER
static IUnknown Object
Definition: main.c:512
LIST_ENTRY WaitListEntry
Definition: ketypes.h:1693
#define LONG
Definition: msvc.h:36
UCHAR AffinityFill[FIELD_OFFSET(GROUP_AFFINITY, Reserved)]
Definition: ketypes.h:1831
KEVENT SuspendEvent
Definition: ketypes.h:1897
UCHAR AdjustReason
Definition: ketypes.h:1818
struct _GENERAL_LOOKASIDE * L
Definition: ketypes.h:760
ULONG GuaranteedStackBytes
Definition: ketypes.h:191
ULONG NumberOfPhysicalPages
Definition: ketypes.h:1177
ULONGLONG CycleTime
Definition: ketypes.h:2026
UCHAR AbEntrySummary
Definition: ketypes.h:1902
ULONG PVOID Reserved
Definition: ntimage.h:533
ULONG QuantumEndMigrate
Definition: ketypes.h:1594
enum _KINTERRUPT_POLARITY KINTERRUPT_POLARITY
unsigned __int64 ULONG64
Definition: imports.h:198
enum _TIMER_TYPE TIMER_TYPE
ULONG DisableStackCheck
Definition: ketypes.h:1604
ULONG ContextSwitches
Definition: ketypes.h:915
unsigned char UCHAR
Definition: xmlstorage.h:181
struct _KTHREAD_COUNTERS KTHREAD_COUNTERS
ULONG Vector
Definition: ketypes.h:838
ULONG ExBoostExclusiveOwner
Definition: ketypes.h:726
COUNTER_READING HwCounter[16]
Definition: ketypes.h:918
PKSERVICE_ROUTINE ServiceRoutine
Definition: ketypes.h:828
UCHAR AbFreeEntryCount
Definition: ketypes.h:1932
UCHAR ThreadSeed
Definition: ketypes.h:2014
ULONG ExecutiveResourceConvertsCount
Definition: ketypes.h:697
_EVENT_TYPE
CSHORT Size
Definition: ketypes.h:807
PVOID NormalContext
Definition: ketypes.h:550
Definition: ketypes.h:687
UCHAR IdealNode
Definition: ketypes.h:2016
ULONG64 RelativeTimerBias
Definition: ketypes.h:1699
PVOID *typedef PHANDLE
Definition: ntsecpkg.h:414
#define VOID
Definition: acefi.h:82
ULONG ExecutiveResourceContentionsCount
Definition: ketypes.h:694
Definition: ketypes.h:370
KEVENT LowEvent
Definition: ketypes.h:868
ULONG IdealProcessor
Definition: ketypes.h:1834
ULONG ExAcqResSharedWaitForExclusiveAcquiresExclusive
Definition: ketypes.h:716
ULONG_PTR InGlobalForegroundList
Definition: ketypes.h:1942
UCHAR SchedulerApcFill4[FIELD_OFFSET(KAPC, SystemArgument2)]
Definition: ketypes.h:1886
Definition: ketypes.h:535
LIST_ENTRY ReadyListHead
Definition: ketypes.h:1994
_MODE
Definition: ketypes.h:10
_KAPC_ENVIRONMENT
Definition: ketypes.h:653
Definition: typedefs.h:117
ULONG SpinLockSpinCount
Definition: ketypes.h:686
ULONG ForceDeferSchedule
Definition: ketypes.h:1625
struct _GETSETCONTEXT * PGETSETCONTEXT
UCHAR ApcStateFill[RTL_SIZEOF_THROUGH_FIELD(KAPC_STATE, UserApcPending)]
Definition: ketypes.h:1671
struct _KTHREAD KTHREAD
volatile ULONG ActiveConsoleId
Definition: ketypes.h:1173
volatile KSYSTEM_TIME TimeZoneBias
Definition: ketypes.h:1148
ULONG ExAcqResSharedAcquiresSharedRecursive
Definition: ketypes.h:706
UCHAR Color
Definition: ketypes.h:777
ULONG IpiSendRequestRoutineCount
Definition: ketypes.h:688
ULONG PriorityFloorSummary
Definition: ketypes.h:1917
KSPIN_LOCK ProcessLock
Definition: ketypes.h:1998
ULONG ExAcqResSharedStarveExclusiveAcquiresSharedRecursive
Definition: ketypes.h:712
ULONG CurrentRunTime
Definition: ketypes.h:1563
struct _KTIMER_TABLE * PKTIMER_TABLE
static SERVICE_TABLE_ENTRYW ServiceTable[2]
Definition: eventlog.c:24
_In_opt_ PVOID _In_opt_ PVOID _In_opt_ PVOID SystemArgument2
Definition: ketypes.h:675
CSHORT Type
Definition: ketypes.h:866
UCHAR QuantumReset
Definition: ketypes.h:1872
ULONG ExAcqResExclusiveAcquiresExclusive
Definition: ketypes.h:699
#define OPTIONAL
Definition: typedefs.h:40
#define _In_
Definition: no_sal2.h:204
PKSPIN_LOCK ActualLock
Definition: ketypes.h:836
PVOID StackBase
Definition: ketypes.h:1556
ULONG DispatchCode[DISPATCH_LENGTH]
Definition: ketypes.h:858
UCHAR SavedApcStateFill[FIELD_OFFSET(KAPC_STATE, UserApcPending)+1]
Definition: ketypes.h:1853
ULONG NTSYSAPI KeMinimumIncrement
Definition: clock.c:21
LONG High2Time
Definition: ketypes.h:912
ULONG QueueDeferPreemption
Definition: ketypes.h:1624
Definition: compat.h:484
ULONG DbgVirtEnabled
Definition: ketypes.h:1196
volatile ULONG DpcQueueDepth
Definition: ketypes.h:746
PVOID SessionState
Definition: ketypes.h:951
ULONG ExTryToAcqExclusiveAcquires
Definition: ketypes.h:725
ULONG DbgInstallerDetectEnabled
Definition: ketypes.h:1197
KLOCK_ENTRY LockEntries[NUMBER_OF_LOCK_ENTRIES]
Definition: ketypes.h:1913
ULONG SpinLockContentionCount
Definition: ketypes.h:685
enum State_ State
Definition: pofuncs.h:54
CHAR PreviousMode
Definition: ketypes.h:1806
UCHAR SchedulerApcFill1[FIELD_OFFSET(KAPC, SpareByte1)]
Definition: ketypes.h:1871
WCHAR NtSystemRoot[260]
Definition: ketypes.h:1151
ULONG_PTR Segment
Definition: ketypes.h:814
_NT_PRODUCT_TYPE
struct _GENERAL_LOOKASIDE * P
Definition: ketypes.h:759
UCHAR ThreadLocalFlags
Definition: ketypes.h:978
RTL_RB_TREE OwnerTree
Definition: ketypes.h:1054
ULONG CalloutActive
Definition: ketypes.h:1599
unsigned short USHORT
Definition: pedump.c:61
struct _SYNCH_COUNTERS * PSYNCH_COUNTERS
volatile ULONG64 TickCountQuad
Definition: ketypes.h:1214
CHAR PriorityDecrement
Definition: ketypes.h:1810
CHAR SuspendCount
Definition: ketypes.h:1855
ULONG_PTR KAFFINITY
Definition: compat.h:75
UCHAR Fill
Definition: ketypes.h:782
ULONG ExAcqResExclusiveWaits
Definition: ketypes.h:701
enum _ALTERNATIVE_ARCHITECTURE_TYPE ALTERNATIVE_ARCHITECTURE_TYPE
struct _KPROFILE * PKPROFILE
ULONG KSPIN_LOCK
Definition: env_spec_w32.h:72
ULONG StaticState
Definition: ketypes.h:1004
volatile KAFFINITY ActiveProcessors
Definition: ketypes.h:1991
volatile ULONG64 CycleTime
Definition: ketypes.h:1558
UCHAR Spare0
Definition: ketypes.h:982
#define FIELD_OFFSET(t, f)
Definition: typedefs.h:254
LIST_ENTRY ProfileListHead
Definition: ketypes.h:1975
__int3264 LONG_PTR
Definition: mstsclib_h.h:276
ULONG SpinLockAcquireCount
Definition: ketypes.h:684
UCHAR WaitBlockCount
Definition: ketypes.h:1833
unsigned int * PULONG
Definition: retypes.h:1
ULONGLONG SystemCallPad[3]
Definition: ketypes.h:1211
CHAR AdjustIncrement
Definition: ketypes.h:1819
UCHAR NXSupportPolicy
Definition: ketypes.h:1171
ULONG ExInitializeResourceCount
Definition: ketypes.h:690
PVOID Wx86Tib
Definition: ketypes.h:188
Definition: bcd.h:201
CHAR Spare12
Definition: ketypes.h:1681
KIRQL SynchronizeIrql
Definition: ketypes.h:840
UCHAR SchedulerApcFill0[FIELD_OFFSET(KAPC, SpareByte0)]
Definition: ketypes.h:1866
ULONG KernelTime
Definition: ketypes.h:1992
LIST_ENTRY ThreadListEntry
Definition: ketypes.h:1898
XSAVE_FORMAT
Definition: ketypes.h:944
ULONG ReservedStackInUse
Definition: ketypes.h:1602
struct _KSCB * QueuedScb
Definition: ketypes.h:1956
ULONG LastSystemRITEventTickCount
Definition: ketypes.h:1176
PVOID Teb
Definition: ketypes.h:1697
UCHAR ExecuteEnable
Definition: ketypes.h:878
ULONG BucketShift
Definition: ketypes.h:812
enum _KTHREAD_STATE * PKTHREAD_STATE
ULONG UserTime
Definition: ketypes.h:1893
struct _KSERVICE_TABLE_DESCRIPTOR KSERVICE_TABLE_DESCRIPTOR
struct _KENTROPY_TIMING_STATE * PKENTROPY_TIMING_STATE
KEXECUTE_OPTIONS Flags
Definition: ketypes.h:2020
struct _COUNTER_READING COUNTER_READING
UCHAR ResourceIndex
Definition: ketypes.h:1867
DISPATCHER_HEADER Header
Definition: ketypes.h:1551
#define DISPATCH_LENGTH
Definition: ketypes.h:207
_Must_inspect_result_ _In_ PLARGE_INTEGER _In_ PLARGE_INTEGER _In_ ULONG _In_ PFILE_OBJECT _In_ PVOID Process
Definition: fsrtlfuncs.h:219
ULONG_PTR CrossThreadReleasable
Definition: ketypes.h:939
enum _KWAIT_REASON KWAIT_REASON
_ADJUST_REASON
Definition: ketypes.h:418
LIST_ENTRY GlobalForegroundListEntry
Definition: ketypes.h:1938
PVOID LegoData
Definition: ketypes.h:1887
UCHAR UserAffinityFill[FIELD_OFFSET(GROUP_AFFINITY, Reserved)]
Definition: ketypes.h:1805
BOOLEAN Running
Definition: ketypes.h:1569
PVOID SessionState
Definition: ketypes.h:1039
XSAVE_FORMAT * StateSaveArea
Definition: ketypes.h:1566
#define OUT
Definition: typedefs.h:39
KSERVICE_TABLE_DESCRIPTOR NTSYSAPI KeServiceDescriptorTable[SSDT_MAX_ENTRIES]
Definition: procobj.c:23
enum _NT_PRODUCT_TYPE NT_PRODUCT_TYPE
volatile UCHAR State
Definition: ketypes.h:1679
PVOID Win32Thread
Definition: ketypes.h:1756
UCHAR InTreeByte
Definition: ketypes.h:1036
GROUP_AFFINITY Affinity
Definition: ketypes.h:1828
CSHORT Size
Definition: ketypes.h:826
_KTHREAD_STATE
Definition: ketypes.h:367
struct _KINTERRUPT KINTERRUPT
unsigned int ULONG
Definition: retypes.h:1
ULONG NTSYSAPI KeDcacheFlushCount
Definition: cpu.c:20
ULONG ContextSwitches
Definition: ketypes.h:1678
SHORT SListFaultCount
Definition: ketypes.h:1857
PRTL_BALANCED_NODE Root
Definition: ketypes.h:926
_In_ PLARGE_INTEGER _In_opt_ PTIMER_APC_ROUTINE _In_opt_ PVOID TimerContext
Definition: zwfuncs.h:428
ULONG DeferredProcessor
Definition: ketypes.h:1796
uint32_t * PULONG_PTR
Definition: typedefs.h:63
UCHAR PowerState
Definition: ketypes.h:2015
UCHAR NodeNumber
Definition: ketypes.h:779
UCHAR Preempted
Definition: ketypes.h:1817
struct _KEXECUTE_OPTIONS * PKEXECUTE_OPTIONS
ULONG WaitTime
Definition: ketypes.h:1765
volatile UCHAR Tag
Definition: ketypes.h:1651
ULONG ReadyTransition
Definition: ketypes.h:1581
ULONG IpiSendSoftwareInterruptCount
Definition: ketypes.h:689
ULONG DisableQuantum
Definition: ketypes.h:1621
UCHAR ApcStateIndex
Definition: ketypes.h:1832
SLIST_HEADER PfnDereferenceSListHead
Definition: ketypes.h:775
struct _KDPC_LIST * PKDPC_LIST
struct _KWAIT_BLOCK KWAIT_BLOCK
KAFFINITY ProcessorMask
Definition: ketypes.h:776
ULONG ApcQueueable
Definition: ketypes.h:1601
KPROCESSOR_MODE WaitMode
Definition: ketypes.h:1686
PKDPC ActiveDpc
Definition: ketypes.h:750
UCHAR Seed
Definition: ketypes.h:778
KEVENT HighEvent
Definition: ketypes.h:869
ULONG ExAcqResSharedWaitForExclusiveWaits
Definition: ketypes.h:719
enum _KPROFILE_SOURCE KPROFILE_SOURCE
enum _HARDWARE_COUNTER_TYPE Type
Definition: ketypes.h:904
UCHAR WaitBlockFill9[1 *sizeof(KWAIT_BLOCK)+FIELD_OFFSET(KWAIT_BLOCK, SparePtr)]
Definition: ketypes.h:1750
ULONG UserTime
Definition: ketypes.h:1993
LONG AutoAlignment
Definition: ketypes.h:2004
PKINTERRUPT_ROUTINE DispatchAddress
Definition: ketypes.h:837
UCHAR ExecuteDispatchEnable
Definition: ketypes.h:881
short CSHORT
Definition: umtypes.h:127
_WAIT_TYPE
PVOID InitialStack
Definition: ketypes.h:1554
ULONG DbgErrorPortPresent
Definition: ketypes.h:1194
enum _ADJUST_REASON ADJUST_REASON
struct _KPROFILE KPROFILE
ULONG_PTR AffinityVersion
Definition: ketypes.h:1824
struct _KTIMER_TABLE_ENTRY KTIMER_TABLE_ENTRY
PVOID ServiceContext
Definition: ketypes.h:833
GROUP_AFFINITY UserAffinity
Definition: ketypes.h:1802
struct _KLOCK_ENTRY * PKLOCK_ENTRY
ULONG_PTR NTSYSAPI KiBugCheckData[]
Definition: bug.c:30
struct _KNODE * PKNODE
KSPIN_LOCK ThreadLock
Definition: ketypes.h:1557
_In_ LONG _In_ LONG Limit
Definition: kefuncs.h:328
ULONG FreeCount[2]
Definition: ketypes.h:785
KWAIT_STATUS_REGISTER WaitRegister
Definition: ketypes.h:1568
ULONG GuiThread
Definition: ketypes.h:1620
ULONG ProcessStackCountDecremented
Definition: ketypes.h:1639
PVOID VdmTrapcHandler
Definition: ketypes.h:1996
ULONG SystemCallNumber
Definition: ketypes.h:1659
ULONG ExAcqResSharedWaitForExclusiveNotAcquires
Definition: ketypes.h:720
ULONG ExecutiveResourceReleaseExclusiveCount
Definition: ketypes.h:695
struct _ACTIVATION_CONTEXT_STACK * ActivationContextStackPointer
Definition: ketypes.h:189
* PKAPC_STATE
Definition: ketypes.h:1273
ULONG ComPlusPackage
Definition: ketypes.h:1175
#define THREAD_WAIT_OBJECTS
Definition: ketypes.h:480
BOOLEAN ProcessorFeatures[PROCESSOR_FEATURE_MAX]
Definition: ketypes.h:1161
struct _KSERVICE_TABLE_DESCRIPTOR * PKSERVICE_TABLE_DESCRIPTOR
_KCONTINUE_STATUS
Definition: ketypes.h:428
DISPATCHER_HEADER Header
Definition: ketypes.h:1974
_KPROFILE_SOURCE
Definition: winternl.h:2122
volatile SHORT KeReferenceCount
Definition: ketypes.h:1924
ULONG ThreadFlagsSpare
Definition: ketypes.h:1640
LIST_ENTRY MutantListHead
Definition: ketypes.h:1899
UCHAR WaitBlockFill11[3 *sizeof(KWAIT_BLOCK)+FIELD_OFFSET(KWAIT_BLOCK, Object)]
Definition: ketypes.h:1760
ULONG ExEtwSynchTrackingNotificationsAccountedCount
Definition: ketypes.h:729
volatile ULONG DismountCount
Definition: ketypes.h:1174
KIRQL WaitIrql
Definition: ketypes.h:1685
BOOLEAN ProductTypeIsValid
Definition: ketypes.h:1158
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
ULONG Wow64SharedInformation[MAX_WOW64_SHARED_ENTRIES]
Definition: ketypes.h:1224
struct _KNODE KNODE
struct _PP_LOOKASIDE_LIST PP_LOOKASIDE_LIST
KSERVICE_TABLE_DESCRIPTOR NTSYSAPI KeServiceDescriptorTableShadow[SSDT_MAX_ENTRIES]
Definition: procobj.c:24