ReactOS 0.4.16-dev-1097-g530d26a
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
581#if (NTDDI_VERSION >= NTDDI_WIN8)
582 ULONG AitSamplingValue; // 0x248
583 ULONG AppCompatFlag; // 0x24c
584 ULONGLONG RNGSeedVersion; // 0x250
586 volatile LONG TimeZoneBiasStamp; // 0x25c
587#if (NTDDI_VERSION >= NTDDI_WIN10)
588 ULONG NtBuildNumber; // 0x260
589#else
590 ULONG Reserved2; // 0x260
591#endif
592#else
593 ULONG Reserved2[7]; // 0x248
594#endif // NTDDI_VERSION >= NTDDI_WIN8
595
598 BOOLEAN Reserved0[1]; // 0x269
599#if (NTDDI_VERSION >= NTDDI_WIN8)
601#endif
602 ULONG NtMajorVersion; // 0x26c
603 ULONG NtMinorVersion; // 0x270
605 ULONG Reserved1; // 0x2b4
606 ULONG Reserved3; // 0x2b8
607 volatile ULONG TimeSlip; // 0x2bc
609#if (NTDDI_VERSION >= NTDDI_WIN10)
610 ULONG BootId; // 0x2c4
611#else
612 ULONG AltArchitecturePad[1]; // 0x2c4
613#endif
615 ULONG SuiteMask; // 0x2d0
616 BOOLEAN KdDebuggerEnabled; // 0x2d4
617 union
618 {
619 UCHAR MitigationPolicies; // 0x2d5
620 struct
621 {
625 UCHAR Reserved : 2;
626 };
627 };
628#if (NTDDI_VERSION >= NTDDI_WIN10_19H1)
629 USHORT CyclesPerYield; // 0x2d6 // Win 10 19H1+
630#else
631 UCHAR Reserved6[2]; // 0x2d6
632#endif
633 volatile ULONG ActiveConsoleId; // 0x2d8
634 volatile ULONG DismountCount; // 0x2dc
635 ULONG ComPlusPackage; // 0x2e0
638 BOOLEAN SafeBootMode; // 0x2ec
639
640#if (NTDDI_VERSION == NTDDI_WIN7)
641 union
642 {
643 UCHAR TscQpcData; // 0x2ed
644 struct
645 {
646 UCHAR TscQpcEnabled:1; // 0x2ed
647 UCHAR TscQpcSpareFlag:1; // 0x2ed
648 UCHAR TscQpcShift:6; // 0x2ed
651 UCHAR TscQpcPad[2]; // 0x2ee
652#elif (NTDDI_VERSION >= NTDDI_WIN10_RS1)
653 union
654 {
655 UCHAR VirtualizationFlags; // 0x2ed
656#if defined(_ARM64_)
657 struct
658 {
659 UCHAR ArchStartedInEl2 : 1;
660 UCHAR QcSlIsSupported : 1;
661 UCHAR : 6;
662 };
663#endif
664 };
665 UCHAR Reserved12[2]; // 0x2ee
666#else
667 UCHAR Reserved12[3]; // 0x2ed
668#endif // NTDDI_VERSION == NTDDI_WIN7
669
670#if (NTDDI_VERSION >= NTDDI_VISTA)
671 union
672 {
673 ULONG SharedDataFlags; // 0x2f0
674 struct
675 {
676 ULONG DbgErrorPortPresent : 1; // 0x2f0
677 ULONG DbgElevationEnabled : 1; // 0x2f0
678 ULONG DbgVirtEnabled : 1; // 0x2f0
679 ULONG DbgInstallerDetectEnabled : 1; // 0x2f0
680#if (NTDDI_VERSION >= NTDDI_WIN8)
681 ULONG DbgLkgEnabled : 1; // 0x2f0
682#else
683 ULONG DbgSystemDllRelocated : 1; // 0x2f0
684#endif
685 ULONG DbgDynProcessorEnabled : 1; // 0x2f0
686#if (NTDDI_VERSION >= NTDDI_WIN8)
687 ULONG DbgConsoleBrokerEnabled : 1; // 0x2f0
688#else
689 ULONG DbgSEHValidationEnabled : 1; // 0x2f0
690#endif
691 ULONG DbgSecureBootEnabled : 1; // 0x2f0 Win8+
692 ULONG DbgMultiSessionSku : 1; // 0x2f0 Win 10+
693 ULONG DbgMultiUsersInSessionSku : 1; // 0x2f0 Win 10 RS1+
694 ULONG DbgStateSeparationEnabled : 1; // 0x2f0 Win 10 RS3+
695 ULONG SpareBits : 21; // 0x2f0
698#else
699 ULONG TraceLogging;
700#endif // NTDDI_VERSION >= NTDDI_VISTA
701
702 ULONG DataFlagsPad[1]; // 0x2f4
704#if (NTDDI_VERSION >= NTDDI_WIN8)
705 ULONGLONG QpcFrequency; // 0x300
706#else
707 ULONG SystemCall; // 0x300
708 ULONG SystemCallReturn; // 0x304
709#endif
710#if (NTDDI_VERSION >= NTDDI_WIN10_TH2)
711 ULONG SystemCall; // 0x308
712 ULONG SystemCallPad0; // 0x30c Renamed to Reserved2 in Vibranium R3
713 ULONGLONG SystemCallPad[2]; // 0x310
714#else
715 ULONGLONG SystemCallPad[3]; // 0x308
716#endif
717 union
718 {
719 volatile KSYSTEM_TIME TickCount; // 0x320
720 volatile ULONG64 TickCountQuad; // 0x320
721 struct
722 {
724 ULONG TickCountPad[1]; // 0x32c
727 ULONG Cookie; // 0x330
728
729#if (NTDDI_VERSION < NTDDI_VISTA)
730 ULONG Wow64SharedInformation[MAX_WOW64_SHARED_ENTRIES]; // 0x334
731#endif
732
733//
734// Windows Vista and later
735//
736#if (NTDDI_VERSION >= NTDDI_VISTA)
737
738 ULONG CookiePad[1]; // 0x334
740
741#if (NTDDI_VERSION >= NTDDI_WIN8)
742#if (NTDDI_VERSION >= NTDDI_WINBLUE)
743 ULONGLONG TimeUpdateLock; // 0x340
744#else
745 ULONGLONG TimeUpdateSequence; // 0x340
746#endif
751#if (NTDDI_VERSION >= NTDDI_WIN10)
755 ULONG EnclaveFeatureMask[4]; // 0x36c Win 10 TH2+
756 ULONG TelemetryCoverageRound; // 0x37c Win 10 RS2+
757#else // NTDDI_VERSION < NTDDI_WIN10
758 ULONG QpcSystemTimeIncrement32; // 0x368
759 ULONG QpcInterruptTimeIncrement32; // 0x36c
762#if (NTDDI_VERSION >= NTDDI_WINBLUE)
764 UCHAR Reserved8[12]; // 0x374
765#else
766 UCHAR Reserved8[14]; // 0x372
767#endif
768#endif // NTDDI_VERSION < NTDDI_WIN10
769#elif (NTDDI_VERSION >= NTDDI_VISTASP2)
770 ULONG DEPRECATED_Wow64SharedInformation[MAX_WOW64_SHARED_ENTRIES]; // 0x340
771#else
772 ULONG Wow64SharedInformation[MAX_WOW64_SHARED_ENTRIES]; // 0x340
773#endif // NTDDI_VERSION >= NTDDI_VISTA
774
775#if (NTDDI_VERSION >= NTDDI_WIN7)
776 USHORT UserModeGlobalLogger[16]; // 0x380
777#else
778 USHORT UserModeGlobalLogger[8]; // 0x380
779 ULONG HeapTracingPid[2]; // 0x390
780 ULONG CritSecTracingPid[2]; // 0x398
781#endif
782
784 ULONG LangGenerationCount; // 0x3a4 Vista SP2+
785
786#if (NTDDI_VERSION >= NTDDI_WIN8)
787 ULONGLONG Reserved4; // 0x3a8
788#elif (NTDDI_VERSION >= NTDDI_WIN7)
789 ULONGLONG Reserved5; // 0x3a8
790#else
791 union
792 {
793 KAFFINITY ActiveProcessorAffinity; // 0x3a8
794 ULONGLONG AffinityPad; // 0x3a8
795 };
796#endif
797
798 volatile ULONGLONG InterruptTimeBias; // 0x3b0
799#endif // NTDDI_VERSION >= NTDDI_VISTA
800
801//
802// Windows 7 and later
803//
804#if (NTDDI_VERSION >= NTDDI_WIN7)
805 volatile ULONGLONG QpcBias; // 0x3b8 // Win7: TscQpcBias
806 /* volatile */ ULONG ActiveProcessorCount; // 0x3c0 // not volatile since Win 8.1 Update 1
807
808#if (NTDDI_VERSION >= NTDDI_WIN8)
809 volatile UCHAR ActiveGroupCount; // 0x3c4
810 UCHAR Reserved9; // 0x3c5
811 union
812 {
813 USHORT QpcData; // 0x3c6
814 struct
815 {
816 volatile UCHAR QpcBypassEnabled; // 0x3c6
817 UCHAR QpcShift; // 0x3c7
818 };
819 };
823#else
824 USHORT ActiveGroupCount; // 0x3c4
825 USHORT Reserved4; // 0x3c6
826 volatile ULONG AitSamplingValue; // 0x3c8
827 volatile ULONG AppCompatFlag; // 0x3cc
828 ULONGLONG SystemDllNativeRelocation; // 0x3d0 deprecated in Win7 SP2
829 ULONG SystemDllWowRelocation; // 0x3d8 deprecated in Win7 SP2
830 ULONG XStatePad[1]; // 0x3dc
832#endif // NTDDI_VERSION >= NTDDI_WIN8
833#endif // NTDDI_VERSION >= NTDDI_WIN7
834
835//
836// Windows 10 Vibranium and later
837//
838#if (NTDDI_VERSION >= NTDDI_WIN10_VB)
839 KSYSTEM_TIME FeatureConfigurationChangeStamp; // 0x710 // Win 11: 0x720
840 ULONG Spare; // 0x71c // Win 11: 0x72c
841#endif // NTDDI_VERSION >= NTDDI_WIN10_VB
842
843//
844// Windows 11 Nickel and later
845//
846#if (NTDDI_VERSION >= NTDDI_WIN11_NI)
848#endif // NTDDI_VERSION >= NTDDI_WIN11_NI
849
851
852//
853// VDM Structures
854//
855#include "pshpack1.h"
856typedef struct _VdmVirtualIca
857{
858 LONG ica_count[8];
859 LONG ica_int_line;
860 LONG ica_cpu_int;
861 USHORT ica_base;
862 USHORT ica_hipiri;
863 USHORT ica_mode;
864 UCHAR ica_master;
865 UCHAR ica_irr;
866 UCHAR ica_isr;
867 UCHAR ica_imr;
868 UCHAR ica_ssr;
869} VDMVIRTUALICA, *PVDMVIRTUALICA;
870#include "poppack.h"
871
872typedef struct _VdmIcaUserData
873{
874 PVOID pIcaLock;
875 PVDMVIRTUALICA pIcaMaster;
876 PVDMVIRTUALICA pIcaSlave;
877 PULONG pDelayIrq;
878 PULONG pUndelayIrq;
879 PULONG pDelayIret;
880 PULONG pIretHooked;
881 PULONG pAddrIretBopTable;
882 PHANDLE phWowIdleEvent;
883 PLARGE_INTEGER pIcaTimeout;
884 PHANDLE phMainThreadSuspended;
885} VDMICAUSERDATA, *PVDMICAUSERDATA;
886
887typedef struct _VDM_INITIALIZE_DATA
888{
889 PVOID TrapcHandler;
890 PVDMICAUSERDATA IcaUserData;
891} VDM_INITIALIZE_DATA, *PVDM_INITIALIZE_DATA;
892
893#else
894
895//
896// System Thread Start Routine
897//
898typedef
902 PVOID StartContext
903);
904
905#ifndef _NTSYSTEM_
906typedef VOID
908 IN PVOID NormalContext OPTIONAL,
911
912typedef VOID
914 IN struct _KAPC *Apc);
915
916typedef VOID
918 IN struct _KAPC *Apc,
919 IN OUT PKNORMAL_ROUTINE *NormalRoutine OPTIONAL,
923#endif
924
925//
926// APC Environment Types
927//
929{
935
937{
938#if (NTDDI_VERSION >= NTDDI_LONGHORN) || defined(_M_ARM) || defined(_M_AMD64)
940#endif
944
945typedef struct _KTIMER_TABLE
946{
950
951typedef struct _KDPC_LIST
952{
956
957typedef struct _SYNCH_COUNTERS
958{
1006
1007//
1008// PRCB DPC Data
1009//
1010typedef struct _KDPC_DATA
1011{
1012#if (NTDDI_VERSION >= NTDDI_LONGHORN)
1014#else
1015 LIST_ENTRY DpcListHead;
1016#endif
1018#if defined(_M_AMD64) || defined(_M_ARM)
1019 volatile LONG DpcQueueDepth;
1020#else
1022#endif
1024#if (NTDDI_VERSION >= NTDDI_LONGHORN) || defined(_M_ARM)
1026#endif
1028
1029//
1030// Per-Processor Lookaside List
1031//
1033{
1037
1038//
1039// Architectural Types
1040//
1041#include <arch/ketypes.h>
1042
1043//
1044// Kernel Memory Node
1045//
1046typedef struct _KNODE
1047{
1054 struct _flags {
1062
1063//
1064// Structure for Get/SetContext APC
1065//
1066typedef struct _GETSETCONTEXT
1067{
1073
1074//
1075// Kernel Profile Object
1076//
1077typedef struct _KPROFILE
1078{
1092
1093//
1094// Kernel Interrupt Object
1095//
1096typedef struct _KINTERRUPT
1097{
1102#if (NTDDI_VERSION >= NTDDI_LONGHORN)
1105#endif
1119#if (NTDDI_VERSION >= NTDDI_LONGHORN)
1121#endif
1124#if (NTDDI_VERSION >= NTDDI_LONGHORN)
1126#endif
1127#ifdef _M_AMD64
1128 PKTRAP_FRAME TrapFrame;
1130#endif
1133
1134//
1135// Kernel Event Pair Object
1136//
1137typedef struct _KEVENT_PAIR
1138{
1144
1145//
1146// Kernel No Execute Options
1147//
1148typedef struct _KEXECUTE_OPTIONS
1149{
1158
1159#if (NTDDI_VERSION >= NTDDI_WIN7)
1161{
1163 struct
1164 {
1172 };
1174
1175typedef struct _COUNTER_READING
1176{
1182
1183typedef struct _KTHREAD_COUNTERS
1184{
1186 struct _THREAD_PERFORMANCE_DATA* UserData;
1193#endif
1194
1196#if (NTDDI_VERSION >= NTDDI_WIN8)
1197typedef struct _RTL_RB_TREE
1198{
1202#endif
1203
1204#if (NTDDI_VERSION >= NTDDI_WINBLUE)
1206{
1207 union
1208 {
1209 struct
1210 {
1211#if (NTDDI_VERSION >= NTDDI_WIN10) // since 6.4.9841.0
1213#else
1214 ULONG_PTR Waiting : 1;
1215#endif
1217 ULONG_PTR Reserved : (8 * sizeof(PVOID)) - 3; // previously Spare
1219 };
1221 };
1222 union
1223 {
1225 struct
1226 {
1228#ifdef _WIN64
1229 ULONG SessionPad;
1230#endif
1231 };
1232 };
1234
1235typedef struct _KLOCK_ENTRY
1236{
1237 union
1238 {
1241 };
1242#if (NTDDI_VERSION >= NTDDI_WIN10)
1243 union
1244 {
1246 struct
1247 {
1249 union
1250 {
1252 struct
1253 {
1256 };
1257 };
1258 union
1259 {
1262 };
1263 union
1264 {
1266 struct
1267 {
1270 UCHAR IoQoSWaiter : 1; // since TH2
1272 };
1273 };
1274 };
1275 struct
1276 {
1279 };
1280 };
1281#ifdef _WIN64
1282 ULONG SpareFlags;
1283#endif
1284#else
1285 union
1286 {
1287 PVOID ThreadUnsafe;
1288 struct
1289 {
1290 volatile UCHAR HeadNodeByte;
1291 UCHAR Reserved1[2];
1292 volatile UCHAR AcquiredByte;
1293 };
1294 };
1295#endif
1296
1297 union
1298 {
1301 struct
1302 {
1303#if (NTDDI_VERSION >= NTDDI_WIN10)
1305#else
1306 volatile UCHAR WaitingAndBusyByte;
1307#endif
1308 UCHAR Reserved[sizeof(PVOID) - 2];
1310 union
1311 {
1313 struct
1314 {
1316#ifdef _WIN64
1317 ULONG SessionPad;
1318#endif
1319 };
1320 };
1321 };
1322 };
1323 union
1324 {
1325 struct
1326 {
1329 };
1331 };
1333 union
1334 {
1335#if _WIN64
1336 ULONG AllBoosts : 17;
1337#else
1339#endif
1340 struct
1341 {
1342 struct
1343 {
1346 };
1347 struct
1348 {
1352 };
1353 };
1354 };
1355#if _WIN64
1356 ULONG SparePad;
1357#endif
1359
1360#endif
1361
1362//
1363// Kernel Thread (KTHREAD)
1364//
1365#if (NTDDI_VERSION < NTDDI_WIN8)
1366
1367typedef struct _KTHREAD
1368{
1370#if (NTDDI_VERSION >= NTDDI_LONGHORN) // [
1372#ifndef _WIN64 // [
1374#endif // ]
1376#else // ][
1378#endif // ]
1380 ULONG_PTR StackLimit; // FIXME: PVOID
1383#if (NTDDI_VERSION >= NTDDI_WIN7) // [
1386 BOOLEAN Alerted[2];
1387 union
1388 {
1389 struct
1390 {
1391 ULONG KernelStackResident:1;
1394 ULONG WaitNext:1;
1396 ULONG Alertable:1;
1397 ULONG GdiFlushActive:1;
1404 ULONG Reserved:19;
1405 };
1407 };
1408#endif // ]
1409 union
1410 {
1412 struct
1413 {
1414 UCHAR ApcStateFill[FIELD_OFFSET(KAPC_STATE, UserApcPending) + 1];
1415#if (NTDDI_VERSION >= NTDDI_LONGHORN) // [
1417#if (NTDDI_VERSION >= NTDDI_WIN7) // [
1418 /* On x86, the following members "fall out" of the union */
1419 volatile ULONG NextProcessor;
1420 volatile ULONG DeferredProcessor;
1421#else // ][
1422 /* On x86, the following members "fall out" of the union */
1423 volatile USHORT NextProcessor;
1424 volatile USHORT DeferredProcessor;
1425#endif // ]
1426#else // ][
1428 /* On x86, the following members "fall out" of the union */
1429 volatile UCHAR NextProcessor;
1430 volatile UCHAR DeferredProcessor;
1433#endif // ]
1434 };
1435 };
1436 KSPIN_LOCK ApcQueueLock;
1437#if !defined(_M_AMD64) && !defined(_M_ARM64) // [
1439 volatile UCHAR State;
1443#endif // ]
1445#if (NTDDI_VERSION >= NTDDI_WIN7) // [
1447#else // ][
1448 union
1449 {
1452 };
1453#if (NTDDI_VERSION >= NTDDI_LONGHORN) // [
1454 union
1455 {
1456 struct
1457 {
1458 ULONG KernelStackResident:1;
1461 ULONG WaitNext:1;
1463 ULONG Alertable:1;
1464 ULONG GdiFlushActive:1;
1465 ULONG Reserved:25;
1466 };
1468 };
1469#else // ][
1472#endif // ]
1474#if (NTDDI_VERSION < NTDDI_LONGHORN)
1477#endif // ]
1478 volatile UCHAR SwapBusy;
1480#endif // ]
1481 union
1482 {
1485 };
1486 PKQUEUE Queue;
1487#if !defined(_M_AMD64) && !defined(_M_ARM64) // [
1489 union
1490 {
1491 struct
1492 {
1495 };
1497 };
1498#endif // ]
1499 struct _TEB *Teb;
1500
1501#if (NTDDI_VERSION >= NTDDI_WIN7) // [
1502 KTIMER Timer;
1503#else // ][
1504 union
1505 {
1506 KTIMER Timer;
1507 struct
1508 {
1509 UCHAR TimerFill[FIELD_OFFSET(KTIMER, Period) + sizeof(LONG)];
1510#if !defined(_WIN64) // [
1511 };
1512 };
1513#endif // ]
1514#endif // ]
1515 union
1516 {
1517 struct
1518 {
1521#if (NTDDI_VERSION >= NTDDI_LONGHORN) // [
1522 ULONG EtwStackTraceApc1Inserted:1;
1523 ULONG EtwStackTraceApc2Inserted:1;
1524 ULONG CycleChargePending:1;
1528 ULONG GuiThread:1;
1529 ULONG ReservedFlags:23;
1530#else // ][
1531 LONG ReservedFlags:30;
1532#endif // ]
1533 };
1535 };
1536#if defined(_WIN64) && (NTDDI_VERSION < NTDDI_WIN7) // [
1537 };
1538 };
1539#endif // ]
1540#if (NTDDI_VERSION >= NTDDI_WIN7) // [
1541#if defined(_WIN64) // [
1542 ULONG Spare0;
1543#else // ][
1545#endif // ]
1546#endif // ]
1547 union
1548 {
1550#if (NTDDI_VERSION < NTDDI_WIN7) // [
1551 struct
1552 {
1553 UCHAR WaitBlockFill0[FIELD_OFFSET(KWAIT_BLOCK, SpareByte)]; // 32bit = 23, 64bit = 43
1554#if (NTDDI_VERSION >= NTDDI_LONGHORN) // [
1555 UCHAR IdealProcessor;
1556#else // ][
1557 BOOLEAN SystemAffinityActive;
1558#endif // ]
1559 };
1560 struct
1561 {
1562 UCHAR WaitBlockFill1[1 * sizeof(KWAIT_BLOCK) + FIELD_OFFSET(KWAIT_BLOCK, SpareByte)]; // 47 / 91
1564 };
1565 struct
1566 {
1567 UCHAR WaitBlockFill2[2 * sizeof(KWAIT_BLOCK) + FIELD_OFFSET(KWAIT_BLOCK, SpareByte)]; // 71 / 139
1568 UCHAR ResourceIndex;
1569 };
1570 struct
1571 {
1572 UCHAR WaitBlockFill3[3 * sizeof(KWAIT_BLOCK) + FIELD_OFFSET(KWAIT_BLOCK, SpareByte)]; // 95 / 187
1573 UCHAR LargeStack;
1574 };
1575#endif // ]
1576#ifdef _WIN64 // [
1577 struct
1578 {
1579 UCHAR WaitBlockFill4[FIELD_OFFSET(KWAIT_BLOCK, SpareLong)];
1580 ULONG ContextSwitches;
1581 };
1582 struct
1583 {
1584 UCHAR WaitBlockFill5[1 * sizeof(KWAIT_BLOCK) + FIELD_OFFSET(KWAIT_BLOCK, SpareLong)];
1585 UCHAR State;
1586 UCHAR NpxState;
1587 UCHAR WaitIrql;
1588 CHAR WaitMode;
1589 };
1590 struct
1591 {
1592 UCHAR WaitBlockFill6[2 * sizeof(KWAIT_BLOCK) + FIELD_OFFSET(KWAIT_BLOCK, SpareLong)];
1593 ULONG WaitTime;
1594 };
1595#if (NTDDI_VERSION >= NTDDI_WIN7) // [
1596 struct
1597 {
1598 UCHAR WaitBlockFill7[168];
1599 PVOID TebMappedLowVa;
1600 struct _UMS_CONTROL_BLOCK* Ucb;
1601 };
1602#endif // ]
1603 struct
1604 {
1605#if (NTDDI_VERSION >= NTDDI_WIN7) // [
1606 UCHAR WaitBlockFill8[188];
1607#else // ][
1608 UCHAR WaitBlockFill7[3 * sizeof(KWAIT_BLOCK) + FIELD_OFFSET(KWAIT_BLOCK, SpareLong)];
1609#endif // ]
1610 union
1611 {
1612 struct
1613 {
1614 SHORT KernelApcDisable;
1615 SHORT SpecialApcDisable;
1616 };
1617 ULONG CombinedApcDisable;
1618 };
1619 };
1620#endif // ]
1621 };
1622 LIST_ENTRY QueueListEntry;
1623 PKTRAP_FRAME TrapFrame;
1624#if (NTDDI_VERSION >= NTDDI_LONGHORN) // [
1625 PVOID FirstArgument;
1626 union
1627 {
1628 PVOID CallbackStack;
1629 ULONG_PTR CallbackDepth;
1630 };
1631#else // ][
1632 PVOID CallbackStack;
1633#endif // ]
1634#if (NTDDI_VERSION < NTDDI_LONGHORN) || ((NTDDI_VERSION < NTDDI_WIN7) && !defined(_WIN64)) // [
1636#endif // ]
1637#if (NTDDI_VERSION < NTDDI_LONGHORN) && defined(_WIN64) // [
1638 ULONG KernelLimit;
1639#endif // ]
1640 UCHAR ApcStateIndex;
1641#if (NTDDI_VERSION < NTDDI_LONGHORN) // [
1642 UCHAR IdealProcessor;
1643 BOOLEAN Preempted;
1644 BOOLEAN ProcessReadyQueue;
1645#ifdef _WIN64 // [
1646 PVOID Win32kTable;
1647 ULONG Win32kLimit;
1648#endif // ]
1649 BOOLEAN KernelStackResident;
1650#endif // ]
1651 SCHAR BasePriority;
1652 SCHAR PriorityDecrement;
1653#if (NTDDI_VERSION >= NTDDI_LONGHORN) // [
1654 BOOLEAN Preempted;
1655 UCHAR AdjustReason;
1656 CHAR AdjustIncrement;
1657#if (NTDDI_VERSION >= NTDDI_WIN7)
1659#else
1660 UCHAR Spare01;
1661#endif
1662#endif // ]
1663 CHAR Saturation;
1664#if (NTDDI_VERSION >= NTDDI_LONGHORN) // [
1665 ULONG SystemCallNumber;
1666#if (NTDDI_VERSION >= NTDDI_WIN7) // [
1667 ULONG FreezeCount;
1668#else // ][
1669 ULONG Spare02;
1670#endif // ]
1671#endif // ]
1672#if (NTDDI_VERSION >= NTDDI_WIN7) // [
1673 GROUP_AFFINITY UserAffinity;
1674 struct _KPROCESS *Process;
1676 ULONG IdealProcessor;
1677 ULONG UserIdealProcessor;
1678#else // ][
1679 KAFFINITY UserAffinity;
1680 struct _KPROCESS *Process;
1682#endif // ]
1683 PKAPC_STATE ApcStatePointer[2];
1684 union
1685 {
1686 KAPC_STATE SavedApcState;
1687 struct
1688 {
1689 UCHAR SavedApcStateFill[FIELD_OFFSET(KAPC_STATE, UserApcPending) + 1];
1690#if (NTDDI_VERSION >= NTDDI_WIN7) // [
1691 UCHAR WaitReason;
1692#else // ][
1693 CCHAR FreezeCount;
1694#endif // ]
1695#ifndef _WIN64 // [
1696 };
1697 };
1698#endif // ]
1699 CCHAR SuspendCount;
1700#if (NTDDI_VERSION >= NTDDI_WIN7) // [
1701 CCHAR Spare1;
1702#else // ][
1703 UCHAR UserIdealProcessor;
1704#endif // ]
1705#if (NTDDI_VERSION >= NTDDI_WIN7) // [
1706#elif (NTDDI_VERSION >= NTDDI_LONGHORN) // ][
1707 UCHAR Spare03;
1708#else // ][
1709 UCHAR CalloutActive;
1710#endif // ]
1711#ifdef _WIN64 // [
1712 UCHAR CodePatchInProgress;
1713 };
1714 };
1715#endif // ]
1716#if defined(_M_IX86) // [
1717#if (NTDDI_VERSION >= NTDDI_LONGHORN) // [
1718 UCHAR OtherPlatformFill;
1719#else // ][
1720 UCHAR Iopl;
1721#endif // ]
1722#endif // ]
1723 PVOID Win32Thread;
1724 PVOID StackBase;
1725 union
1726 {
1727 KAPC SuspendApc;
1728 struct
1729 {
1730 UCHAR SuspendApcFill0[1];
1731#if (NTDDI_VERSION >= NTDDI_WIN7) // [
1732 UCHAR ResourceIndex;
1733#elif (NTDDI_VERSION >= NTDDI_LONGHORN) // ][
1734 CHAR Spare04;
1735#else // ][
1736 SCHAR Quantum;
1737#endif // ]
1738 };
1739 struct
1740 {
1741 UCHAR SuspendApcFill1[3];
1743 };
1744 struct
1745 {
1746 UCHAR SuspendApcFill2[4];
1748 };
1749 struct
1750 {
1751 UCHAR SuspendApcFill3[FIELD_OFFSET(KAPC, SystemArgument1)];
1752#if (NTDDI_VERSION >= NTDDI_LONGHORN)
1753 PKPRCB WaitPrcb;
1754#else
1755 PVOID TlsArray;
1756#endif
1757 };
1758 struct
1759 {
1760 UCHAR SuspendApcFill4[FIELD_OFFSET(KAPC, SystemArgument2)]; // 40 / 72
1761 PVOID LegoData;
1762 };
1763 struct
1764 {
1765 UCHAR SuspendApcFill5[FIELD_OFFSET(KAPC, Inserted) + 1]; // 47 / 83
1766#if (NTDDI_VERSION >= NTDDI_WIN7) // [
1767 UCHAR LargeStack;
1768#else // ][
1770#endif // ]
1771#ifdef _WIN64 // [
1773#endif // ]
1774 };
1775 };
1776#ifndef _WIN64 // [
1778#endif // ]
1779 union
1780 {
1781 KSEMAPHORE SuspendSemaphore;
1782 struct
1783 {
1784 UCHAR SuspendSemaphorefill[FIELD_OFFSET(KSEMAPHORE, Limit) + 4]; // 20 / 28
1785#ifdef _WIN64 // [
1786 ULONG SListFaultCount;
1787#endif // ]
1788 };
1789 };
1790#ifndef _WIN64 // [
1791 ULONG SListFaultCount;
1792#endif // ]
1793 LIST_ENTRY ThreadListEntry;
1794#if (NTDDI_VERSION >= NTDDI_LONGHORN) // [
1795 LIST_ENTRY MutantListHead;
1796#endif // ]
1797 PVOID SListFaultAddress;
1798#ifdef _M_AMD64 // [
1799 LONG64 ReadOperationCount;
1800 LONG64 WriteOperationCount;
1801 LONG64 OtherOperationCount;
1802 LONG64 ReadTransferCount;
1803 LONG64 WriteTransferCount;
1804 LONG64 OtherTransferCount;
1805#endif // ]
1806#if (NTDDI_VERSION >= NTDDI_WIN7) // [
1807 PKTHREAD_COUNTERS ThreadCounters;
1808 PXSTATE_SAVE XStateSave;
1809#elif (NTDDI_VERSION >= NTDDI_LONGHORN) // ][
1810 PVOID MdlForLockedTeb;
1811#endif // ]
1812} KTHREAD;
1813
1814#else // not (NTDDI_VERSION < NTDDI_WIN8)
1815
1816#if defined(_WIN64) && (NTDDI_VERSION < 0x06032580) // since WIN 8.1 Update1 6.3.9600.16384
1817#define NUMBER_OF_LOCK_ENTRIES 5
1818#else
1819#define NUMBER_OF_LOCK_ENTRIES 6
1820#endif
1821
1822typedef struct _KTHREAD
1823{
1828 volatile VOID *StackLimit;
1832#ifndef _WIN64
1835#endif
1840 struct _KSCHEDULING_GROUP* SchedulingGroup;
1844
1845 union
1846 {
1847 struct
1848 {
1849#if (NTDDI_VERSION < NTDDI_WIN10)
1850 ULONG KernelStackResident : 1;
1851#else
1853#endif
1855#if (NTDDI_VERSION < NTDDI_WIN10TH2)
1857#endif
1862#if (NTDDI_VERSION < NTDDI_WIN81)
1863 ULONG CodePatchInProgress : 1;
1864#endif
1879 };
1881 };
1882
1883 union
1884 {
1885 struct
1886 {
1901#if (NTDDI_VERSION >= 0x060324D7) // since 6.3.9431.0
1902 ULONG TerminationApcRequest : 1;
1903#endif
1904#if (NTDDI_VERSION >= 0x06032580) // since 6.3.9600.16384
1905 ULONG AutoBoostEntriesExhausted : 1;
1906#endif
1907#if (NTDDI_VERSION >= 0x06032580) // since 6.3.9600.17031
1908 ULONG KernelStackResident : 1;
1909#endif
1910#if (NTDDI_VERSION >= NTDDI_WIN10)
1914#endif
1916#if (NTDDI_VERSION < NTDDI_WIN10)
1917 ULONG ReservedFlags : 10;
1918#endif
1919 };
1921 };
1922
1923#if (NTDDI_VERSION >= NTDDI_WIN10)
1924 volatile UCHAR Tag;
1929#else
1930 ULONG Spare0;
1931#endif
1933#ifdef _WIN64
1934 ULONG Spare1; // Win 10: Spare10
1935#endif
1938
1939 union
1940 {
1942 struct
1943 {
1944 UCHAR ApcStateFill[RTL_SIZEOF_THROUGH_FIELD(KAPC_STATE, UserApcPending)]; // 32bit: 23/0x17, 64bit: 43/0x2B
1947 };
1948 };
1949
1950#ifndef _WIN64
1952 volatile UCHAR State;
1953#if (NTDDI_VERSION >= NTDDI_WIN10) // since 10.0.10074.0
1955#else
1956 CHAR NpxState;
1957#endif
1960#endif
1961
1964 union
1965 {
1968 };
1971#if (NTDDI_VERSION >= NTDDI_WIN8 /* 0x060223F0 */) // since 6.2.9200.16384
1973#endif
1975
1976 union
1977 {
1979#ifdef _WIN64
1980 struct
1981 {
1982 UCHAR WaitBlockFill4[FIELD_OFFSET(KWAIT_BLOCK, SpareLong)]; // 32bit: -, 64bit: 20/0x14
1984 };
1985 struct
1986 {
1987 UCHAR WaitBlockFill5[1 * sizeof(KWAIT_BLOCK) + FIELD_OFFSET(KWAIT_BLOCK, SpareLong)]; // 32bit: -, 64bit: 68/0x44
1988 UCHAR State;
1989#if (NTDDI_VERSION >= NTDDI_WIN10)
1990 CHAR Spare13;
1991#else
1992 CHAR NpxState;
1993#endif
1995 CHAR WaitMode;
1996 };
1997 struct
1998 {
1999 UCHAR WaitBlockFill6[2 * sizeof(KWAIT_BLOCK) + FIELD_OFFSET(KWAIT_BLOCK, SpareLong)]; // 32bit: -, 64bit: 116/0x74
2001 };
2002 struct
2003 {
2004 UCHAR WaitBlockFill7[3 * sizeof(KWAIT_BLOCK) + FIELD_OFFSET(KWAIT_BLOCK, SpareLong)]; // 32bit: -, 64bit: 164/0xA4
2005 union
2006 {
2007 struct
2008 {
2011 };
2013 };
2014 };
2015#endif
2016 struct
2017 {
2018 UCHAR WaitBlockFill8[FIELD_OFFSET(KWAIT_BLOCK, SparePtr)]; // 32bit: 20/0x14, 64bit: 40/0x28
2020 };
2021 struct
2022 {
2023 UCHAR WaitBlockFill9[1 * sizeof(KWAIT_BLOCK) + FIELD_OFFSET(KWAIT_BLOCK, SparePtr)]; // 32bit: 44/0x2C, 64bit: 88/0x58
2025 };
2026 struct
2027 {
2028 UCHAR WaitBlockFill10[2 * sizeof(KWAIT_BLOCK) + FIELD_OFFSET(KWAIT_BLOCK, SparePtr)]; // 32bit: 68/0x44, 64bit: 136/0x88
2030 };
2031 struct
2032 {
2033 UCHAR WaitBlockFill11[3 * sizeof(KWAIT_BLOCK) + FIELD_OFFSET(KWAIT_BLOCK, Object)]; // 32bit: 88/0x58, 64bit: 176/0xB0
2034#ifdef _WIN64
2035 struct _UMS_CONTROL_BLOCK* Ucb;
2036 struct _KUMS_CONTEXT_HEADER* Uch;
2037#else
2039 union
2040 {
2041 struct
2042 {
2045 };
2047 };
2048#endif
2049 };
2050 };
2051
2052#ifdef _WIN64
2053 PVOID TebMappedLowVa;
2054#endif
2056#if (NTDDI_VERSION >= 0x060223F0) // since 6.2.9200.16384
2057 union
2058 {
2060 struct
2061 {
2062 ULONG NextProcessorNumber : 31;
2063 ULONG SharedReadyQueue : 1;
2064 };
2065 };
2066 LONG QueuePriority;
2067#else
2070#endif
2072
2073 union
2074 {
2076 struct
2077 {
2078 UCHAR UserAffinityFill[FIELD_OFFSET(GROUP_AFFINITY, Reserved)]; // 32bit: 6/0x6, 64bit: 10/0x0A
2081 union
2082 {
2084 struct
2085 {
2088 };
2089 };
2093 };
2094 };
2095
2096#if (NTDDI_VERSION >= NTDDI_WIN10) // since 10.0.10240.16384
2098#endif
2099 union
2100 {
2102 struct
2103 {
2104 UCHAR AffinityFill[FIELD_OFFSET(GROUP_AFFINITY, Reserved)]; // 32bit: 6/0x6, 64bit: 10/0x0A
2108 };
2109 };
2110
2111#if (NTDDI_VERSION >= NTDDI_WIN10) // since 10.0.10240.16384
2112#ifdef _WIN64
2114#else
2116#endif
2117#else
2118 PKAPC_STATE ApcStatePointer[2];
2119#endif
2120
2121 union
2122 {
2124 struct
2125 {
2126 UCHAR SavedApcStateFill[FIELD_OFFSET(KAPC_STATE, UserApcPending) + 1]; // 32bit: 23/0x17, 64bit: 43/0x2B
2131 };
2132 };
2133
2134 union
2135 {
2137 struct
2138 {
2139 UCHAR SchedulerApcFill0[FIELD_OFFSET(KAPC, SpareByte0)]; // 32bit: 1/0x01, 64bit: 1/0x01
2141 };
2142 struct
2143 {
2144 UCHAR SchedulerApcFill1[FIELD_OFFSET(KAPC, SpareByte1)]; // 32bit: 3/0x03, 64bit: 3/0x03
2146 };
2147 struct
2148 {
2149 UCHAR SchedulerApcFill2[FIELD_OFFSET(KAPC, SpareLong0)]; // 32bit: 4/0x04, 64bit: 4/0x04
2151 };
2152 struct
2153 {
2156 };
2157 struct
2158 {
2161 };
2162 struct
2163 {
2164 UCHAR SchedulerApcFill5[FIELD_OFFSET(KAPC, Inserted) + 1]; // 32 bit:, 64 bit: 83/0x53
2167 };
2168 };
2169
2173
2174#if (NTDDI_VERSION >= NTDDI_WIN10)
2178#if _WIN64
2179 ULONG SecureThreadCookie;
2180#endif
2181#elif (NTDDI_VERSION >= NTDDI_WINBLUE) // 6.3.9431.0
2182 SINGLE_LIST_ENTRY LockEntriesFreeList;
2183#endif
2184
2185#if (NTDDI_VERSION >= NTDDI_WINBLUE /* 0x06032580 */) // since 6.3.9600.16384
2192 #if (NTDDI_VERSION >= NTDDI_WIN10_RS1)
2194 #endif
2195
2196 #if (NTDDI_VERSION >= NTDDI_WIN10) // since 10.0.10240.16384
2198 #else
2199 volatile SHORT AbReferenceCount;
2200 #endif
2201 #if (NTDDI_VERSION >= 0x06040000) // since 6.4.9841.0
2202 UCHAR AbOrphanedEntrySummary;
2203 UCHAR AbOwnedEntryCount;
2204 #else
2207 #endif
2209 union
2210 {
2212 struct
2213 {
2216 };
2217 };
2218#endif
2219
2220#if _WIN64
2221 LONG64 ReadOperationCount;
2222 LONG64 WriteOperationCount;
2223 LONG64 OtherOperationCount;
2224 LONG64 ReadTransferCount;
2225 LONG64 WriteTransferCount;
2226 LONG64 OtherTransferCount;
2227#endif
2228#if (NTDDI_VERSION >= NTDDI_WIN10) // since 10.0.10041.0
2229 struct _KSCB *QueuedScb;
2230#ifndef _WIN64
2232#endif
2233#endif
2235
2236#endif
2237
2238
2239#define ASSERT_THREAD(object) \
2240 ASSERT((((object)->Header.Type & KOBJECT_TYPE_MASK) == ThreadObject))
2241
2242//
2243// Kernel Process (KPROCESS)
2244//
2245typedef struct _KPROCESS
2246{
2249#if (NTDDI_VERSION >= NTDDI_LONGHORN)
2252#else
2254#endif
2255#if defined(_M_IX86)
2256 KGDTENTRY LdtDescriptor;
2257 KIDTENTRY Int21Descriptor;
2258#endif
2260#if defined(_M_IX86)
2261 UCHAR Iopl;
2262 UCHAR Unused;
2263#endif
2273 union
2274 {
2275 struct
2276 {
2281 };
2283 };
2291 union
2292 {
2295 };
2298#if (NTDDI_VERSION >= NTDDI_LONGHORN) // [
2300#endif // ]
2302
2303#define ASSERT_PROCESS(object) \
2304 ASSERT((((object)->Header.Type & KOBJECT_TYPE_MASK) == ProcessObject))
2305
2306//
2307// System Service Table Descriptor
2308//
2310{
2314#if defined(_IA64_)
2315 LONG TableBaseGpOffset;
2316#endif
2319
2320#if (NTDDI_VERSION >= NTDDI_WIN8)
2321//
2322// Entropy Timing State
2323//
2325{
2332
2333//
2334// Constants from ks386.inc, ksamd64.inc and ksarm.h
2335//
2336#define KENTROPY_TIMING_INTERRUPTS_PER_BUFFER 0x400
2337#define KENTROPY_TIMING_BUFFER_MASK 0x7ff
2338#define KENTROPY_TIMING_ANALYSIS 0x0
2339
2340#endif /* (NTDDI_VERSION >= NTDDI_WIN8) */
2341
2342//
2343// Exported Loader Parameter Block
2344//
2346
2347//
2348// Exported Hardware Data
2349//
2357
2358//
2359// Exported System Service Descriptor Tables
2360//
2363
2364#endif // !NTOS_MODE_USER
2365
2366#endif // _KETYPES_H
_In_ PVOID _In_ ULONG _Out_ PVOID _In_ ULONG _Inout_ PULONG _In_ KPROCESSOR_MODE PreviousMode
unsigned char BOOLEAN
#define VOID
Definition: acefi.h:82
static SERVICE_TABLE_ENTRYW ServiceTable[2]
Definition: eventlog.c:24
@ Reserved2
Definition: bcd.h:202
@ 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
__int3264 LONG_PTR
Definition: mstsclib_h.h:276
#define KernelMode
Definition: asm.h:38
#define UserMode
Definition: asm.h:39
#define NUMBER_OF_LOCK_ENTRIES
Definition: ketypes.h:1819
struct _KINTERRUPT KINTERRUPT
VOID(NTAPI * PKSYSTEM_ROUTINE)(PKSTART_ROUTINE StartRoutine, PVOID StartContext)
Definition: ketypes.h:900
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:30
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:913
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:929
@ AttachedApcEnvironment
Definition: ketypes.h:931
@ OriginalApcEnvironment
Definition: ketypes.h:930
@ CurrentApcEnvironment
Definition: ketypes.h:932
@ InsertApcEnvironment
Definition: ketypes.h:933
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:28
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:917
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:907
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 _In_
Definition: no_sal2.h:158
#define DECLSPEC_ALIGN(x)
Definition: ntbasedef.h:259
#define RTL_SIZEOF_THROUGH_FIELD(type, field)
Definition: ntbasedef.h:680
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
@ Reserved5
Definition: sacdrv.h:1473
enum _KINTERRUPT_MODE KINTERRUPT_MODE
signed char SCHAR
Definition: sqltypes.h:14
enum _HARDWARE_COUNTER_TYPE Type
Definition: ketypes.h:1177
ULONG64 Start
Definition: ketypes.h:1179
ULONG64 Total
Definition: ketypes.h:1180
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:1071
KPROCESSOR_MODE Mode
Definition: ketypes.h:1070
KEVENT Event
Definition: ketypes.h:1069
Definition: ketypes.h:547
PVOID NormalContext
Definition: ketypes.h:562
ULONG DpcCount
Definition: ketypes.h:1023
ULONG_PTR DpcLock
Definition: ketypes.h:1017
volatile ULONG DpcQueueDepth
Definition: ketypes.h:1021
PKDPC ActiveDpc
Definition: ketypes.h:1025
KDPC_LIST DpcList
Definition: ketypes.h:1013
SINGLE_LIST_ENTRY ListHead
Definition: ketypes.h:953
SINGLE_LIST_ENTRY * LastEntry
Definition: ketypes.h:954
Definition: ketypes.h:699
CSHORT Type
Definition: ketypes.h:1139
KEVENT HighEvent
Definition: ketypes.h:1142
CSHORT Size
Definition: ketypes.h:1140
KEVENT LowEvent
Definition: ketypes.h:1141
UCHAR DisableThunkEmulation
Definition: ketypes.h:1152
UCHAR ExecuteDisable
Definition: ketypes.h:1150
UCHAR ExecuteEnable
Definition: ketypes.h:1151
UCHAR ExecuteDispatchEnable
Definition: ketypes.h:1154
UCHAR ImageDispatchEnable
Definition: ketypes.h:1155
KIRQL SynchronizeIrql
Definition: ketypes.h:1113
CCHAR Number
Definition: ketypes.h:1116
ULONG ServiceCount
Definition: ketypes.h:1122
PKINTERRUPT_ROUTINE DispatchAddress
Definition: ketypes.h:1110
ULONG DispatchCount
Definition: ketypes.h:1123
CSHORT Size
Definition: ketypes.h:1099
ULONG DispatchCode[DISPATCH_LENGTH]
Definition: ketypes.h:1131
BOOLEAN Connected
Definition: ketypes.h:1115
KINTERRUPT_POLARITY Polarity
Definition: ketypes.h:1120
KINTERRUPT_MODE Mode
Definition: ketypes.h:1118
BOOLEAN ShareVector
Definition: ketypes.h:1117
ULONG Vector
Definition: ketypes.h:1111
PKSERVICE_ROUTINE MessageServiceRoutine
Definition: ketypes.h:1103
KSPIN_LOCK SpinLock
Definition: ketypes.h:1107
KIRQL Irql
Definition: ketypes.h:1112
BOOLEAN FloatingSave
Definition: ketypes.h:1114
LIST_ENTRY InterruptListEntry
Definition: ketypes.h:1100
ULONG MessageIndex
Definition: ketypes.h:1104
ULONG TickCount
Definition: ketypes.h:1108
PKSPIN_LOCK ActualLock
Definition: ketypes.h:1109
CSHORT Type
Definition: ketypes.h:1098
ULONGLONG Rsvd1
Definition: ketypes.h:1125
PKSERVICE_ROUTINE ServiceRoutine
Definition: ketypes.h:1101
PVOID ServiceContext
Definition: ketypes.h:1106
Definition: ketypes.h:1206
ULONG_PTR Busy
Definition: ketypes.h:1216
ULONG_PTR CrossThreadReleasable
Definition: ketypes.h:1212
ULONG_PTR InTree
Definition: ketypes.h:1218
ULONG_PTR Reserved
Definition: ketypes.h:1217
PVOID LockState
Definition: ketypes.h:1220
ULONG SessionId
Definition: ketypes.h:1227
PVOID SessionState
Definition: ketypes.h:1224
Definition: ketypes.h:1236
KLOCK_ENTRY_LOCK_STATE LockState
Definition: ketypes.h:1299
UCHAR Spare0
Definition: ketypes.h:1255
UCHAR AcquiredByte
Definition: ketypes.h:1260
PVOID SessionState
Definition: ketypes.h:1312
UCHAR WaitingBit
Definition: ketypes.h:1254
USHORT IoBoost
Definition: ketypes.h:1345
RTL_RB_TREE WaiterTree
Definition: ketypes.h:1328
ULONG SessionId
Definition: ketypes.h:1315
USHORT IoQoSWaiterCount
Definition: ketypes.h:1351
USHORT IoQoSBoost
Definition: ketypes.h:1349
ULONG_PTR EntryLock
Definition: ketypes.h:1332
volatile UCHAR CrossThreadReleasableAndBusyByte
Definition: ketypes.h:1304
RTL_RB_TREE OwnerTree
Definition: ketypes.h:1327
ULONG AllFlags
Definition: ketypes.h:1278
UCHAR HeadNodeBit
Definition: ketypes.h:1268
SINGLE_LIST_ENTRY FreeListEntry
Definition: ketypes.h:1240
UCHAR IoQoSWaiter
Definition: ketypes.h:1270
ULONG EntryFlags
Definition: ketypes.h:1245
UCHAR AcquiredBit
Definition: ketypes.h:1261
UCHAR InTreeByte
Definition: ketypes.h:1309
USHORT CpuBoostsBitmap
Definition: ketypes.h:1344
PVOID LockUnsafe
Definition: ketypes.h:1300
UCHAR ThreadLocalFlags
Definition: ketypes.h:1251
UCHAR IoPriorityBit
Definition: ketypes.h:1269
CHAR CpuPriorityKey
Definition: ketypes.h:1330
USHORT AllBoosts
Definition: ketypes.h:1338
UCHAR Spare1
Definition: ketypes.h:1271
ULONG StaticState
Definition: ketypes.h:1277
UCHAR EntryOffset
Definition: ketypes.h:1248
RTL_BALANCED_NODE TreeNode
Definition: ketypes.h:1239
UCHAR CrossThreadFlags
Definition: ketypes.h:1265
USHORT IoNormalPriorityWaiterCount
Definition: ketypes.h:1350
UCHAR Removable
Definition: ketypes.h:1055
SLIST_HEADER DeadStackList
Definition: ketypes.h:1048
UCHAR Seed
Definition: ketypes.h:1052
ULONG_PTR FreeCount[2]
Definition: ketypes.h:1059
ULONG MmShiftedColor
Definition: ketypes.h:1058
struct _SINGLE_LIST_ENTRY * PfnDeferredList
Definition: ketypes.h:1060
struct _KNODE::_flags Flags
UCHAR NodeNumber
Definition: ketypes.h:1053
KAFFINITY ProcessorMask
Definition: ketypes.h:1050
SLIST_HEADER PfnDereferenceSListHead
Definition: ketypes.h:1049
UCHAR Color
Definition: ketypes.h:1051
DISPATCHER_HEADER Header
Definition: ketypes.h:2247
SCHAR BasePriority
Definition: ketypes.h:2284
SCHAR QuantumReset
Definition: ketypes.h:2285
LIST_ENTRY ProcessListEntry
Definition: ketypes.h:2297
SINGLE_LIST_ENTRY SwapListEntry
Definition: ketypes.h:2268
ULONG StackCount
Definition: ketypes.h:2296
UCHAR ThreadSeed
Definition: ketypes.h:2287
UCHAR IdealNode
Definition: ketypes.h:2289
LONG DisableQuantum
Definition: ketypes.h:2279
LONG DisableBoost
Definition: ketypes.h:2278
USHORT IopmOffset
Definition: ketypes.h:2259
LONG ProcessFlags
Definition: ketypes.h:2282
UCHAR ExecuteOptions
Definition: ketypes.h:2294
ULONG_PTR Unused0
Definition: ketypes.h:2251
PVOID VdmTrapcHandler
Definition: ketypes.h:2269
volatile KAFFINITY ActiveProcessors
Definition: ketypes.h:2264
ULONG KernelTime
Definition: ketypes.h:2265
LONG AutoAlignment
Definition: ketypes.h:2277
ULONG_PTR DirectoryTableBase
Definition: ketypes.h:2250
UCHAR Visited
Definition: ketypes.h:2290
ULONG UserTime
Definition: ketypes.h:2266
ULONGLONG CycleTime
Definition: ketypes.h:2299
UCHAR State
Definition: ketypes.h:2286
KAFFINITY Affinity
Definition: ketypes.h:2272
LIST_ENTRY ProfileListHead
Definition: ketypes.h:2248
LONG ReservedFlags
Definition: ketypes.h:2280
UCHAR PowerState
Definition: ketypes.h:2288
KEXECUTE_OPTIONS Flags
Definition: ketypes.h:2293
LIST_ENTRY ThreadListHead
Definition: ketypes.h:2270
LIST_ENTRY ReadyListHead
Definition: ketypes.h:2267
KSPIN_LOCK ProcessLock
Definition: ketypes.h:2271
struct _KPROCESS * Process
Definition: ketypes.h:1082
CSHORT Size
Definition: ketypes.h:1080
ULONG BucketShift
Definition: ketypes.h:1085
PVOID RangeLimit
Definition: ketypes.h:1084
KPROFILE_SOURCE Source
Definition: ketypes.h:1089
PVOID Buffer
Definition: ketypes.h:1086
BOOLEAN Started
Definition: ketypes.h:1090
ULONG_PTR Segment
Definition: ketypes.h:1087
PVOID RangeBase
Definition: ketypes.h:1083
CSHORT Type
Definition: ketypes.h:1079
KAFFINITY Affinity
Definition: ketypes.h:1088
LIST_ENTRY ProfileListEntry
Definition: ketypes.h:1081
LONG High1Time
Definition: ketypes.h:930
LONG High2Time
Definition: ketypes.h:931
ULONG LowPart
Definition: ketypes.h:929
ULONG64 CycleTimeBias
Definition: ketypes.h:1189
ULONG64 WaitReasonBitMap
Definition: ketypes.h:1185
ULONG64 HardwareCounters
Definition: ketypes.h:1190
struct _THREAD_PERFORMANCE_DATA * UserData
Definition: ketypes.h:1186
COUNTER_READING HwCounter[16]
Definition: ketypes.h:1191
ULONG ContextSwitches
Definition: ketypes.h:1188
ULONG ApcInterruptRequest
Definition: ketypes.h:1866
PKTRAP_FRAME TrapFrame
Definition: ketypes.h:1937
PVOID InitialStack
Definition: ketypes.h:1827
ULONG SystemCallNumber
Definition: ketypes.h:1932
PKQUEUE Queue
Definition: ketypes.h:1969
ULONG UserIdealProcessor
Definition: ketypes.h:1946
UCHAR AdjustReason
Definition: ketypes.h:2091
UCHAR UnusualBoost
Definition: ketypes.h:2087
ULONG CurrentRunTime
Definition: ketypes.h:1836
UCHAR SchedulerApcFill4[FIELD_OFFSET(KAPC, SystemArgument2)]
Definition: ketypes.h:2159
GROUP_AFFINITY Affinity
Definition: ketypes.h:2101
ULONG IdealProcessor
Definition: ketypes.h:2107
ULONG ThreadFlagsSpare
Definition: ketypes.h:1913
ULONG UserStackWalkActive
Definition: ketypes.h:1865
ULONG DisableBoost
Definition: ketypes.h:1888
volatile INT_PTR WaitStatus
Definition: ketypes.h:1962
UCHAR ForegroundBoost
Definition: ketypes.h:2086
ULONG ProcessReadyQueue
Definition: ketypes.h:1858
ULONG ChargeOnlyGroup
Definition: ketypes.h:1895
ULONG QuantumDonation
Definition: ketypes.h:1891
KPROCESSOR_MODE WaitMode
Definition: ketypes.h:1959
UCHAR CallbackNestingLevel
Definition: ketypes.h:2165
LIST_ENTRY WaitListEntry
Definition: ketypes.h:1966
ULONG FreezeCount
Definition: ketypes.h:1900
SHORT SListFaultCount
Definition: ketypes.h:2130
ULONG ReservedStackInUse
Definition: ketypes.h:1875
LONG AbCompletedIoQoSBoostCount
Definition: ketypes.h:2193
CHAR PriorityDecrement
Definition: ketypes.h:2083
ULONG QuantumEndMigrate
Definition: ketypes.h:1867
BOOLEAN Running
Definition: ketypes.h:1842
KAPC_STATE SavedApcState
Definition: ketypes.h:2123
ULONG_PTR AffinityVersion
Definition: ketypes.h:2097
UCHAR WaitBlockFill10[2 *sizeof(KWAIT_BLOCK)+FIELD_OFFSET(KWAIT_BLOCK, SparePtr)]
Definition: ketypes.h:2028
ULONG Reserved
Definition: ketypes.h:1878
ULONG ExpectedRunTime
Definition: ketypes.h:1837
ULONG DisableQuantum
Definition: ketypes.h:1894
ULONG64 QuantumTarget
Definition: ketypes.h:1826
PVOID Win32Thread
Definition: ketypes.h:2029
ULONG_PTR InGlobalForegroundList
Definition: ketypes.h:2215
ULONG SystemAffinityActive
Definition: ketypes.h:1860
BOOLEAN Alerted[MaximumMode]
Definition: ketypes.h:1843
volatile ULONG64 CycleTime
Definition: ketypes.h:1831
ULONG ForegroundLossTime
Definition: ketypes.h:2208
LIST_ENTRY GlobalForegroundListEntry
Definition: ketypes.h:2211
UCHAR AbFreeEntryCount
Definition: ketypes.h:2205
struct _KSCB * QueuedScb
Definition: ketypes.h:2229
LONG ThreadFlags
Definition: ketypes.h:1920
ULONG CombinedApcDisable
Definition: ketypes.h:2046
ULONG Alertable
Definition: ketypes.h:1861
PKPRCB WaitPrcb
Definition: ketypes.h:2155
KSPIN_LOCK ThreadLock
Definition: ketypes.h:1830
volatile LONG AbCompletedIoBoostCount
Definition: ketypes.h:2191
UCHAR ApcStateFill[RTL_SIZEOF_THROUGH_FIELD(KAPC_STATE, UserApcPending)]
Definition: ketypes.h:1944
PVOID FirstArgument
Definition: ketypes.h:1936
ULONG CalloutActive
Definition: ketypes.h:1872
SCHAR Priority
Definition: ketypes.h:1945
ULONG UserAffinitySet
Definition: ketypes.h:1889
SHORT SpecialApcDisable
Definition: ketypes.h:2044
ULONG CommitFailTerminateRequest
Definition: ketypes.h:1911
UCHAR SuspendApcFill3[FIELD_OFFSET(KAPC, SystemArgument1)]
Definition: ketypes.h:2154
UCHAR ApcStateIndex
Definition: ketypes.h:2105
PVOID SListFaultAddress
Definition: ketypes.h:1825
USHORT Spare20
Definition: ketypes.h:2177
UCHAR SchedulerApcFill0[FIELD_OFFSET(KAPC, SpareByte0)]
Definition: ketypes.h:2139
PVOID Teb
Definition: ketypes.h:1970
struct _KTHREAD_COUNTERS * ThreadCounters
Definition: ketypes.h:2019
SINGLE_LIST_ENTRY SwapListEntry
Definition: ketypes.h:1967
CHAR PreviousMode
Definition: ketypes.h:2079
KLOCK_ENTRY LockEntries[NUMBER_OF_LOCK_ENTRIES]
Definition: ketypes.h:2186
PVOID ServiceTable
Definition: ketypes.h:1834
ULONG QueueDeferPreemption
Definition: ketypes.h:1897
UCHAR SchedulerApcFill5[FIELD_OFFSET(KAPC, Inserted)+1]
Definition: ketypes.h:2164
ULONG64 NpxState
Definition: ketypes.h:2231
ULONG AutoAlignment
Definition: ketypes.h:1887
ULONG AutoBoostActive
Definition: ketypes.h:1852
ULONG ReadyTransition
Definition: ketypes.h:1854
ULONG ScbReadyQueue
Definition: ketypes.h:1873
GROUP_AFFINITY UserAffinity
Definition: ketypes.h:2075
PVOID KernelStack
Definition: ketypes.h:1838
ULONG GuiThread
Definition: ketypes.h:1893
ULONG DeferredProcessor
Definition: ketypes.h:2069
ULONG KernelTime
Definition: ketypes.h:2150
ULONG Spare15
Definition: ketypes.h:2115
UCHAR ResourceIndex
Definition: ketypes.h:2140
LIST_ENTRY ThreadListEntry
Definition: ketypes.h:2171
UCHAR SystemHeteroCpuPolicy
Definition: ketypes.h:1925
ULONG UmsPerformingSyscall
Definition: ketypes.h:1876
CHAR BasePriority
Definition: ketypes.h:2080
ULONG WaitTime
Definition: ketypes.h:2038
UCHAR UserHeteroCpuPolicy
Definition: ketypes.h:1926
UCHAR SchedulerApcFill2[FIELD_OFFSET(KAPC, SpareLong0)]
Definition: ketypes.h:2149
UCHAR AffinityFill[FIELD_OFFSET(GROUP_AFFINITY, Reserved)]
Definition: ketypes.h:2104
ULONG PriorityFloorSummary
Definition: ketypes.h:2190
UCHAR QuantumReset
Definition: ketypes.h:2145
PVOID LegoData
Definition: ketypes.h:2160
UCHAR WaitReason
Definition: ketypes.h:2127
volatile SHORT KeReferenceCount
Definition: ketypes.h:2197
PXSTATE_SAVE XStateSave
Definition: ketypes.h:2024
PVOID StackBase
Definition: ketypes.h:1829
ULONG SystemThread
Definition: ketypes.h:1870
ULONG NextProcessor
Definition: ketypes.h:2068
ULONG ExplicitIdealProcessor
Definition: ketypes.h:1899
ULONG EnableStackSwap
Definition: ketypes.h:1892
UCHAR WaitBlockFill8[FIELD_OFFSET(KWAIT_BLOCK, SparePtr)]
Definition: ketypes.h:2018
LONG MiscFlags
Definition: ketypes.h:1880
ULONG TimerActive
Definition: ketypes.h:1869
UCHAR AbWaitEntryCount
Definition: ketypes.h:2176
CHAR AdjustIncrement
Definition: ketypes.h:2092
volatile ULONG HighCycleTime
Definition: ketypes.h:1833
LIST_ENTRY MutantListHead
Definition: ketypes.h:2172
UCHAR SchedulerApcFill1[FIELD_OFFSET(KAPC, SpareByte1)]
Definition: ketypes.h:2144
UCHAR PriorityFloorCounts[16]
Definition: ketypes.h:2189
UCHAR ExplicitSystemHeteroCpuPolicy
Definition: ketypes.h:1927
volatile UCHAR Tag
Definition: ketypes.h:1924
UCHAR AbEntrySummary
Definition: ketypes.h:2175
SHORT KernelApcDisable
Definition: ketypes.h:2043
ULONG AlertedByThreadId
Definition: ketypes.h:1890
SINGLE_LIST_ENTRY IoSelfBoostsEntry
Definition: ketypes.h:2188
KEVENT SuspendEvent
Definition: ketypes.h:2170
CHAR Spare12
Definition: ketypes.h:1954
SINGLE_LIST_ENTRY PropagateBoostsEntry
Definition: ketypes.h:2187
DISPATCHER_HEADER Header
Definition: ketypes.h:1824
KWAIT_STATUS_REGISTER WaitRegister
Definition: ketypes.h:1841
PKWAIT_BLOCK WaitBlockList
Definition: ketypes.h:1963
ULONG ProcessStackCountDecremented
Definition: ketypes.h:1912
ULONG ContextSwitches
Definition: ketypes.h:1951
ULONG64 RelativeTimerBias
Definition: ketypes.h:1972
ULONG DisableStackCheck
Definition: ketypes.h:1877
ULONG EtwStackTraceApcInserted
Definition: ketypes.h:1915
UCHAR SavedApcStateFill[FIELD_OFFSET(KAPC_STATE, UserApcPending)+1]
Definition: ketypes.h:2126
UCHAR WaitBlockFill9[1 *sizeof(KWAIT_BLOCK)+FIELD_OFFSET(KWAIT_BLOCK, SparePtr)]
Definition: ketypes.h:2023
CHAR Saturation
Definition: ketypes.h:2129
XSAVE_FORMAT * StateSaveArea
Definition: ketypes.h:1839
CHAR SuspendCount
Definition: ketypes.h:2128
ULONG DeferPreemption
Definition: ketypes.h:1896
UCHAR Spare0
Definition: ketypes.h:1928
KTIMER Timer
Definition: ketypes.h:1974
UCHAR WaitBlockFill11[3 *sizeof(KWAIT_BLOCK)+FIELD_OFFSET(KWAIT_BLOCK, Object)]
Definition: ketypes.h:2033
volatile VOID * StackLimit
Definition: ketypes.h:1828
LIST_ENTRY QueueListEntry
Definition: ketypes.h:2055
ULONG ProcessDetachActive
Definition: ketypes.h:1871
KAPC_STATE ApcState
Definition: ketypes.h:1941
struct _KSCHEDULING_GROUP * SchedulingGroup
Definition: ketypes.h:1840
PKPROCESS Process
Definition: ketypes.h:2071
KIRQL WaitIrql
Definition: ketypes.h:1958
KAPC SchedulerApc
Definition: ketypes.h:2136
UCHAR Preempted
Definition: ketypes.h:2090
ULONG UserTime
Definition: ketypes.h:2166
ULONG UmsDirectedSwitchEnable
Definition: ketypes.h:1868
ULONG ApcQueueable
Definition: ketypes.h:1874
SINGLE_LIST_ENTRY ForegroundDpcStackListEntry
Definition: ketypes.h:2214
volatile UCHAR State
Definition: ketypes.h:1952
ULONG WaitNext
Definition: ketypes.h:1859
UCHAR UserAffinityFill[FIELD_OFFSET(GROUP_AFFINITY, Reserved)]
Definition: ketypes.h:2078
ULONG ForceDeferSchedule
Definition: ketypes.h:1898
UCHAR WaitBlockCount
Definition: ketypes.h:2106
Definition: ketypes.h:937
KSPIN_LOCK Lock
Definition: ketypes.h:939
ULARGE_INTEGER Time
Definition: ketypes.h:942
LIST_ENTRY Entry
Definition: ketypes.h:941
KTIMER_TABLE_ENTRY TimerEntries[256]
Definition: ketypes.h:948
PKTIMER TimerExpiry[64]
Definition: ketypes.h:947
ULONG LangGenerationCount
Definition: ketypes.h:1488
ULONG CookiePad[1]
Definition: ketypes.h:1442
UCHAR QpcInterruptTimeIncrementShift
Definition: ketypes.h:1457
XSTATE_CONFIGURATION XState
Definition: ketypes.h:1526
ULONG DbgStateSeparationEnabled
Definition: ketypes.h:1398
BOOLEAN ProductTypeIsValid
Definition: ketypes.h:1301
union _KUSER_SHARED_DATA::@4261 DUMMYUNIONNAME2
union _KUSER_SHARED_DATA::@4260 DUMMYUNIONNAME
ULONG AitSamplingValue
Definition: ketypes.h:1286
ULONG DbgInstallerDetectEnabled
Definition: ketypes.h:1383
volatile KSYSTEM_TIME SystemTime
Definition: ketypes.h:1275
volatile UCHAR ActiveGroupCount
Definition: ketypes.h:1513
LARGE_INTEGER TimeZoneBiasEffectiveStart
Definition: ketypes.h:1524
ULONGLONG QpcSystemTimeIncrement
Definition: ketypes.h:1453
ULONG TickCountLowDeprecated
Definition: ketypes.h:1272
NT_PRODUCT_TYPE NtProductType
Definition: ketypes.h:1300
struct _KUSER_SHARED_DATA::@4261::@4268 DUMMYSTRUCTNAME2
ULONGLONG SystemCallPad[2]
Definition: ketypes.h:1417
ULONG DbgConsoleBrokerEnabled
Definition: ketypes.h:1391
ULONG ActiveProcessorCount
Definition: ketypes.h:1510
ULONGLONG RNGSeedVersion
Definition: ketypes.h:1288
ULONGLONG TestRetInstruction
Definition: ketypes.h:1407
UCHAR SEHValidationPolicy
Definition: ketypes.h:1327
ULONGLONG QpcInterruptTimeIncrement
Definition: ketypes.h:1454
volatile ULONG ActiveConsoleId
Definition: ketypes.h:1337
volatile ULONGLONG InterruptTimeBias
Definition: ketypes.h:1502
UCHAR MitigationPolicies
Definition: ketypes.h:1323
BOOLEAN KdDebuggerEnabled
Definition: ketypes.h:1320
ULONG NtMajorVersion
Definition: ketypes.h:1306
ULONGLONG BaselineSystemTimeQpc
Definition: ketypes.h:1451
ULONG TickCountMultiplier
Definition: ketypes.h:1273
LONGLONG ConsoleSessionForegroundProcessId
Definition: ketypes.h:1443
USHORT NativeProcessorArchitecture
Definition: ketypes.h:1304
UCHAR CurDirDevicesSkippedForDlls
Definition: ketypes.h:1328
ULONGLONG QpcFrequency
Definition: ketypes.h:1409
ULONG DbgElevationEnabled
Definition: ketypes.h:1381
struct _KUSER_SHARED_DATA::@4260::@4267 DUMMYSTRUCTNAME
ULONG SharedDataFlags
Definition: ketypes.h:1377
UCHAR NXSupportPolicy
Definition: ketypes.h:1326
volatile ULONGLONG QpcBias
Definition: ketypes.h:1509
KSYSTEM_TIME FeatureConfigurationChangeStamp
Definition: ketypes.h:1543
volatile LONG TimeZoneBiasStamp
Definition: ketypes.h:1290
BOOLEAN ProcessorFeatures[PROCESSOR_FEATURE_MAX]
Definition: ketypes.h:1308
ULONG LastSystemRITEventTickCount
Definition: ketypes.h:1340
ULONG NumberOfPhysicalPages
Definition: ketypes.h:1341
ULONG DbgMultiUsersInSessionSku
Definition: ketypes.h:1397
volatile ULONG64 TickCountQuad
Definition: ketypes.h:1424
volatile KSYSTEM_TIME TickCount
Definition: ketypes.h:1423
ULONG LargePageMinimum
Definition: ketypes.h:1283
volatile KSYSTEM_TIME InterruptTime
Definition: ketypes.h:1274
ULONG CryptoExponent
Definition: ketypes.h:1281
ULONG DbgSecureBootEnabled
Definition: ketypes.h:1395
BOOLEAN SafeBootMode
Definition: ketypes.h:1342
ULONG DbgMultiSessionSku
Definition: ketypes.h:1396
volatile ULONG TimeSlip
Definition: ketypes.h:1311
UCHAR TscQpcPad[2]
Definition: ketypes.h:1355
LARGE_INTEGER SystemExpirationDate
Definition: ketypes.h:1318
ULONG NtMinorVersion
Definition: ketypes.h:1307
WCHAR NtSystemRoot[260]
Definition: ketypes.h:1279
USHORT ImageNumberHigh
Definition: ketypes.h:1278
ULONG ReservedTickCountOverlay[3]
Definition: ketypes.h:1427
UCHAR QpcSystemTimeIncrementShift
Definition: ketypes.h:1456
ULONG64 UserPointerAuthMask
Definition: ketypes.h:1551
ULONG MaxStackTraceDepth
Definition: ketypes.h:1280
ULONG DbgErrorPortPresent
Definition: ketypes.h:1380
ULONG DbgVirtEnabled
Definition: ketypes.h:1382
union _KUSER_SHARED_DATA::@4262 DUMMYUNIONNAME3
ULONG ImageFileExecutionOptions
Definition: ketypes.h:1487
USHORT CyclesPerYield
Definition: ketypes.h:1333
UCHAR TscQpcSpareFlag
Definition: ketypes.h:1351
USHORT UnparkedProcessorCount
Definition: ketypes.h:1458
ULONG ComPlusPackage
Definition: ketypes.h:1339
ULONG TickCountPad[1]
Definition: ketypes.h:1428
BOOLEAN Reserved0[1]
Definition: ketypes.h:1302
ULONG EnclaveFeatureMask[4]
Definition: ketypes.h:1459
ALTERNATIVE_ARCHITECTURE_TYPE AlternativeArchitecture
Definition: ketypes.h:1312
volatile UCHAR QpcBypassEnabled
Definition: ketypes.h:1520
ULONGLONG TimeUpdateLock
Definition: ketypes.h:1447
volatile ULONG DismountCount
Definition: ketypes.h:1338
volatile KSYSTEM_TIME TimeZoneBias
Definition: ketypes.h:1276
LARGE_INTEGER TimeZoneBiasEffectiveEnd
Definition: ketypes.h:1525
ULONG SystemCallPad0
Definition: ketypes.h:1416
ULONGLONG BaselineInterruptTimeQpc
Definition: ketypes.h:1452
ULONG DataFlagsPad[1]
Definition: ketypes.h:1406
ULONG DbgDynProcessorEnabled
Definition: ketypes.h:1389
ULONG GlobalValidationRunlevel
Definition: ketypes.h:1289
USHORT UserModeGlobalLogger[16]
Definition: ketypes.h:1480
ULONG TelemetryCoverageRound
Definition: ketypes.h:1460
ULONGLONG Reserved4
Definition: ketypes.h:1491
USHORT ImageNumberLow
Definition: ketypes.h:1277
Definition: typedefs.h:120
struct _GENERAL_LOOKASIDE * P
Definition: ketypes.h:1034
struct _GENERAL_LOOKASIDE * L
Definition: ketypes.h:1035
FIXME: should move to rtltypes.h, but we can't include it here.
Definition: ketypes.h:1198
PRTL_BALANCED_NODE Root
Definition: ketypes.h:1199
PRTL_BALANCED_NODE Min
Definition: ketypes.h:1200
Definition: ntbasedef.h:636
ULONG ExTryToAcqExclusiveAcquires
Definition: ketypes.h:1000
ULONG ExTryToAcqExclusiveAttempts
Definition: ketypes.h:999
ULONG ExInitializeResourceCount
Definition: ketypes.h:965
ULONG ExecutiveResourceReleaseSharedCount
Definition: ketypes.h:971
ULONG ExAcqResSharedAcquiresExclusive
Definition: ketypes.h:979
ULONG ExAcqResExclusiveNotAcquires
Definition: ketypes.h:977
ULONG ExAcqResSharedStarveExclusiveNotAcquires
Definition: ketypes.h:989
ULONG ExSetResOwnerPointerSharedOld
Definition: ketypes.h:998
ULONG ExAcqResSharedWaitForExclusiveAcquiresSharedRecursive
Definition: ketypes.h:993
ULONG ExAcqResExclusiveAcquiresExclusiveRecursive
Definition: ketypes.h:975
ULONG ExEtwSynchTrackingNotificationsAccountedCount
Definition: ketypes.h:1004
ULONG ExecutiveResourceConvertsCount
Definition: ketypes.h:972
ULONG ExecutiveResourceReleaseExclusiveCount
Definition: ketypes.h:970
ULONG IpiSendRequestBroadcastCount
Definition: ketypes.h:962
ULONG ExAcqResExclusiveWaits
Definition: ketypes.h:976
ULONG ExAcqResSharedWaitForExclusiveWaits
Definition: ketypes.h:994
ULONG ExAcqResSharedWaits
Definition: ketypes.h:982
ULONG ExAcqResSharedWaitForExclusiveAcquiresExclusive
Definition: ketypes.h:991
ULONG SpinLockContentionCount
Definition: ketypes.h:960
ULONG ExAcqResSharedStarveExclusiveAttempts
Definition: ketypes.h:984
ULONG ExAcqResSharedAttempts
Definition: ketypes.h:978
ULONG ExDeleteResourceCount
Definition: ketypes.h:967
ULONG ExecutiveResourceContentionsCount
Definition: ketypes.h:969
ULONG ExAcqResSharedWaitForExclusiveAttempts
Definition: ketypes.h:990
ULONG ExAcqResSharedWaitForExclusiveNotAcquires
Definition: ketypes.h:995
ULONG ExEtwSynchTrackingNotificationsCount
Definition: ketypes.h:1003
ULONG ExBoostSharedOwners
Definition: ketypes.h:1002
ULONG IpiSendRequestRoutineCount
Definition: ketypes.h:963
ULONG ExAcqResSharedStarveExclusiveAcquiresSharedRecursive
Definition: ketypes.h:987
ULONG ExAcqResSharedStarveExclusiveAcquiresShared
Definition: ketypes.h:986
ULONG ExAcqResSharedStarveExclusiveWaits
Definition: ketypes.h:988
ULONG ExAcqResSharedAcquiresShared
Definition: ketypes.h:980
ULONG SpinLockSpinCount
Definition: ketypes.h:961
ULONG IpiSendSoftwareInterruptCount
Definition: ketypes.h:964
ULONG ExSetResOwnerPointerExclusive
Definition: ketypes.h:996
ULONG ExAcqResSharedNotAcquires
Definition: ketypes.h:983
ULONG ExReInitializeResourceCount
Definition: ketypes.h:966
ULONG ExAcqResSharedWaitForExclusiveAcquiresShared
Definition: ketypes.h:992
ULONG ExecutiveResourceAcquiresCount
Definition: ketypes.h:968
ULONG ExAcqResSharedStarveExclusiveAcquiresExclusive
Definition: ketypes.h:985
ULONG ExAcqResExclusiveAttempts
Definition: ketypes.h:973
ULONG ExSetResOwnerPointerSharedNew
Definition: ketypes.h:997
ULONG ExAcqResExclusiveAcquiresExclusive
Definition: ketypes.h:974
ULONG SpinLockAcquireCount
Definition: ketypes.h:959
ULONG ExBoostExclusiveOwner
Definition: ketypes.h:1001
ULONG ExAcqResSharedAcquiresSharedRecursive
Definition: ketypes.h:981
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:1572
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:1572
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
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