ReactOS 0.4.15-dev-5895-g2687c1b
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 (AMD64)
8
9Abstract:
10
11 amd64 Type definitions for the Kernel services.
12
13Author:
14
15 Alex Ionescu (alexi@tinykrnl.org) - Updated - 27-Feb-2006
16 Timo Kreuzer (timo.kreuzer@reactos.org) - Updated - 14-Aug-2008
17
18--*/
19
20#ifndef _AMD64_KETYPES_H
21#define _AMD64_KETYPES_H
22
23//
24// Dependencies
25//
26
27//
28// KPCR Access for non-IA64 builds
29//
30//#define K0IPCR ((ULONG_PTR)(KIP0PCRADDRESS))
31//#define PCR ((volatile KPCR * const)K0IPCR)
32#define PCR ((volatile KPCR * const)__readgsqword(FIELD_OFFSET(KPCR, Self)))
33//#if defined(CONFIG_SMP) || defined(NT_BUILD)
34//#undef KeGetPcr
35//#define KeGetPcr() ((volatile KPCR * const)__readfsdword(0x1C))
36//#endif
37
38//
39// CPU Vendors
40//
41typedef enum
42{
48
49//
50// Machine Types
51//
52#define MACHINE_TYPE_ISA 0x0000
53#define MACHINE_TYPE_EISA 0x0001
54#define MACHINE_TYPE_MCA 0x0002
55
56//
57// X86 80386 Segment Types
58//
59#define I386_TASK_GATE 0x5
60#define I386_TSS 0x9
61#define I386_ACTIVE_TSS 0xB
62#define I386_CALL_GATE 0xC
63#define I386_INTERRUPT_GATE 0xE
64#define I386_TRAP_GATE 0xF
65
66//
67// Selector Names
68//
69#define RPL_MASK 0x0003
70#define MODE_MASK 0x0001
71#define KGDT64_NULL 0x0000
72#define KGDT64_R0_CODE 0x0010
73#define KGDT64_R0_DATA 0x0018
74#define KGDT64_R3_CMCODE 0x0020
75#define KGDT64_R3_DATA 0x0028
76#define KGDT64_R3_CODE 0x0030
77#define KGDT64_SYS_TSS 0x0040
78#define KGDT64_R3_CMTEB 0x0050
79#define KGDT64_R0_LDT 0x0060
80
81//
82// CR4
83//
84#define CR4_VME 0x1
85#define CR4_PVI 0x2
86#define CR4_TSD 0x4
87#define CR4_DE 0x8
88#define CR4_PSE 0x10
89#define CR4_PAE 0x20
90#define CR4_MCE 0x40
91#define CR4_PGE 0x80
92#define CR4_FXSR 0x200
93#define CR4_XMMEXCPT 0x400
94#define CR4_CHANNELS 0x800
95#define CR4_XSAVE 0x40000
96
97//
98// DR7
99//
100#define DR7_LEGAL 0xFFFF0355
101#define DR7_ACTIVE 0x00000355
102#define DR7_TRACE_BRANCH 0x00000200
103#define DR7_LAST_BRANCH 0x00000100
104
105//
106// Debug flags
107//
108#define DEBUG_ACTIVE_DR7 0x0001
109#define DEBUG_ACTIVE_INSTRUMENTED 0x0002
110#define DEBUG_ACTIVE_DBG_INSTRUMENTED 0x0003
111#define DEBUG_ACTIVE_MINIMAL_THREAD 0x0004
112#define DEBUG_ACTIVE_PRIMARY_THREAD 0x0080
113#define DEBUG_ACTIVE_PRIMARY_THREAD_BIT 0x0007
114#define DEBUG_ACTIVE_PRIMARY_THREAD_LOCK_BIT 0x001F
115#define DEBUG_ACTIVE_SCHEDULED_THREAD 0x0040
116#define DEBUG_ACTIVE_SCHEDULED_THREAD_BIT 0x0006
117#define DEBUG_ACTIVE_SCHEDULED_THREAD_LOCK_BIT 0x001E
118#define DEBUG_ACTIVE_SCHEDULED_THREAD_LOCK 0x40000000
119
120//
121// EFlags
122//
123#define EFLAGS_CF 0x01L
124#define EFLAGS_ZF 0x40L
125#define EFLAGS_TF 0x100L
126#define EFLAGS_INTERRUPT_MASK 0x200L
127#define EFLAGS_DF 0x400L
128#define EFLAGS_IOPL 0x3000L
129#define EFLAGS_NESTED_TASK 0x4000L
130//#define EFLAGS_NF 0x4000
131#define EFLAGS_RF 0x10000
132#define EFLAGS_V86_MASK 0x20000
133#define EFLAGS_ALIGN_CHECK 0x40000
134#define EFLAGS_VIF 0x80000
135#define EFLAGS_VIP 0x100000
136#define EFLAGS_ID 0x200000
137#define EFLAGS_USER_SANITIZE 0x3F4DD7
138#define EFLAG_SIGN 0x8000
139#define EFLAG_ZERO 0x4000
140#define EFLAGS_TF_MASK 0x0100
141#define EFLAGS_TF_SHIFT 0x0008
142#define EFLAGS_ID_MASK 0x200000
143#define EFLAGS_IF_MASK 0x0200
144#define EFLAGS_IF_SHIFT 0x0009
145
146//
147// MXCSR Floating Control/Status Bit Masks
148//
149#define XSW_INVALID_OPERATION 0x0001
150#define XSW_DENORMAL 0x0002
151#define XSW_ZERO_DIVIDE 0x0004
152#define XSW_OVERFLOW 0x0008
153#define XSW_UNDERFLOW 0x0010
154#define XSW_PRECISION 0x0020
155#define XCW_INVALID_OPERATION 0x0080
156#define XCW_DENORMAL 0x0100
157#define XCW_ZERO_DIVIDE 0x0200
158#define XCW_OVERFLOW 0x0400
159#define XCW_UNDERFLOW 0x0800
160#define XCW_PRECISION 0x1000
161#define XCW_ROUND_CONTROL 0x6000
162#define XCW_FLUSH_ZERO 0x8000
163#define XSW_ERROR_MASK 0x003F
164#define XSW_ERROR_SHIFT 7
165
166//
167// Legacy floating status word bit masks.
168//
169#define FSW_INVALID_OPERATION 0x0001
170#define FSW_DENORMAL 0x0002
171#define FSW_ZERO_DIVIDE 0x0004
172#define FSW_OVERFLOW 0x0008
173#define FSW_UNDERFLOW 0x0010
174#define FSW_PRECISION 0x0020
175#define FSW_STACK_FAULT 0x0040
176#define FSW_ERROR_SUMMARY 0x0080
177#define FSW_CONDITION_CODE_0 0x0100
178#define FSW_CONDITION_CODE_1 0x0200
179#define FSW_CONDITION_CODE_2 0x0400
180#define FSW_CONDITION_CODE_3 0x4000
181#define FSW_ERROR_MASK 0x003F
182
183//
184// Machine Specific Registers
185//
186#define MSR_EFER 0xC0000080
187#define MSR_STAR 0xC0000081
188#define MSR_LSTAR 0xC0000082
189#define MSR_CSTAR 0xC0000083
190#define MSR_SYSCALL_MASK 0xC0000084
191#define MSR_FS_BASE 0xC0000100
192#define MSR_GS_BASE 0xC0000101
193#define MSR_GS_SWAP 0xC0000102
194#define MSR_MCG_STATUS 0x017A
195#define MSR_AMD_ACCESS 0x9C5A203A
196#define MSR_IA32_MISC_ENABLE 0x01A0
197#define MSR_LAST_BRANCH_FROM 0x01DB
198#define MSR_LAST_BRANCH_TO 0x01DC
199#define MSR_LAST_EXCEPTION_FROM 0x01DD
200#define MSR_LAST_EXCEPTION_TO 0x01DE
201
202//
203// Caching values for the PAT MSR
204//
205#define PAT_UC 0ULL
206#define PAT_WC 1ULL
207#define PAT_WT 4ULL
208#define PAT_WP 5ULL
209#define PAT_WB 6ULL
210#define PAT_UCM 7ULL
211
212//
213// Flags in MSR_EFER
214//
215#define MSR_SCE 0x0001
216#define MSR_LME 0x0100
217#define MSR_LMA 0x0400
218#define MSR_NXE 0x0800
219#define MSR_PAT 0x0277
220#define MSR_DEBUG_CTL 0x01D9
221
222//
223// Flags in MSR_IA32_MISC_ENABLE
224//
225#define MSR_XD_ENABLE_MASK 0xFFFFFFFB
226
227//
228// Flags in MSR_DEBUG_CTL
229//
230#define MSR_DEBUG_CTL_LBR 0x0001
231#define MSR_DEBUG_CTL_BTF 0x0002
232
233//
234// IPI Types
235//
236#define IPI_APC 1
237#define IPI_DPC 2
238#define IPI_FREEZE 4
239#define IPI_PACKET_READY 8
240#define IPI_SYNCH_REQUEST 16
241
242//
243// PRCB Flags
244//
245#define PRCB_MINOR_VERSION 1
246#define PRCB_MAJOR_VERSION 1
247#define PRCB_BUILD_DEBUG 1
248#define PRCB_BUILD_UNIPROCESSOR 2
249
250//
251// Exception active flags
252//
253#define KEXCEPTION_ACTIVE_INTERRUPT_FRAME 0x0000
254#define KEXCEPTION_ACTIVE_EXCEPTION_FRAME 0x0001
255#define KEXCEPTION_ACTIVE_SERVICE_FRAME 0x0002
256
257//
258// HAL Variables
259//
260#define INITIAL_STALL_COUNT 100
261#define MM_HAL_VA_START 0xFFFFFFFFFFC00000ULL /* This is Vista+ */
262#define MM_HAL_VA_END 0xFFFFFFFFFFFFFFFFULL
263#define APIC_BASE 0xFFFFFFFFFFFE0000ULL
264
265//
266// IOPM Definitions
267//
268#define IO_ACCESS_MAP_NONE 0
269#define IOPM_OFFSET FIELD_OFFSET(KTSS, IoMaps[0].IoMap)
270#define KiComputeIopmOffset(MapNumber) \
271 (MapNumber == IO_ACCESS_MAP_NONE) ? \
272 (USHORT)(sizeof(KTSS)) : \
273 (USHORT)(FIELD_OFFSET(KTSS, IoMaps[MapNumber-1].IoMap))
274
275//
276// Static Kernel-Mode Address start (use MM_KSEG0_BASE for actual)
277//
278#define KSEG0_BASE 0xfffff80000000000ULL
279
280//
281// Synchronization-level IRQL
282//
283#define SYNCH_LEVEL 12
284
285#define NMI_STACK_SIZE 0x2000
286#define ISR_STACK_SIZE 0x6000
287
288//
289// Number of pool lookaside lists per pool in the PRCB
290//
291#define NUMBER_POOL_LOOKASIDE_LISTS 32
292
293//
294// Structure for CPUID
295//
296typedef union _CPU_INFO
297{
299 struct
300 {
305 };
307
308//
309// Trap Frame Definition
310//
311typedef struct _KTRAP_FRAME
312{
330 union
331 {
334 };
341 union
342 {
346 };
353 union
354 {
355 struct
356 {
362 };
363 struct
364 {
367 };
368 };
378 union
379 {
383 };
396
397//
398// Dummy LDT_ENTRY
399//
400#ifndef _LDT_ENTRY_DEFINED
401#define _LDT_ENTRY_DEFINED
403#endif
404
405//
406// GDT Entry Definition
407//
408typedef union _KGDTENTRY64
409{
410 struct
411 {
414 union
415 {
416 struct
417 {
423 struct
424 {
436 };
439 };
442#define KGDTENTRY KGDTENTRY64
443#define PKGDTENTRY PKGDTENTRY64
444
445//
446// IDT Entry Access Definition
447//
448typedef struct _KIDT_ACCESS
449{
450 union
451 {
452 struct
453 {
459 };
461 };
463
464//
465// IDT Entry Definition
466//
467typedef union _KIDTENTRY64
468{
469 struct
470 {
481 };
484#define KIDTENTRY KIDTENTRY64
485#define PKIDTENTRY PKIDTENTRY64
486
487typedef struct _KDESCRIPTOR
488{
493
494#ifndef NTOS_MODE_USER
495
496//
497// Special Registers Structure (outside of CONTEXT)
498//
500{
529
530//
531// Processor State Data
532//
533typedef struct _KPROCESSOR_STATE
534{
538
539#if (NTDDI_VERSION < NTDDI_LONGHORN)
540#define GENERAL_LOOKASIDE_POOL PP_LOOKASIDE_LIST
541#endif
542
543typedef struct _KREQUEST_PACKET
544{
548
549typedef struct _REQUEST_MAILBOX
550{
555
556//
557// Processor Region Control Block
558//
559#pragma pack(push,4)
560typedef struct _KPRCB
561{
563#if (NTDDI_VERSION >= NTDDI_LONGHORN)
565#else
568#endif
574#if (NTDDI_VERSION >= NTDDI_LONGHORN)
578#else
579 UINT64 UserRsp;
580#endif
587#if (NTDDI_VERSION >= NTDDI_LONGHORN)
588 union
589 {
591 struct
592 {
595 };
596 };
597#else
599#endif
606#if (NTDDI_VERSION >= NTDDI_LONGHORN)
609#else
612#endif
614#if (NTDDI_VERSION >= NTDDI_LONGHORN)
616#else
618 UCHAR PrcbPad0x[3];
619#endif
621#if (NTDDI_VERSION >= NTDDI_LONGHORN)
625#else
626 UINT64 PrcbPad00[4];
627#endif
637#if (NTDDI_VERSION < NTDDI_LONGHORN)
639#endif
643#if (NTDDI_VERSION < NTDDI_LONGHORN)
646#endif
651#if (NTDDI_VERSION >= NTDDI_LONGHORN)
661#else
664#endif
671#if (NTDDI_VERSION < NTDDI_LONGHORN)
673 UCHAR PrcbPad2[12];
674#endif
683#if (NTDDI_VERSION >= NTDDI_LONGHORN)
685#else
686 PVOID SavedRsp;
687#endif
705#if (NTDDI_VERSION >= NTDDI_LONGHORN)
707#else
708 LONG PrcbPad40;
710#endif
712#if (NTDDI_VERSION >= NTDDI_LONGHORN)
714#endif
716#if (NTDDI_VERSION >= NTDDI_LONGHORN)
724#else
725 UINT64 PrcbPad7[4];
726#endif
728#if (NTDDI_VERSION >= NTDDI_LONGHORN)
730#endif
733#if (NTDDI_VERSION >= NTDDI_LONGHORN)
735#endif
746#if (NTDDI_VERSION >= NTDDI_LONGHORN)
753#else
754 UCHAR PrcbPad8[13];
755#endif
759#if (NTDDI_VERSION >= NTDDI_LONGHORN)
766#endif
768#if (NTDDI_VERSION >= NTDDI_LONGHORN)
824#else
825 ULONG PrcbPad90[1];
831 UCHAR PrcbPad9[12];
841 ULONG KeFirstLevelTbFills;
842 ULONG KeFloatingEmulationCount;
844 ULONG KeSecondLevelTbFills;
846 UCHAR PrcbPad10[2];
852#endif
854
855//
856// Processor Control Region
857//
858typedef struct _KIPCR
859{
860 union
861 {
863 struct
864 {
868 struct _KPCR *Self;
872 };
873 };
893 ULONG Fill2[2]; // 0x178
894 KPRCB Prcb; // 0x180
895
896 // hack:
898
900#pragma pack(pop)
901
902//
903// TSS Definition
904//
905typedef struct _KiIoAccessMap
906{
910
911
912#pragma pack(push,4)
913typedef struct _KTSS64
914{
915 /* 000 */ ULONG Reserved0;
916 /* 004 */ UINT64 Rsp0;
917 /* 00c */ UINT64 Rsp1;
918 /* 014 */ UINT64 Rsp2;
919 /* 01c */ UINT64 Ist[8];
920 /* 05c */ UINT64 Reserved1;
921 /* 064 */ USHORT Reserved2;
922 /* 066 */ USHORT IoMapBase;
924#pragma pack(pop)
925#define KTSS KTSS64
926#define PKTSS PKTSS64
927
928//
929// KEXCEPTION_FRAME
930//
931typedef struct _KEXCEPTION_FRAME
932{
938#if (NTDDI_VERSION >= NTDDI_WIN8)
940#else
941 ULONG64 InitialStack;
942#endif
954#if (NTDDI_VERSION < NTDDI_WIN8)
955 ULONG64 CallbackStack;
956#endif
959#if (NTDDI_VERSION >= NTDDI_WIN8)
961#endif
973
974typedef struct _MACHINE_FRAME
975{
985
986//
987// Defines the Callback Stack Layout for User Mode Callbacks
988//
990
991//
992// User side callout frame
993//
994typedef struct _UCALLOUT_FRAME
995{
1004} UCALLOUT_FRAME, *PUCALLOUT_FRAME; // size = 0x0058
1005
1006//
1007// Stack frame layout for KiUserExceptionDispatcher
1008// The name is totally made up
1009//
1011{
1017
1019{
1028 struct _UNWIND_HISTORY_TABLE *HistoryTable;
1032
1033typedef struct _KSTART_FRAME
1034{
1042
1043typedef struct _KSWITCH_FRAME
1044{
1055
1056#define PROCESSOR_START_FLAG_FORCE_ENABLE_NX 0x0001
1058{
1060 ULONG Flags; // 0x0008
1061 ULONG Gdt32; // 0x000C
1062 ULONG Idt32; // 0x0012
1063 PVOID Gdt; // 0x0018
1064 // ???
1066 UCHAR PmTarget[6]; // 0x0060
1070 ULONG64 MsrPat; // 0x0080
1071 ULONG64 MsrEFER; // 0x0088
1074
1075//
1076// Inline function to get current KPRCB
1077//
1079struct _KPRCB *
1081{
1082 return (struct _KPRCB *)__readgsqword(FIELD_OFFSET(KIPCR, CurrentPrcb));
1083}
1084
1085#endif
1086#endif
unsigned long long UINT64
unsigned int UINT32
signed long long INT64
EXCEPTION_ROUTINE * PEXCEPTION_ROUTINE
Definition: compat.h:709
UCHAR KIRQL
Definition: env_spec_w32.h:591
unsigned __int64 ULONG64
Definition: imports.h:198
struct _KSPECIAL_REGISTERS * PKSPECIAL_REGISTERS
struct _KIDT_ACCESS KIDT_ACCESS
struct _KTSS64 * PKTSS64
struct _KTRAP_FRAME KTRAP_FRAME
struct _KREQUEST_PACKET * PKREQUEST_PACKET
struct _KDESCRIPTOR * PKDESCRIPTOR
struct _KPROCESSOR_STATE * PKPROCESSOR_STATE
union _KGDTENTRY64 * PKGDTENTRY64
struct _KREQUEST_PACKET KREQUEST_PACKET
struct _KUSER_EXCEPTION_STACK * PKUSER_EXCEPTION_STACK
struct _KSTART_FRAME KSTART_FRAME
#define NUMBER_POOL_LOOKASIDE_LISTS
Definition: ketypes.h:291
struct _REQUEST_MAILBOX * PREQUEST_MAILBOX
struct _KPROCESSOR_START_BLOCK * PKPROCESSOR_START_BLOCK
struct _KSWITCH_FRAME KSWITCH_FRAME
struct _DISPATCHER_CONTEXT * PDISPATCHER_CONTEXT
struct _KIPCR KIPCR
struct _REQUEST_MAILBOX REQUEST_MAILBOX
KEXCEPTION_FRAME KCALLOUT_FRAME
Definition: ketypes.h:989
struct _KUSER_EXCEPTION_STACK KUSER_EXCEPTION_STACK
struct _KPRCB * PKPRCB
struct _KEXCEPTION_FRAME * PKEXCEPTION_FRAME
FORCEINLINE struct _KPRCB * KeGetCurrentPrcb(VOID)
Definition: ketypes.h:1080
struct _DISPATCHER_CONTEXT DISPATCHER_CONTEXT
struct _KiIoAccessMap KIIO_ACCESS_MAP
struct _KDESCRIPTOR KDESCRIPTOR
struct _MACHINE_FRAME MACHINE_FRAME
struct _KSWITCH_FRAME * PKSWITCH_FRAME
struct _UCALLOUT_FRAME * PUCALLOUT_FRAME
struct _KIPCR * PKIPCR
KEXCEPTION_FRAME * PKCALLOUT_FRAME
Definition: ketypes.h:989
union _KIDTENTRY64 * PKIDTENTRY64
CPU_VENDORS
Definition: ketypes.h:42
@ CPU_VIA
Definition: ketypes.h:46
@ CPU_INTEL
Definition: ketypes.h:45
@ CPU_UNKNOWN
Definition: ketypes.h:43
@ CPU_AMD
Definition: ketypes.h:44
union _KGDTENTRY64 KGDTENTRY64
union _KIDTENTRY64 KIDTENTRY64
union _CPU_INFO CPU_INFO
ULONG LDT_ENTRY
Definition: ketypes.h:402
struct _MACHINE_FRAME * PMACHINE_FRAME
struct _KSTART_FRAME * PKSTART_FRAME
struct _KPRCB KPRCB
struct _KEXCEPTION_FRAME KEXCEPTION_FRAME
struct _KTRAP_FRAME * PKTRAP_FRAME
struct _KPROCESSOR_START_BLOCK KPROCESSOR_START_BLOCK
struct _KSPECIAL_REGISTERS KSPECIAL_REGISTERS
union _CPU_INFO * PCPU_INFO
struct _KIDT_ACCESS * PKIDT_ACCESS
struct _KPROCESSOR_STATE KPROCESSOR_STATE
struct _UCALLOUT_FRAME UCALLOUT_FRAME
struct _KTSS64 KTSS64
ULONG KeDcacheFlushCount
Definition: cpu.c:20
ULONG KeIcacheFlushCount
Definition: cpu.c:19
long LONG
Definition: pedump.c:60
unsigned short USHORT
Definition: pedump.c:61
Definition: fatfs.h:173
PCONTEXT ContextRecord
Definition: ketypes.h:1025
struct _RUNTIME_FUNCTION * FunctionEntry
Definition: ketypes.h:1022
struct _UNWIND_HISTORY_TABLE * HistoryTable
Definition: ketypes.h:1028
PEXCEPTION_ROUTINE LanguageHandler
Definition: ketypes.h:1026
ULONG64 EstablisherFrame
Definition: ketypes.h:1023
PVOID Base
Definition: ketypes.h:491
USHORT Pad[3]
Definition: ketypes.h:489
USHORT Limit
Definition: ketypes.h:490
Definition: ketypes.h:687
ULONG64 Return
Definition: ketypes.h:971
ULONG64 OutputBuffer
Definition: ketypes.h:957
ULONG64 P3Home
Definition: ketypes.h:935
ULONG64 P1Home
Definition: ketypes.h:933
ULONG64 MxCsr
Definition: ketypes.h:962
ULONG64 P4Home
Definition: ketypes.h:936
ULONG64 Spare2
Definition: ketypes.h:960
ULONG64 P2Home
Definition: ketypes.h:934
ULONG64 OutputLength
Definition: ketypes.h:958
ULONG64 TrapFrame
Definition: ketypes.h:953
ULONG64 Spare1
Definition: ketypes.h:939
UCHAR SystemSegmentFlag
Definition: ketypes.h:456
UCHAR Dpl
Definition: ketypes.h:457
UCHAR Reserved
Definition: ketypes.h:454
USHORT Value
Definition: ketypes.h:460
UCHAR SegmentType
Definition: ketypes.h:455
UCHAR Present
Definition: ketypes.h:458
ULONG ContextSwitches
Definition: ketypes.h:897
KPRCB Prcb
Definition: ketypes.h:894
USHORT MinorVersion
Definition: ketypes.h:882
ULONG SecondLevelCacheSize
Definition: ketypes.h:886
USHORT MajorVersion
Definition: ketypes.h:881
UCHAR SecondLevelCacheAssociativity
Definition: ketypes.h:877
KIRQL Irql
Definition: ketypes.h:876
UCHAR Fill0
Definition: ketypes.h:879
struct _KPRCB * CurrentPrcb
Definition: ketypes.h:869
union _KGDTENTRY64 * GdtBase
Definition: ketypes.h:865
ULONG Unused0[3]
Definition: ketypes.h:880
ULONG Fill1
Definition: ketypes.h:889
ULONG Fill2[2]
Definition: ketypes.h:893
ULONG HalReserved[16]
Definition: ketypes.h:887
PKSPIN_LOCK_QUEUE LockArray
Definition: ketypes.h:870
struct _KTSS64 * TssBase
Definition: ketypes.h:866
PVOID Unused1[3]
Definition: ketypes.h:884
UCHAR ObsoleteNumber
Definition: ketypes.h:878
NT_TIB NtTib
Definition: ketypes.h:862
PVOID Unused3
Definition: ketypes.h:891
ULONG Unused2
Definition: ketypes.h:888
ULONG KernelReserved[15]
Definition: ketypes.h:885
union _KIDTENTRY64 * IdtBase
Definition: ketypes.h:874
ULONG PcrAlign1[24]
Definition: ketypes.h:892
struct _KPCR * Self
Definition: ketypes.h:868
ULONG StallScaleFactor
Definition: ketypes.h:883
ULONG64 UserRsp
Definition: ketypes.h:867
PVOID KdVersionBlock
Definition: ketypes.h:890
PVOID Used_Self
Definition: ketypes.h:871
ULONG64 Unused[2]
Definition: ketypes.h:875
Definition: ke.h:290
LONG IoWriteOperationCount
Definition: ketypes.h:666
ULONG CcMdlReadNoWait
Definition: ketypes.h:778
UCHAR CoresPerPhysicalProcessor
Definition: ketypes.h:607
ULONG DpcTimeLimit
Definition: ketypes.h:749
ULONG CcCopyReadNoWaitMiss
Definition: ketypes.h:659
ULONG CcLostDelayedWrites
Definition: ketypes.h:785
PVOID HyperPte
Definition: ketypes.h:812
UINT64 HalReserved[8]
Definition: ketypes.h:601
UCHAR QuantumEnd
Definition: ketypes.h:701
UCHAR PrcbPad10[3]
Definition: ketypes.h:803
KSPIN_LOCK_QUEUE LockQueue[LockQueueMaximumLock]
Definition: ketypes.h:628
UCHAR IdleHalt
Definition: ketypes.h:570
PROCESSOR_POWER_STATE PowerState
Definition: ketypes.h:800
UCHAR PrcbPad3[116]
Definition: ketypes.h:677
ULONG InterruptTime
Definition: ketypes.h:741
LONG DpcWatchdogPeriod
Definition: ketypes.h:721
struct _KTHREAD * IdleThread
Definition: ketypes.h:573
ULONG Stride
Definition: ketypes.h:623
GENERAL_LOOKASIDE_POOL PPNPagedLookasideList[NUMBER_POOL_LOOKASIDE_LISTS]
Definition: ketypes.h:630
ULONG UserTime
Definition: ketypes.h:739
ULONG CcReadAheadIos
Definition: ketypes.h:795
ULONG CacheCount
Definition: ketypes.h:809
PVOID SparePtr0
Definition: ketypes.h:684
ULONG CcMapDataWaitMiss
Definition: ketypes.h:790
UINT64 PrcbLock
Definition: ketypes.h:582
UCHAR DpcThreadActive
Definition: ketypes.h:694
UCHAR DpcInterruptRequested
Definition: ketypes.h:691
UINT64 PrcbPad71[12]
Definition: ketypes.h:734
USHORT MinorVersion
Definition: ketypes.h:602
struct _KPRCB * MultiThreadSetMaster
Definition: ketypes.h:758
UINT64 SetMember
Definition: ketypes.h:583
LONG IoReadOperationCount
Definition: ketypes.h:665
UCHAR PrcbPad8[3]
Definition: ketypes.h:727
LONG MmDemandZeroCount
Definition: ketypes.h:640
LONG MmPageReadIoCount
Definition: ketypes.h:642
UCHAR DpcRoutineActive
Definition: ketypes.h:693
UCHAR VendorString[13]
Definition: ketypes.h:802
UCHAR NestingLevel
Definition: ketypes.h:575
PVOID RateControl
Definition: ketypes.h:820
UCHAR IdleSchedule
Definition: ketypes.h:703
LONG ClockKeepAlive
Definition: ketypes.h:717
UCHAR InterruptRequest
Definition: ketypes.h:569
ULONG QueueIndex
Definition: ketypes.h:732
UINT64 WaitLock
Definition: ketypes.h:729
PVOID WheaInfo
Definition: ketypes.h:813
UINT64 StartCycles
Definition: ketypes.h:760
CHAR CpuType
Definition: ketypes.h:585
LONG Sleeping
Definition: ketypes.h:767
UCHAR BuildType
Definition: ketypes.h:604
ULONG InterruptCount
Definition: ketypes.h:737
ULONG ApicMask
Definition: ketypes.h:613
LIST_ENTRY WaitListHead
Definition: ketypes.h:727
ULONG CcMdlReadWait
Definition: ketypes.h:779
ULONG KeContextSwitches
Definition: ketypes.h:653
ULONG CcPinReadNoWaitMiss
Definition: ketypes.h:791
ULONG CcPinReadWait
Definition: ketypes.h:777
PVOID AcpiReserved
Definition: ketypes.h:620
ULONG DpcLastCount
Definition: ketypes.h:699
UINT64 PrcbPad81[2]
Definition: ketypes.h:752
LONG IoOtherOperationCount
Definition: ketypes.h:667
UCHAR SkipTick
Definition: ketypes.h:743
PVOID EtwSupport
Definition: ketypes.h:814
ULONG PeriodicCount
Definition: ketypes.h:750
UINT64 RspBase
Definition: ketypes.h:581
ULONG MxCsr
Definition: ketypes.h:562
UCHAR CpuModel
Definition: ketypes.h:594
KDPC_DATA DpcData[2]
Definition: ketypes.h:681
LONG MmMappedWriteIoCount
Definition: ketypes.h:650
ULONG DebugDpcTime
Definition: ketypes.h:519
ULONG CcMapDataNoWait
Definition: ketypes.h:773
LONG MmCacheIoCount
Definition: ketypes.h:798
ULONG CachedCommit
Definition: ketypes.h:810
ULONG CcMdlReadWaitMiss
Definition: ketypes.h:794
LONG TickOffset
Definition: ketypes.h:697
GENERAL_LOOKASIDE_POOL PPPagedLookasideList[NUMBER_POOL_LOOKASIDE_LISTS]
Definition: ketypes.h:631
ULONG CachedResidentAvailable
Definition: ketypes.h:811
USHORT MajorVersion
Definition: ketypes.h:603
ULONG PageColor
Definition: ketypes.h:762
ULONG CcPinReadNoWait
Definition: ketypes.h:776
KDPC DpcWatchdogDpc
Definition: ketypes.h:806
UCHAR ClockPollCycle
Definition: ketypes.h:719
USHORT CpuStep
Definition: ketypes.h:590
ULONG PrcbPad91[3]
Definition: ketypes.h:799
LONG MmTransitionCount
Definition: ketypes.h:636
ULONG CcCopyReadWait
Definition: ketypes.h:658
UINT64 TargetSet
Definition: ketypes.h:675
ULONG CcPinMappedDataCount
Definition: ketypes.h:775
ULONG CcMdlReadNoWaitMiss
Definition: ketypes.h:793
UINT64 * StatisticsPage
Definition: ketypes.h:819
PVOID VirtualApicAssist
Definition: ketypes.h:818
UCHAR CpuVendor
Definition: ketypes.h:605
LONG MmCopyOnWriteCount
Definition: ketypes.h:635
UINT64 PacketBarrier
Definition: ketypes.h:632
UCHAR Group
Definition: ketypes.h:576
UINT64 CycleTime
Definition: ketypes.h:769
ULONG DpcTime
Definition: ketypes.h:740
LONG MaximumDpcQueueDepth
Definition: ketypes.h:688
PVOID PrcbPad51
Definition: ketypes.h:713
LONG MmCacheReadCount
Definition: ketypes.h:797
UCHAR LogicalProcessorsPerPhysicalProcessor
Definition: ketypes.h:706
UCHAR ClockCheckSlot
Definition: ketypes.h:718
ULONG CcFastMdlReadWait
Definition: ketypes.h:771
ULONG PeriodicBias
Definition: ketypes.h:751
UCHAR PrcbPad00[6]
Definition: ketypes.h:577
ULONG MinimumDpcRate
Definition: ketypes.h:690
PP_LOOKASIDE_LIST PPLookasideList[16]
Definition: ketypes.h:629
ULONG CcMapDataNoWaitMiss
Definition: ketypes.h:789
ULONG CcFastReadWait
Definition: ketypes.h:655
LONG LookasideIrpFloat
Definition: ketypes.h:660
ULONG CcMapDataWait
Definition: ketypes.h:774
ULONG NodeColor
Definition: ketypes.h:763
ULONG CcPinReadWaitMiss
Definition: ketypes.h:792
ULONG KeExceptionDispatchCount
Definition: ketypes.h:706
ULONG DpcTimeCount
Definition: ketypes.h:748
LONG DpcWatchdogCount
Definition: ketypes.h:722
ULONG AdjustDpcThreshold
Definition: ketypes.h:742
UCHAR PrcbPad9[3]
Definition: ketypes.h:700
ULONG CcFastMdlReadNoWait
Definition: ketypes.h:770
UCHAR ThreadDpcEnable
Definition: ketypes.h:700
LONG MmDirtyPagesWriteCount
Definition: ketypes.h:647
struct _KTHREAD * CurrentThread
Definition: ketypes.h:571
LARGE_INTEGER IoReadTransferCount
Definition: ketypes.h:668
ULONG FeatureBits
Definition: ketypes.h:804
struct _KTHREAD * NextThread
Definition: ketypes.h:572
UCHAR DpcThreadRequested
Definition: ketypes.h:692
REQUEST_MAILBOX RequestMailbox[64]
Definition: ketypes.h:678
ULONG CcDataPages
Definition: ketypes.h:784
LONG DpcSetEventRequest
Definition: ketypes.h:704
UCHAR PrcbPad80[5]
Definition: ketypes.h:747
ULONG CcFastReadNoWait
Definition: ketypes.h:654
LONG MmSpinLockOrdering
Definition: ketypes.h:761
ULONG CcFastReadResourceMiss
Definition: ketypes.h:786
LARGE_INTEGER IoOtherTransferCount
Definition: ketypes.h:670
ULONG KeSystemCalls
Definition: ketypes.h:652
USHORT Number
Definition: ketypes.h:564
UCHAR PollSlot
Definition: ketypes.h:745
UINT64 CoreProcessorSet
Definition: ketypes.h:823
LONG MmMappedPagesWriteCount
Definition: ketypes.h:649
UINT64 MultiThreadProcessorSet
Definition: ketypes.h:757
LONG MmPageFaultCount
Definition: ketypes.h:634
SLIST_HEADER HypercallPageList
Definition: ketypes.h:816
LONG MmDirtyWriteIoCount
Definition: ketypes.h:648
ULONG SecondaryColorMask
Definition: ketypes.h:765
UINT64 CacheProcessorMask[5]
Definition: ketypes.h:821
UCHAR PrcbPad6[2]
Definition: ketypes.h:720
PVOID HypercallPageVirtual
Definition: ketypes.h:817
UCHAR PrcbPad2[52]
Definition: ketypes.h:614
KEVENT DpcEvent
Definition: ketypes.h:711
ULONG InitialApicId
Definition: ketypes.h:622
struct _KNODE * ParentNode
Definition: ketypes.h:756
ULONG CFlushSize
Definition: ketypes.h:615
LONG MmPageReadCount
Definition: ketypes.h:641
ULONG KernelTime
Definition: ketypes.h:738
LONG MasterOffset
Definition: ketypes.h:698
ULONG CcCopyReadWaitMiss
Definition: ketypes.h:787
UCHAR PrcbPad4[120]
Definition: ketypes.h:680
PVOID DpcThread
Definition: ketypes.h:636
UINT64 TimerRequest
Definition: ketypes.h:696
ULONG CcLazyWritePages
Definition: ketypes.h:782
CHAR CpuID
Definition: ketypes.h:586
ULONG ReadySummary
Definition: ketypes.h:731
ULONG IpiFrozen
Definition: ketypes.h:676
ULONG DpcRequestRate
Definition: ketypes.h:689
UCHAR LogicalProcessorsPerCore
Definition: ketypes.h:608
UINT64 SenderSummary
Definition: ketypes.h:679
ULONG CcLazyWriteIos
Definition: ketypes.h:781
KDPC CallDpc
Definition: ketypes.h:715
ULONG NodeShiftedColor
Definition: ketypes.h:764
LARGE_INTEGER UpdateSignature
Definition: ketypes.h:805
KPROCESSOR_STATE ProcessorState
Definition: ketypes.h:584
LONG MmCacheTransitionCount
Definition: ketypes.h:796
LIST_ENTRY DispatcherReadyListHead[32]
Definition: ketypes.h:736
UCHAR CpuStepping
Definition: ketypes.h:593
ULONG CcFastMdlReadNotPossible
Definition: ketypes.h:772
UINT64 PrcbPad01[3]
Definition: ketypes.h:624
ULONG CcDataFlushes
Definition: ketypes.h:783
UCHAR PrcbPad50
Definition: ketypes.h:702
KTIMER DpcWatchdogTimer
Definition: ketypes.h:807
LARGE_INTEGER IoWriteTransferCount
Definition: ketypes.h:669
ULONG CcLazyWriteHotSpots
Definition: ketypes.h:780
ULONG CcCopyReadNoWait
Definition: ketypes.h:657
ULONG KeAlignmentFixupCount
Definition: ketypes.h:801
ULONG CcFastReadNotPossible
Definition: ketypes.h:656
UCHAR DebuggerSavedIRQL
Definition: ketypes.h:744
SINGLE_LIST_ENTRY DeferredReadyListHead
Definition: ketypes.h:633
PVOID DpcStack
Definition: ketypes.h:682
ULONG CcFastMdlReadResourceMiss
Definition: ketypes.h:788
UINT64 PackageProcessorSet
Definition: ketypes.h:822
ULONG MHz
Definition: ketypes.h:600
SLIST_HEADER InterruptObjectPool
Definition: ketypes.h:815
UINT64 TimerHand
Definition: ketypes.h:695
UINT64 PrcbPad70[2]
Definition: ketypes.h:723
KPROCESSOR_STATE ProcessorState
Definition: ketypes.h:1072
UCHAR LmIdentityTarget[6]
Definition: ketypes.h:1067
struct _KPROCESSOR_START_BLOCK * SelfMap
Definition: ketypes.h:1069
KSPECIAL_REGISTERS SpecialRegisters
Definition: ketypes.h:535
CONTEXT ContextFrame
Definition: ketypes.h:536
PVOID WorkerRoutine
Definition: ketypes.h:546
PVOID CurrentPacket[3]
Definition: ketypes.h:545
ULONG64 LastExceptionToRip
Definition: ketypes.h:519
ULONG64 KernelDr0
Definition: ketypes.h:505
ULONG64 KernelDr7
Definition: ketypes.h:510
ULONG64 MsrLStar
Definition: ketypes.h:525
ULONG64 LastBranchFromRip
Definition: ketypes.h:518
KDESCRIPTOR Gdtr
Definition: ketypes.h:511
ULONG64 KernelDr2
Definition: ketypes.h:507
ULONG64 MsrGsBase
Definition: ketypes.h:522
KDESCRIPTOR Idtr
Definition: ketypes.h:512
ULONG64 KernelDr1
Definition: ketypes.h:506
ULONG64 LastBranchToRip
Definition: ketypes.h:517
ULONG64 MsrCStar
Definition: ketypes.h:526
ULONG64 LastExceptionFromRip
Definition: ketypes.h:520
ULONG64 MsrSyscallMask
Definition: ketypes.h:527
ULONG64 MsrGsSwap
Definition: ketypes.h:523
ULONG64 KernelDr3
Definition: ketypes.h:508
ULONG64 KernelDr6
Definition: ketypes.h:509
ULONG64 DebugControl
Definition: ketypes.h:516
ULONG64 P2Home
Definition: ketypes.h:1036
ULONG64 Reserved
Definition: ketypes.h:1039
ULONG64 P1Home
Definition: ketypes.h:1035
ULONG64 Return
Definition: ketypes.h:1040
ULONG64 P4Home
Definition: ketypes.h:1038
ULONG64 P3Home
Definition: ketypes.h:1037
ULONG64 Return
Definition: ketypes.h:1053
ULONG64 P2Home
Definition: ketypes.h:1046
ULONG64 Rbp
Definition: ketypes.h:1052
UCHAR Fill1[7]
Definition: ketypes.h:1051
ULONG64 P3Home
Definition: ketypes.h:1047
ULONG64 P5Home
Definition: ketypes.h:1049
ULONG64 P4Home
Definition: ketypes.h:1048
ULONG64 P1Home
Definition: ketypes.h:1045
KIRQL ApcBypass
Definition: ketypes.h:1050
M128A Xmm1
Definition: ketypes.h:336
UINT64 Rsp
Definition: ketypes.h:391
UCHAR Logging
Definition: ketypes.h:387
ULONG LastBranchMSR
Definition: ketypes.h:366
USHORT Fill1[2]
Definition: ketypes.h:388
UINT64 Dr6
Definition: ketypes.h:351
UCHAR FaultIndicator
Definition: ketypes.h:320
UINT64 Rdi
Definition: ketypes.h:375
M128A Xmm5
Definition: ketypes.h:340
CHAR PreviousMode
Definition: ketypes.h:318
UCHAR Fill0
Definition: ketypes.h:386
UINT64 GsBase
Definition: ketypes.h:332
UINT64 P5
Definition: ketypes.h:317
LONG CodePatchCycle
Definition: ketypes.h:394
UINT64 Rbp
Definition: ketypes.h:377
UINT64 LastBranchFromRip
Definition: ketypes.h:359
UINT64 Rsi
Definition: ketypes.h:376
UINT64 P2Home
Definition: ketypes.h:314
UINT64 Rdx
Definition: ketypes.h:325
ULONG EFlags
Definition: ketypes.h:389
M128A Xmm3
Definition: ketypes.h:338
UINT64 P4Home
Definition: ketypes.h:316
UINT64 Dr0
Definition: ketypes.h:347
UINT64 LastBranchControl
Definition: ketypes.h:365
M128A Xmm4
Definition: ketypes.h:339
UINT64 Rbx
Definition: ketypes.h:374
M128A Xmm0
Definition: ketypes.h:335
UINT64 Dr7
Definition: ketypes.h:352
UINT64 FaultAddress
Definition: ketypes.h:343
USHORT SegSs
Definition: ketypes.h:392
UINT64 LastExceptionFromRip
Definition: ketypes.h:361
UINT64 Dr1
Definition: ketypes.h:348
UINT64 ExceptionFrame
Definition: ketypes.h:381
USHORT Fill3
Definition: ketypes.h:393
USHORT SegCs
Definition: ketypes.h:385
UINT64 Rax
Definition: ketypes.h:323
UCHAR PreviousIrql
Definition: ketypes.h:319
UINT64 GsSwap
Definition: ketypes.h:333
UINT64 Dr3
Definition: ketypes.h:350
ULONG Fill2
Definition: ketypes.h:390
UINT64 LastBranchToRip
Definition: ketypes.h:358
UINT64 P3Home
Definition: ketypes.h:315
UINT64 R10
Definition: ketypes.h:328
UINT64 Rip
Definition: ketypes.h:384
UINT64 P1Home
Definition: ketypes.h:313
UINT64 TrapFrame
Definition: ketypes.h:373
USHORT SegEs
Definition: ketypes.h:370
UINT64 ContextRecord
Definition: ketypes.h:344
UCHAR ExceptionActive
Definition: ketypes.h:321
M128A Xmm2
Definition: ketypes.h:337
USHORT SegFs
Definition: ketypes.h:371
UINT64 TimeStampCKCL
Definition: ketypes.h:345
UINT64 ErrorCode
Definition: ketypes.h:380
USHORT SegGs
Definition: ketypes.h:372
UINT64 Dr2
Definition: ketypes.h:349
UINT64 R9
Definition: ketypes.h:327
USHORT SegDs
Definition: ketypes.h:369
UINT64 TimeStampKlog
Definition: ketypes.h:382
ULONG MxCsr
Definition: ketypes.h:322
UINT64 R8
Definition: ketypes.h:326
UINT64 Rcx
Definition: ketypes.h:324
UINT64 DebugControl
Definition: ketypes.h:357
UINT64 R11
Definition: ketypes.h:329
UINT64 LastExceptionToRip
Definition: ketypes.h:360
UINT64 Ist[8]
Definition: ketypes.h:919
USHORT IoMapBase
Definition: ketypes.h:922
USHORT Reserved2
Definition: ketypes.h:921
UINT64 Rsp1
Definition: ketypes.h:917
UINT64 Rsp2
Definition: ketypes.h:918
ULONG Reserved0
Definition: ketypes.h:915
UINT64 Reserved1
Definition: ketypes.h:920
UINT64 Rsp0
Definition: ketypes.h:916
MACHINE_FRAME MachineFrame
Definition: ketypes.h:1015
EXCEPTION_RECORD ExceptionRecord
Definition: ketypes.h:1013
UCHAR DirectionMap[32]
Definition: ketypes.h:907
UCHAR IoMap[8196]
Definition: ketypes.h:908
Definition: typedefs.h:120
USHORT SegSs
Definition: ketypes.h:982
ULONG Fill2
Definition: ketypes.h:980
USHORT Fill1[3]
Definition: ketypes.h:978
ULONG EFlags
Definition: ketypes.h:979
ULONG64 Rsp
Definition: ketypes.h:981
USHORT Fill3[3]
Definition: ketypes.h:983
ULONG64 Rip
Definition: ketypes.h:976
USHORT SegCs
Definition: ketypes.h:977
INT64 RequestSummary
Definition: ketypes.h:551
KREQUEST_PACKET RequestPacket
Definition: ketypes.h:552
PVOID Virtual[7]
Definition: ketypes.h:553
Definition: ntbasedef.h:628
MACHINE_FRAME MachineFrame
Definition: ketypes.h:1003
ULONG ApiNumber
Definition: ketypes.h:1002
ULONG64 P1Home
Definition: ketypes.h:996
ULONG64 P3Home
Definition: ketypes.h:998
ULONG64 P2Home
Definition: ketypes.h:997
ULONG64 P4Home
Definition: ketypes.h:999
#define FIELD_OFFSET(t, f)
Definition: typedefs.h:255
uint32_t ULONG
Definition: typedefs.h:59
ULONG Ebx
Definition: ketypes.h:302
ULONG Eax
Definition: ketypes.h:301
UINT32 AsUINT32[4]
Definition: ketypes.h:298
ULONG Ecx
Definition: ketypes.h:303
ULONG Edx
Definition: ketypes.h:304
ULONG MustBeZero
Definition: ketypes.h:438
ULONG BaseUpper
Definition: ketypes.h:437
ULONG Type
Definition: ketypes.h:426
USHORT LimitLow
Definition: ketypes.h:412
ULONG LongMode
Definition: ketypes.h:431
UCHAR Flags1
Definition: ketypes.h:419
ULONG BaseMiddle
Definition: ketypes.h:425
struct _KGDTENTRY64::@2287::@2289::@2291 Bytes
UCHAR BaseMiddle
Definition: ketypes.h:418
ULONG System
Definition: ketypes.h:430
ULONG BaseHigh
Definition: ketypes.h:434
UCHAR Flags2
Definition: ketypes.h:420
ULONG LimitHigh
Definition: ketypes.h:429
USHORT BaseLow
Definition: ketypes.h:413
UCHAR BaseHigh
Definition: ketypes.h:421
ULONG Dpl
Definition: ketypes.h:427
struct _KGDTENTRY64::@2287::@2289::@2292 Bits
ULONG Granularity
Definition: ketypes.h:433
ULONG Present
Definition: ketypes.h:428
UINT64 Alignment
Definition: ketypes.h:440
ULONG DefaultBig
Definition: ketypes.h:432
ULONG OffsetHigh
Definition: ketypes.h:479
USHORT Reserved0
Definition: ketypes.h:474
USHORT IstIndex
Definition: ketypes.h:473
USHORT OffsetMiddle
Definition: ketypes.h:478
USHORT OffsetLow
Definition: ketypes.h:471
UINT64 Alignment
Definition: ketypes.h:482
ULONG Reserved1
Definition: ketypes.h:480
USHORT Dpl
Definition: ketypes.h:476
USHORT Present
Definition: ketypes.h:477
USHORT Selector
Definition: ketypes.h:472
USHORT Type
Definition: ketypes.h:475
#define FORCEINLINE
Definition: wdftypes.h:67
M128A
Definition: ketypes.h:925
@ LockQueueMaximumLock
Definition: ketypes.h:664
unsigned char UCHAR
Definition: xmlstorage.h:181
char CHAR
Definition: xmlstorage.h:175