ReactOS  r75400
ketypes.h
Go to the documentation of this file.
1 /*++ NDK Version: 0098
2 
3 Copyright (c) Alex Ionescu. All rights reserved.
4 
5 Header Name:
6 
7  ketypes.h (AMD64)
8 
9 Abstract:
10 
11  amd64 Type definitions for the Kernel services.
12 
13 Author:
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 //
41 typedef enum
42 {
47 } CPU_VENDORS;
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_NESTED_TASK 0x4000L
129 #define EFLAGS_V86_MASK 0x20000
130 #define EFLAGS_ALIGN_CHECK 0x40000
131 #define EFLAGS_VIF 0x80000
132 #define EFLAGS_VIP 0x100000
133 #define EFLAGS_USER_SANITIZE 0x3F4DD7
134 #define EFLAG_SIGN 0x8000
135 #define EFLAG_ZERO 0x4000
136 #define EFLAGS_TF_MASK 0x0100
137 #define EFLAGS_TF_SHIFT 0x0008
138 #define EFLAGS_ID_MASK 0x200000
139 #define EFLAGS_IF_MASK 0x0200
140 #define EFLAGS_IF_SHIFT 0x0009
141 
142 //
143 // MXCSR Floating Control/Status Bit Masks
144 //
145 #define XSW_INVALID_OPERATION 0x0001
146 #define XSW_DENORMAL 0x0002
147 #define XSW_ZERO_DIVIDE 0x0004
148 #define XSW_OVERFLOW 0x0008
149 #define XSW_UNDERFLOW 0x0010
150 #define XSW_PRECISION 0x0020
151 #define XCW_INVALID_OPERATION 0x0080
152 #define XCW_DENORMAL 0x0100
153 #define XCW_ZERO_DIVIDE 0x0200
154 #define XCW_OVERFLOW 0x0400
155 #define XCW_UNDERFLOW 0x0800
156 #define XCW_PRECISION 0x1000
157 #define XCW_ROUND_CONTROL 0x6000
158 #define XCW_FLUSH_ZERO 0x8000
159 #define XSW_ERROR_MASK 0x003F
160 #define XSW_ERROR_SHIFT 7
161 
162 //
163 // Legacy floating status word bit masks.
164 //
165 #define FSW_INVALID_OPERATION 0x0001
166 #define FSW_DENORMAL 0x0002
167 #define FSW_ZERO_DIVIDE 0x0004
168 #define FSW_OVERFLOW 0x0008
169 #define FSW_UNDERFLOW 0x0010
170 #define FSW_PRECISION 0x0020
171 #define FSW_STACK_FAULT 0x0040
172 #define FSW_ERROR_SUMMARY 0x0080
173 #define FSW_CONDITION_CODE_0 0x0100
174 #define FSW_CONDITION_CODE_1 0x0200
175 #define FSW_CONDITION_CODE_2 0x0400
176 #define FSW_CONDITION_CODE_3 0x4000
177 #define FSW_ERROR_MASK 0x003F
178 
179 //
180 // Machine Specific Registers
181 //
182 #define MSR_EFER 0xC0000080
183 #define MSR_STAR 0xC0000081
184 #define MSR_LSTAR 0xC0000082
185 #define MSR_CSTAR 0xC0000083
186 #define MSR_SYSCALL_MASK 0xC0000084
187 #define MSR_FS_BASE 0xC0000100
188 #define MSR_GS_BASE 0xC0000101
189 #define MSR_GS_SWAP 0xC0000102
190 #define MSR_MCG_STATUS 0x017A
191 #define MSR_AMD_ACCESS 0x9C5A203A
192 #define MSR_IA32_MISC_ENABLE 0x01A0
193 #define MSR_LAST_BRANCH_FROM 0x01DB
194 #define MSR_LAST_BRANCH_TO 0x01DC
195 #define MSR_LAST_EXCEPTION_FROM 0x01DD
196 #define MSR_LAST_EXCEPTION_TO 0x01DE
197 
198 //
199 // Caching values for the PAT MSR
200 //
201 #define PAT_UC 0ULL
202 #define PAT_WC 1ULL
203 #define PAT_WT 4ULL
204 #define PAT_WP 5ULL
205 #define PAT_WB 6ULL
206 #define PAT_UCM 7ULL
207 
208 //
209 // Flags in MSR_EFER
210 //
211 #define MSR_SCE 0x0001
212 #define MSR_LME 0x0100
213 #define MSR_LMA 0x0400
214 #define MSR_NXE 0x0800
215 #define MSR_PAT 0x0277
216 #define MSR_DEBUG_CTL 0x01D9
217 
218 //
219 // Flags in MSR_IA32_MISC_ENABLE
220 //
221 #define MSR_XD_ENABLE_MASK 0xFFFFFFFB
222 
223 //
224 // Flags in MSR_DEBUG_CTL
225 //
226 #define MSR_DEBUG_CTL_LBR equ 0x0001
227 #define MSR_DEBUG_CTL_BTF equ 0x0002
228 
229 //
230 // IPI Types
231 //
232 #define IPI_APC 1
233 #define IPI_DPC 2
234 #define IPI_FREEZE 4
235 #define IPI_PACKET_READY 8
236 #define IPI_SYNCH_REQUEST 16
237 
238 //
239 // PRCB Flags
240 //
241 #define PRCB_MAJOR_VERSION 1
242 #define PRCB_BUILD_DEBUG 1
243 #define PRCB_BUILD_UNIPROCESSOR 2
244 
245 //
246 // Exception active flags
247 //
248 #define KEXCEPTION_ACTIVE_INTERRUPT_FRAME 0x0000
249 #define KEXCEPTION_ACTIVE_EXCEPTION_FRAME 0x0001
250 #define KEXCEPTION_ACTIVE_SERVICE_FRAME 0x0002
251 
252 //
253 // HAL Variables
254 //
255 #define INITIAL_STALL_COUNT 100
256 #define MM_HAL_VA_START 0xFFFFFFFFFFC00000ULL /* This is Vista+ */
257 #define MM_HAL_VA_END 0xFFFFFFFFFFFFFFFFULL
258 #define APIC_BASE 0xFFFFFFFFFFFE0000ULL
259 
260 //
261 // IOPM Definitions
262 //
263 #define IO_ACCESS_MAP_NONE 0
264 #define IOPM_OFFSET FIELD_OFFSET(KTSS, IoMaps[0].IoMap)
265 #define KiComputeIopmOffset(MapNumber) \
266  (MapNumber == IO_ACCESS_MAP_NONE) ? \
267  (USHORT)(sizeof(KTSS)) : \
268  (USHORT)(FIELD_OFFSET(KTSS, IoMaps[MapNumber-1].IoMap))
269 
270 //
271 // Static Kernel-Mode Address start (use MM_KSEG0_BASE for actual)
272 //
273 #define KSEG0_BASE 0xfffff80000000000ULL
274 
275 //
276 // Synchronization-level IRQL
277 //
278 #define SYNCH_LEVEL 12
279 
280 #define NMI_STACK_SIZE 0x2000
281 #define ISR_STACK_SIZE 0x6000
282 
283 //
284 // Number of pool lookaside lists per pool in the PRCB
285 //
286 #define NUMBER_POOL_LOOKASIDE_LISTS 32
287 
288 //
289 // Structure for CPUID
290 //
291 typedef union _CPU_INFO
292 {
294  struct
295  {
300  };
301 } CPU_INFO, *PCPU_INFO;
302 
303 //
304 // Trap Frame Definition
305 //
306 typedef struct _KTRAP_FRAME
307 {
325  union
326  {
329  };
336  union
337  {
341  };
348  union
349  {
350  struct
351  {
357  };
358  struct
359  {
362  };
363  };
373  union
374  {
378  };
391 
392 //
393 // Dummy LDT_ENTRY
394 //
395 #ifndef _LDT_ENTRY_DEFINED
396 #define _LDT_ENTRY_DEFINED
397 typedef ULONG LDT_ENTRY;
398 #endif
399 
400 //
401 // GDT Entry Definition
402 //
403 typedef union _KGDTENTRY64
404 {
405  struct
406  {
409  union
410  {
411  struct
412  {
417  } Bytes;
418  struct
419  {
430  } Bits;
431  };
434  };
437 #define KGDTENTRY KGDTENTRY64
438 #define PKGDTENTRY PKGDTENTRY64
439 
440 //
441 // IDT Entry Access Definition
442 //
443 typedef struct _KIDT_ACCESS
444 {
445  union
446  {
447  struct
448  {
454  };
456  };
458 
459 //
460 // IDT Entry Definition
461 //
462 typedef union _KIDTENTRY64
463 {
464  struct
465  {
476  };
479 #define KIDTENTRY KIDTENTRY64
480 #define PKIDTENTRY PKIDTENTRY64
481 
482 typedef struct _KDESCRIPTOR
483 {
488 
489 #ifndef NTOS_MODE_USER
490 
491 //
492 // Special Registers Structure (outside of CONTEXT)
493 //
494 typedef struct _KSPECIAL_REGISTERS
495 {
524 
525 //
526 // Processor State Data
527 //
528 typedef struct _KPROCESSOR_STATE
529 {
533 
534 #if (NTDDI_VERSION < NTDDI_LONGHORN)
535 #define GENERAL_LOOKASIDE_POOL PP_LOOKASIDE_LIST
536 #endif
537 
538 typedef struct _KREQUEST_PACKET
539 {
543 
544 typedef struct _REQUEST_MAILBOX
545 {
550 
551 //
552 // Processor Region Control Block
553 //
554 #pragma pack(push,4)
555 typedef struct _KPRCB
556 {
558 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
560 #else
561  UCHAR Number;
563 #endif
569 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
573 #else
574  UINT64 UserRsp;
575 #endif
582 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
583  union
584  {
586  struct
587  {
590  };
591  };
592 #else
593  USHORT CpuStep;
594 #endif
601 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
604 #else
607 #endif
609 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
611 #else
613  UCHAR PrcbPad0x[3];
614 #endif
616 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
620 #else
621  UINT64 PrcbPad00[4];
622 #endif
632 #if (NTDDI_VERSION < NTDDI_LONGHORN)
634 #endif
638 #if (NTDDI_VERSION < NTDDI_LONGHORN)
641 #endif
646 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
656 #else
659 #endif
666 #if (NTDDI_VERSION < NTDDI_LONGHORN)
668  UCHAR PrcbPad2[12];
669 #endif
678 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
680 #else
681  PVOID SavedRsp;
682 #endif
700 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
702 #else
703  LONG PrcbPad40;
705 #endif
707 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
709 #endif
711 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
719 #else
720  UINT64 PrcbPad7[4];
721 #endif
723 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
725 #endif
728 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
730 #endif
741 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
748 #else
749  UCHAR PrcbPad8[13];
750 #endif
754 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
761 #endif
763 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
819 #else
820  ULONG PrcbPad90[1];
826  UCHAR PrcbPad9[12];
836  ULONG KeFirstLevelTbFills;
837  ULONG KeFloatingEmulationCount;
839  ULONG KeSecondLevelTbFills;
840  UCHAR VendorString[13];
841  UCHAR PrcbPad10[2];
847 #endif
848 } KPRCB, *PKPRCB;
849 
850 //
851 // Processor Control Region
852 //
853 typedef struct _KIPCR
854 {
855  union
856  {
858  struct
859  {
861  struct _KTSS64 *TssBase;
863  struct _KPCR *Self;
867  };
868  };
888  ULONG Fill2[2]; // 0x178
889  KPRCB Prcb; // 0x180
890 
891  // hack:
893 
894 } KIPCR, *PKIPCR;
895 #pragma pack(pop)
896 
897 //
898 // TSS Definition
899 //
900 typedef struct _KiIoAccessMap
901 {
903  UCHAR IoMap[8196];
905 
906 
907 #pragma pack(push,4)
908 typedef struct _KTSS64
909 {
910  /* 000 */ ULONG Reserved0;
911  /* 004 */ UINT64 Rsp0;
912  /* 00c */ UINT64 Rsp1;
913  /* 014 */ UINT64 Rsp2;
914  /* 01c */ UINT64 Ist[8];
915  /* 05c */ UINT64 Reserved1;
916  /* 064 */ USHORT Reserved2;
917  /* 066 */ USHORT IoMapBase;
918 } KTSS64, *PKTSS64;
919 #pragma pack(pop)
920 #define KTSS KTSS64
921 #define PKTSS PKTSS64
922 
923 //
924 // KEXCEPTION_FRAME
925 //
926 typedef struct _KEXCEPTION_FRAME
927 {
945  //ULONG64 CallbackStack;
960 
961 typedef struct _MACHINE_FRAME
962 {
972 
973 //
974 // Defines the Callback Stack Layout for User Mode Callbacks
975 //
977 
978 //
979 // User side callout frame
980 //
981 typedef struct _UCALLOUT_FRAME
982 {
991 } UCALLOUT_FRAME, *PUCALLOUT_FRAME; // size = 0x0058
992 
993 typedef struct _DISPATCHER_CONTEXT
994 {
1006 
1007 typedef struct _KSTART_FRAME
1008 {
1016 
1017 typedef struct _KSWITCH_FRAME
1018 {
1029 
1030 #define PROCESSOR_START_FLAG_FORCE_ENABLE_NX 0x0001
1032 {
1034  ULONG Flags; // 0x0008
1035  ULONG Gdt32; // 0x000C
1036  ULONG Idt32; // 0x0012
1037  PVOID Gdt; // 0x0018
1038  // ???
1040  UCHAR PmTarget[6]; // 0x0060
1041  UCHAR LmIdentityTarget[6]; // 0x0066
1042  ULONG64 LmTarget; // 0x0070
1044  ULONG64 MsrPat; // 0x0080
1045  ULONG64 MsrEFER; // 0x0088
1048 
1049 //
1050 // Inline function to get current KPRCB
1051 //
1053 struct _KPRCB *
1055 {
1056  return (struct _KPRCB *)__readgsqword(FIELD_OFFSET(KIPCR, CurrentPrcb));
1057 }
1058 
1059 #endif
1060 #endif
DWORD *typedef PVOID
Definition: winlogon.h:52
UINT64 R8
Definition: ketypes.h:321
UINT64 TimeStampKlog
Definition: ketypes.h:377
ULONG64 P4Home
Definition: ketypes.h:931
ULONG CcCopyReadWait
Definition: ketypes.h:653
UINT64 Rbp
Definition: ketypes.h:372
UINT64 PrcbPad71[12]
Definition: ketypes.h:729
UINT64 R10
Definition: ketypes.h:323
UCHAR LmIdentityTarget[6]
Definition: ketypes.h:1041
UINT64 LastBranchFromRip
Definition: ketypes.h:354
struct _REQUEST_MAILBOX * PREQUEST_MAILBOX
UCHAR DebuggerSavedIRQL
Definition: ketypes.h:739
GENERAL_LOOKASIDE_POOL PPNPagedLookasideList[NUMBER_POOL_LOOKASIDE_LISTS]
Definition: ketypes.h:625
UINT64 P3Home
Definition: ketypes.h:310
ULONG64 P4Home
Definition: ketypes.h:986
UCHAR ClockCheckSlot
Definition: ketypes.h:713
ULONG CcFastReadResourceMiss
Definition: ketypes.h:781
ULONG ApiNumber
Definition: ketypes.h:989
ULONG MinimumDpcRate
Definition: ketypes.h:685
ULONG DpcTimeLimit
Definition: ketypes.h:744
USHORT Fill3
Definition: ketypes.h:388
UINT64 Rbx
Definition: ketypes.h:369
ULONG CcMdlReadWait
Definition: ketypes.h:774
ULONG CcMapDataNoWait
Definition: ketypes.h:768
UINT64 P4Home
Definition: ketypes.h:311
ULONG64 P4Home
Definition: ketypes.h:1012
union _KIDTENTRY64 KIDTENTRY64
UCHAR PrcbPad4[120]
Definition: ketypes.h:675
ULONG InterruptTime
Definition: ketypes.h:736
UINT64 R9
Definition: ketypes.h:322
LONG IoWriteOperationCount
Definition: ketypes.h:661
Type
Definition: Type.h:6
UINT64 Rsp0
Definition: ketypes.h:911
UCHAR LogicalProcessorsPerPhysicalProcessor
Definition: ketypes.h:703
ULONG LimitHigh
Definition: ketypes.h:424
ULONG MxCsr
Definition: ketypes.h:317
struct _KSWITCH_FRAME * PKSWITCH_FRAME
LONG TickOffset
Definition: ketypes.h:692
KIRQL ApcBypass
Definition: ketypes.h:1024
ULONG Granularity
Definition: ketypes.h:428
Definition: ntbasedef.h:627
ULONG SecondaryColorMask
Definition: ketypes.h:760
ULONG64 P3Home
Definition: ketypes.h:930
KDPC CallDpc
Definition: ketypes.h:710
union _KGDTENTRY64 * GdtBase
Definition: ketypes.h:860
Definition: fatfs.h:173
UINT64 TargetSet
Definition: ketypes.h:670
UCHAR DpcThreadRequested
Definition: ketypes.h:687
struct _KIPCR KIPCR
USHORT Fill1[3]
Definition: ketypes.h:965
KDPC_DATA DpcData[2]
Definition: ketypes.h:676
ULONG64 KernelDr7
Definition: ketypes.h:505
UCHAR PreviousIrql
Definition: ketypes.h:314
LONG MmMappedPagesWriteCount
Definition: ketypes.h:644
ULONG CcMapDataWaitMiss
Definition: ketypes.h:785
M128A
Definition: ketypes.h:903
ULONG FeatureBits
Definition: ketypes.h:799
UINT64 P2Home
Definition: ketypes.h:309
LONG MmTransitionCount
Definition: ketypes.h:631
UCHAR ObsoleteNumber
Definition: ketypes.h:873
UCHAR Logging
Definition: ketypes.h:382
ULONG CcPinReadNoWaitMiss
Definition: ketypes.h:786
PVOID Virtual[7]
Definition: ketypes.h:548
UCHAR SecondLevelCacheAssociativity
Definition: ketypes.h:872
UINT64 FaultAddress
Definition: ketypes.h:338
ULONG64 Unused[2]
Definition: ketypes.h:870
LONG MmPageFaultCount
Definition: ketypes.h:629
UCHAR InterruptRequest
Definition: ketypes.h:564
char CHAR
Definition: xmlstorage.h:175
UINT64 LastBranchControl
Definition: ketypes.h:360
ULONG MHz
Definition: ketypes.h:595
UINT64 CycleTime
Definition: ketypes.h:764
USHORT MinorVersion
Definition: ketypes.h:877
USHORT Value
Definition: ketypes.h:455
struct _UCALLOUT_FRAME * PUCALLOUT_FRAME
USHORT Fill1[2]
Definition: ketypes.h:383
ULONG PeriodicCount
Definition: ketypes.h:745
union _CPU_INFO * PCPU_INFO
UCHAR PrcbPad00[6]
Definition: ketypes.h:572
LONG MmDemandZeroCount
Definition: ketypes.h:635
FORCEINLINE struct _KPRCB * KeGetCurrentPrcb(VOID)
Definition: ketypes.h:1054
ULONG IpiFrozen
Definition: ketypes.h:671
USHORT SegFs
Definition: ketypes.h:366
struct _KIPCR * PKIPCR
ULONG CFlushSize
Definition: ketypes.h:610
LARGE_INTEGER IoWriteTransferCount
Definition: ketypes.h:664
ULONG DpcTimeCount
Definition: ketypes.h:743
UCHAR VendorString[13]
Definition: ketypes.h:797
ULONG64 KernelDr2
Definition: ketypes.h:502
ULONG QueueIndex
Definition: ketypes.h:727
ULONG Fill2[2]
Definition: ketypes.h:888
ULONG64 TrapFrame
Definition: ketypes.h:944
UINT64 * StatisticsPage
Definition: ketypes.h:814
UINT64 Reserved1
Definition: ketypes.h:915
UCHAR BaseMiddle
Definition: ketypes.h:413
Definition: ke.h:280
PROCESSOR_POWER_STATE PowerState
Definition: ketypes.h:795
ULONG64 DebugControl
Definition: ketypes.h:511
ULONG64 OutputBuffer
Definition: ketypes.h:946
ULONG CcMdlReadWaitMiss
Definition: ketypes.h:789
SLIST_HEADER InterruptObjectPool
Definition: ketypes.h:810
UCHAR QuantumEnd
Definition: ketypes.h:696
ULONG64 MsrLStar
Definition: ketypes.h:520
struct _KREQUEST_PACKET * PKREQUEST_PACKET
KSPECIAL_REGISTERS SpecialRegisters
Definition: ketypes.h:530
UCHAR SystemSegmentFlag
Definition: ketypes.h:451
UINT64 P5
Definition: ketypes.h:312
ULONG CcFastMdlReadWait
Definition: ketypes.h:766
ULONG CcReadAheadIos
Definition: ketypes.h:790
UINT64 PrcbPad81[2]
Definition: ketypes.h:747
ULONG CcPinMappedDataCount
Definition: ketypes.h:770
KIRQL Irql
Definition: ketypes.h:871
ULONG CachedResidentAvailable
Definition: ketypes.h:806
UINT64 TimeStampCKCL
Definition: ketypes.h:340
PVOID DpcThread
Definition: ketypes.h:633
ULONG64 UserRsp
Definition: ketypes.h:862
ULONG64 LastExceptionFromRip
Definition: ketypes.h:515
ULONG64 Spare2
Definition: ketypes.h:948
ULONG NTSYSAPI KeIcacheFlushCount
Definition: cpu.c:19
M128A Xmm0
Definition: ketypes.h:330
ULONG64 KernelDr1
Definition: ketypes.h:501
ULONG DpcTime
Definition: ketypes.h:735
struct _KTHREAD * NextThread
Definition: ketypes.h:567
USHORT SegSs
Definition: ketypes.h:969
PVOID Base
Definition: ketypes.h:486
KEXCEPTION_FRAME KCALLOUT_FRAME
Definition: ketypes.h:976
SLIST_HEADER HypercallPageList
Definition: ketypes.h:811
UINT64 LastBranchToRip
Definition: ketypes.h:353
UINT64 P1Home
Definition: ketypes.h:308
LONG LookasideIrpFloat
Definition: ketypes.h:655
struct _MACHINE_FRAME * PMACHINE_FRAME
ULONG CcFastMdlReadResourceMiss
Definition: ketypes.h:783
ULONG DebugDpcTime
Definition: ketypes.h:516
PVOID Unused1[3]
Definition: ketypes.h:879
UINT64 ContextRecord
Definition: ketypes.h:339
PVOID Used_Self
Definition: ketypes.h:866
struct _KEXCEPTION_FRAME KEXCEPTION_FRAME
USHORT Selector
Definition: ketypes.h:467
USHORT Limit
Definition: ketypes.h:485
LONG MmCacheReadCount
Definition: ketypes.h:792
ULONG64 P2Home
Definition: ketypes.h:929
struct _KTSS64 * TssBase
Definition: ketypes.h:861
ULONG DpcLastCount
Definition: ketypes.h:694
UINT64 HalReserved[8]
Definition: ketypes.h:596
UCHAR FaultIndicator
Definition: ketypes.h:315
UINT64 SenderSummary
Definition: ketypes.h:674
KDPC DpcWatchdogDpc
Definition: ketypes.h:801
ULONG64 MxCsr
Definition: ketypes.h:949
UCHAR Present
Definition: ketypes.h:453
UCHAR PrcbPad6[2]
Definition: ketypes.h:715
UCHAR KIRQL
Definition: env_spec_w32.h:591
UCHAR IdleHalt
Definition: ketypes.h:565
LONG ClockKeepAlive
Definition: ketypes.h:712
LARGE_INTEGER UpdateSignature
Definition: ketypes.h:800
ULONG CcCopyReadWaitMiss
Definition: ketypes.h:782
struct _KPRCB * PKPRCB
PP_LOOKASIDE_LIST PPLookasideList[16]
Definition: ketypes.h:624
ULONG64 TargetIp
Definition: ketypes.h:999
struct _KTRAP_FRAME KTRAP_FRAME
ULONG64 MsrGsSwap
Definition: ketypes.h:518
ULONG64 P3Home
Definition: ketypes.h:1021
signed long long INT64
UINT64 Dr2
Definition: ketypes.h:344
ULONG64 MsrCStar
Definition: ketypes.h:521
ULONG64 Return
Definition: ketypes.h:958
UINT64 Rsi
Definition: ketypes.h:371
USHORT SegGs
Definition: ketypes.h:367
struct _KDESCRIPTOR * PKDESCRIPTOR
struct _KPROCESSOR_STATE * PKPROCESSOR_STATE
unsigned int UINT32
ULONG64 Return
Definition: ketypes.h:1027
ULONG CcDataFlushes
Definition: ketypes.h:778
long LONG
Definition: pedump.c:60
UINT64 Rax
Definition: ketypes.h:318
struct _KPROCESSOR_START_BLOCK KPROCESSOR_START_BLOCK
CPU_VENDORS
Definition: ketypes.h:41
ULONG PcrAlign1[24]
Definition: ketypes.h:887
ULONG KeAlignmentFixupCount
Definition: ketypes.h:796
PVOID EtwSupport
Definition: ketypes.h:809
ULONG CcCopyReadNoWait
Definition: ketypes.h:652
struct _KPRCB KPRCB
struct _KEXCEPTION_FRAME * PKEXCEPTION_FRAME
uint64_t ULONG64
Definition: typedefs.h:66
PVOID AcpiReserved
Definition: ketypes.h:615
UCHAR CpuStepping
Definition: ketypes.h:588
USHORT SegEs
Definition: ketypes.h:365
CONTEXT ContextFrame
Definition: ketypes.h:531
struct _KSWITCH_FRAME KSWITCH_FRAME
UCHAR Reserved
Definition: ketypes.h:449
struct _KSPECIAL_REGISTERS * PKSPECIAL_REGISTERS
LONG MmMappedWriteIoCount
Definition: ketypes.h:645
ULONG64 P3Home
Definition: ketypes.h:1011
ULONG StallScaleFactor
Definition: ketypes.h:878
ULONG64 Rbp
Definition: ketypes.h:1026
struct _KTHREAD * CurrentThread
Definition: ketypes.h:566
UCHAR Fill1[7]
Definition: ketypes.h:1025
LONG IoReadOperationCount
Definition: ketypes.h:660
UCHAR Dpl
Definition: ketypes.h:452
struct _KPRCB * CurrentPrcb
Definition: ketypes.h:864
ULONG SecondLevelCacheSize
Definition: ketypes.h:881
ULONG64 LastBranchToRip
Definition: ketypes.h:512
USHORT CpuStep
Definition: ketypes.h:585
UCHAR SkipTick
Definition: ketypes.h:738
USHORT MinorVersion
Definition: ketypes.h:597
USHORT SegCs
Definition: ketypes.h:380
UINT64 GsBase
Definition: ketypes.h:327
#define FORCEINLINE
Definition: ntbasedef.h:213
struct _DISPATCHER_CONTEXT * PDISPATCHER_CONTEXT
USHORT OffsetLow
Definition: ketypes.h:466
UCHAR PrcbPad50
Definition: ketypes.h:697
LONG MmCacheTransitionCount
Definition: ketypes.h:791
USHORT Reserved0
Definition: ketypes.h:469
struct _KPRCB * MultiThreadSetMaster
Definition: ketypes.h:753
ULONG64 P1Home
Definition: ketypes.h:1019
ULONG KernelTime
Definition: ketypes.h:733
ULONG Unused0[3]
Definition: ketypes.h:875
ULONG Eax
Definition: ketypes.h:296
ULONG KeContextSwitches
Definition: ketypes.h:648
M128A Xmm5
Definition: ketypes.h:335
ULONG Length
Definition: ketypes.h:988
struct _KPROCESSOR_START_BLOCK * SelfMap
Definition: ketypes.h:1043
UCHAR CpuModel
Definition: ketypes.h:589
KPROCESSOR_STATE ProcessorState
Definition: ketypes.h:1046
ULONG64 LastExceptionToRip
Definition: ketypes.h:514
LONG MmDirtyWriteIoCount
Definition: ketypes.h:643
ULONG64 P4Home
Definition: ketypes.h:1022
UCHAR PrcbPad80[5]
Definition: ketypes.h:742
M128A Xmm2
Definition: ketypes.h:332
ULONG InterruptCount
Definition: ketypes.h:732
UINT64 LastExceptionFromRip
Definition: ketypes.h:356
M128A Xmm1
Definition: ketypes.h:331
KEVENT DpcEvent
Definition: ketypes.h:706
ULONG CcFastReadNotPossible
Definition: ketypes.h:651
UINT64 PackageProcessorSet
Definition: ketypes.h:817
UINT64 PrcbLock
Definition: ketypes.h:577
UCHAR CoresPerPhysicalProcessor
Definition: ketypes.h:602
struct _UCALLOUT_FRAME UCALLOUT_FRAME
PVOID WheaInfo
Definition: ketypes.h:808
ULONG CcLazyWriteIos
Definition: ketypes.h:776
UCHAR SegmentType
Definition: ketypes.h:450
ULONG DefaultBig
Definition: ketypes.h:427
ULONG KernelReserved[15]
Definition: ketypes.h:880
ULONG64 P1Home
Definition: ketypes.h:983
ULONG CcMapDataWait
Definition: ketypes.h:769
KDESCRIPTOR Gdtr
Definition: ketypes.h:506
USHORT Fill3[3]
Definition: ketypes.h:970
UCHAR DirectionMap[32]
Definition: ketypes.h:902
UINT64 TimerRequest
Definition: ketypes.h:691
struct _KNODE * ParentNode
Definition: ketypes.h:751
UINT64 Rsp2
Definition: ketypes.h:913
LIST_ENTRY WaitListHead
Definition: ketypes.h:722
ULONG CcFastMdlReadNotPossible
Definition: ketypes.h:767
ULONG CcMdlReadNoWaitMiss
Definition: ketypes.h:788
ULONG64 P3Home
Definition: ketypes.h:985
PVOID HyperPte
Definition: ketypes.h:807
ULONG Ebx
Definition: ketypes.h:297
PVOID EstablisherFrame
Definition: ketypes.h:998
struct _KIDT_ACCESS * PKIDT_ACCESS
UCHAR Flags2
Definition: ketypes.h:415
ULONG Ecx
Definition: ketypes.h:298
ULONG ApicMask
Definition: ketypes.h:608
PVOID Buffer
Definition: ketypes.h:987
UINT64 Dr6
Definition: ketypes.h:346
UINT64 PacketBarrier
Definition: ketypes.h:627
ULONG Present
Definition: ketypes.h:423
ULONG KeSystemCalls
Definition: ketypes.h:647
ULONG64 P2Home
Definition: ketypes.h:1010
UINT64 CacheProcessorMask[5]
Definition: ketypes.h:816
USHORT BaseLow
Definition: ketypes.h:408
ULONG BaseUpper
Definition: ketypes.h:432
USHORT Present
Definition: ketypes.h:472
M128A Xmm4
Definition: ketypes.h:334
LONG MmSpinLockOrdering
Definition: ketypes.h:756
UINT64 DebugControl
Definition: ketypes.h:352
union _KGDTENTRY64 * PKGDTENTRY64
UCHAR CpuVendor
Definition: ketypes.h:600
LARGE_INTEGER IoOtherTransferCount
Definition: ketypes.h:665
USHORT OffsetMiddle
Definition: ketypes.h:473
UINT64 Dr3
Definition: ketypes.h:345
UINT64 PrcbPad01[3]
Definition: ketypes.h:619
ULONG CcPinReadWaitMiss
Definition: ketypes.h:787
UINT64 WaitLock
Definition: ketypes.h:724
USHORT IstIndex
Definition: ketypes.h:468
ULONG CcDataPages
Definition: ketypes.h:779
KPROCESSOR_STATE ProcessorState
Definition: ketypes.h:579
LONG IoOtherOperationCount
Definition: ketypes.h:662
UCHAR ClockPollCycle
Definition: ketypes.h:714
LONG MmCacheIoCount
Definition: ketypes.h:793
unsigned char UCHAR
Definition: xmlstorage.h:181
UINT64 Rdx
Definition: ketypes.h:320
UINT64 Dr1
Definition: ketypes.h:343
ULONG CachedCommit
Definition: ketypes.h:805
ULONG64 P1Home
Definition: ketypes.h:928
ULONG Fill2
Definition: ketypes.h:385
UCHAR DpcRoutineActive
Definition: ketypes.h:688
PVOID VirtualApicAssist
Definition: ketypes.h:813
ULONG EFlags
Definition: ketypes.h:966
USHORT Dpl
Definition: ketypes.h:471
ULONG NodeColor
Definition: ketypes.h:758
KPRCB Prcb
Definition: ketypes.h:889
ULONG64 Rip
Definition: ketypes.h:963
Definition: ketypes.h:672
struct _KTSS64 * PKTSS64
UCHAR BuildType
Definition: ketypes.h:599
ULONG CcFastMdlReadNoWait
Definition: ketypes.h:765
UCHAR DpcInterruptRequested
Definition: ketypes.h:686
ULONG64 Rsp
Definition: ketypes.h:968
ULONG Reserved1
Definition: ketypes.h:475
ULONG System
Definition: ketypes.h:425
ULONG Fill1
Definition: ketypes.h:884
ULONG64 P5Home
Definition: ketypes.h:1023
struct _DISPATCHER_CONTEXT DISPATCHER_CONTEXT
ULONG HalReserved[16]
Definition: ketypes.h:882
PVOID CurrentPacket[3]
Definition: ketypes.h:540
ULONG CcMdlReadNoWait
Definition: ketypes.h:773
ULONG UserTime
Definition: ketypes.h:734
ULONG64 Return
Definition: ketypes.h:1014
UINT64 Ist[8]
Definition: ketypes.h:914
USHORT SegDs
Definition: ketypes.h:364
Definition: typedefs.h:118
UCHAR Fill0
Definition: ketypes.h:874
LONG DpcWatchdogPeriod
Definition: ketypes.h:716
ULONG LDT_ENTRY
Definition: ketypes.h:397
UCHAR ThreadDpcEnable
Definition: ketypes.h:695
struct _KSPECIAL_REGISTERS KSPECIAL_REGISTERS
ULONG64 Spare1
Definition: ketypes.h:933
LONG CodePatchCycle
Definition: ketypes.h:389
struct _KREQUEST_PACKET KREQUEST_PACKET
UINT64 Dr0
Definition: ketypes.h:342
struct _KDESCRIPTOR KDESCRIPTOR
UINT64 R11
Definition: ketypes.h:324
UCHAR PrcbPad9[3]
Definition: ketypes.h:697
ULONG Dpl
Definition: ketypes.h:422
LARGE_INTEGER IoReadTransferCount
Definition: ketypes.h:663
UINT64 SetMember
Definition: ketypes.h:578
ULONG Reserved0
Definition: ketypes.h:910
struct _KTHREAD * IdleThread
Definition: ketypes.h:568
union _KIDTENTRY64 * IdtBase
Definition: ketypes.h:869
ULONG CcLazyWritePages
Definition: ketypes.h:777
ULONG ReadySummary
Definition: ketypes.h:726
UCHAR ExceptionActive
Definition: ketypes.h:316
UINT32 AsUINT32[4]
Definition: ketypes.h:293
KTIMER DpcWatchdogTimer
Definition: ketypes.h:802
SINGLE_LIST_ENTRY DeferredReadyListHead
Definition: ketypes.h:628
USHORT SegSs
Definition: ketypes.h:387
UCHAR PrcbPad8[3]
Definition: ketypes.h:724
ULONG64 ControlPc
Definition: ketypes.h:995
UINT64 GsSwap
Definition: ketypes.h:328
struct _KSTART_FRAME KSTART_FRAME
struct _KIDT_ACCESS KIDT_ACCESS
ULONG64 KernelDr3
Definition: ketypes.h:503
ULONG64 LastBranchFromRip
Definition: ketypes.h:513
USHORT Reserved2
Definition: ketypes.h:916
struct _KiIoAccessMap KIIO_ACCESS_MAP
PVOID KdVersionBlock
Definition: ketypes.h:885
#define NUMBER_POOL_LOOKASIDE_LISTS
Definition: ketypes.h:286
PVOID DpcStack
Definition: ketypes.h:677
UINT64 TimerHand
Definition: ketypes.h:690
unsigned short USHORT
Definition: pedump.c:61
UINT64 MultiThreadProcessorSet
Definition: ketypes.h:752
ULONG KeExceptionDispatchCount
Definition: ketypes.h:701
ULONG PrcbPad91[3]
Definition: ketypes.h:794
LONG Sleeping
Definition: ketypes.h:762
ULONG64 Reserved
Definition: ketypes.h:1013
ULONG CacheCount
Definition: ketypes.h:804
ULONG64 P2Home
Definition: ketypes.h:1020
UCHAR PrcbPad2[52]
Definition: ketypes.h:611
ULONG NodeShiftedColor
Definition: ketypes.h:759
LONG DpcSetEventRequest
Definition: ketypes.h:699
ULONG Stride
Definition: ketypes.h:618
UINT64 Rsp
Definition: ketypes.h:386
ULONG CcFastReadNoWait
Definition: ketypes.h:649
#define FIELD_OFFSET(t, f)
Definition: typedefs.h:255
USHORT SegCs
Definition: ketypes.h:964
USHORT MajorVersion
Definition: ketypes.h:598
KREQUEST_PACKET RequestPacket
Definition: ketypes.h:547
USHORT MajorVersion
Definition: ketypes.h:876
struct _KGDTENTRY64::@2043::@2045::@2048 Bits
PVOID SparePtr0
Definition: ketypes.h:679
UINT64 Rdi
Definition: ketypes.h:370
UINT64 ExceptionFrame
Definition: ketypes.h:376
M128A Xmm3
Definition: ketypes.h:333
UCHAR IoMap[8196]
Definition: ketypes.h:903
UCHAR PrcbPad3[116]
Definition: ketypes.h:672
UCHAR DpcThreadActive
Definition: ketypes.h:689
struct _KTSS64 KTSS64
UINT64 Alignment
Definition: ketypes.h:435
union _KIDTENTRY64 * PKIDTENTRY64
MACHINE_FRAME MachineFrame
Definition: ketypes.h:990
ULONG CcMapDataNoWaitMiss
Definition: ketypes.h:784
UINT64 ErrorCode
Definition: ketypes.h:375
struct _REQUEST_MAILBOX REQUEST_MAILBOX
ULONG ContextSwitches
Definition: ketypes.h:892
ULONG64 OutputLength
Definition: ketypes.h:947
UINT64 Alignment
Definition: ketypes.h:477
LIST_ENTRY DispatcherReadyListHead[32]
Definition: ketypes.h:731
LONG MmCopyOnWriteCount
Definition: ketypes.h:630
UCHAR LogicalProcessorsPerCore
Definition: ketypes.h:603
LONG MmPageReadCount
Definition: ketypes.h:636
ULONG Unused2
Definition: ketypes.h:883
LONG MasterOffset
Definition: ketypes.h:693
struct _KPCR * Self
Definition: ketypes.h:863
UINT64 Rip
Definition: ketypes.h:379
ULONG MxCsr
Definition: ketypes.h:557
ULONG64 P1Home
Definition: ketypes.h:1009
USHORT Number
Definition: ketypes.h:559
ULONG64 P2Home
Definition: ketypes.h:984
UCHAR Group
Definition: ketypes.h:571
struct _KPROCESSOR_START_BLOCK * PKPROCESSOR_START_BLOCK
PVOID PrcbPad51
Definition: ketypes.h:708
ULONG64 MsrSyscallMask
Definition: ketypes.h:522
union _KGDTENTRY64 KGDTENTRY64
USHORT LimitLow
Definition: ketypes.h:407
unsigned int ULONG
Definition: retypes.h:1
ULONG64 KernelDr6
Definition: ketypes.h:504
ULONG NTSYSAPI KeDcacheFlushCount
Definition: cpu.c:20
UCHAR Fill0
Definition: ketypes.h:381
UCHAR Flags1
Definition: ketypes.h:414
UINT64 CoreProcessorSet
Definition: ketypes.h:818
USHORT Pad[3]
Definition: ketypes.h:484
PVOID HypercallPageVirtual
Definition: ketypes.h:812
ULONG Fill2
Definition: ketypes.h:967
UCHAR NestingLevel
Definition: ketypes.h:570
KSPIN_LOCK_QUEUE LockQueue[LockQueueMaximumLock]
Definition: ketypes.h:623
struct _KSTART_FRAME * PKSTART_FRAME
union _CPU_INFO CPU_INFO
PVOID RateControl
Definition: ketypes.h:815
ULONG CcPinReadNoWait
Definition: ketypes.h:771
struct _KTRAP_FRAME * PKTRAP_FRAME
UINT64 StartCycles
Definition: ketypes.h:755
struct _MACHINE_FRAME MACHINE_FRAME
ULONG CcFastReadWait
Definition: ketypes.h:650
LONG MmPageReadIoCount
Definition: ketypes.h:637
UINT64 Dr7
Definition: ketypes.h:347
NT_TIB NtTib
Definition: ketypes.h:857
unsigned long long UINT64
ULONG DpcRequestRate
Definition: ketypes.h:684
ULONG LastBranchMSR
Definition: ketypes.h:361
ULONG Edx
Definition: ketypes.h:299
CHAR CpuID
Definition: ketypes.h:581
UINT64 Rsp1
Definition: ketypes.h:912
ULONG LongMode
Definition: ketypes.h:426
INT64 RequestSummary
Definition: ketypes.h:546
LONG MaximumDpcQueueDepth
Definition: ketypes.h:683
ULONG PageColor
Definition: ketypes.h:757
UINT64 Rcx
Definition: ketypes.h:319
ULONG CcLazyWriteHotSpots
Definition: ketypes.h:775
PVOID WorkerRoutine
Definition: ketypes.h:541
UINT64 RspBase
Definition: ketypes.h:576
LONG MmDirtyPagesWriteCount
Definition: ketypes.h:642
REQUEST_MAILBOX RequestMailbox[64]
Definition: ketypes.h:673
USHORT IoMapBase
Definition: ketypes.h:917
UCHAR BaseHigh
Definition: ketypes.h:416
ULONG64 KernelDr0
Definition: ketypes.h:500
LONG DpcWatchdogCount
Definition: ketypes.h:717
UCHAR PrcbPad10[3]
Definition: ketypes.h:798
struct _KPROCESSOR_STATE KPROCESSOR_STATE
PVOID Unused3
Definition: ketypes.h:886
ULONG EFlags
Definition: ketypes.h:384
ULONG64 MsrGsBase
Definition: ketypes.h:517
ULONG CcLostDelayedWrites
Definition: ketypes.h:780
UINT64 TrapFrame
Definition: ketypes.h:368
PKSPIN_LOCK_QUEUE LockArray
Definition: ketypes.h:865
UINT64 LastExceptionToRip
Definition: ketypes.h:355
ULONG PeriodicBias
Definition: ketypes.h:746
ULONG OffsetHigh
Definition: ketypes.h:474
KEXCEPTION_FRAME PKCALLOUT_FRAME
Definition: ketypes.h:976
ULONG CcCopyReadNoWaitMiss
Definition: ketypes.h:654
UINT64 PrcbPad70[2]
Definition: ketypes.h:718
CHAR PreviousMode
Definition: ketypes.h:313
struct _KGDTENTRY64::@2043::@2045::@2047 Bytes
KDESCRIPTOR Idtr
Definition: ketypes.h:507
UCHAR IdleSchedule
Definition: ketypes.h:698
ULONG InitialApicId
Definition: ketypes.h:617
ULONG MustBeZero
Definition: ketypes.h:433
UCHAR PollSlot
Definition: ketypes.h:740
GENERAL_LOOKASIDE_POOL PPPagedLookasideList[NUMBER_POOL_LOOKASIDE_LISTS]
Definition: ketypes.h:626
CHAR CpuType
Definition: ketypes.h:580
ULONG AdjustDpcThreshold
Definition: ketypes.h:737
ULONG CcPinReadWait
Definition: ketypes.h:772