ReactOS  0.4.14-dev-606-g14ebc0b
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 (X86)
8 
9 Abstract:
10 
11  i386 Type definitions for the Kernel services.
12 
13 Author:
14 
15  Alex Ionescu (alexi@tinykrnl.org) - Updated - 27-Feb-2006
16 
17 --*/
18 
19 #ifndef _I386_KETYPES_H
20 #define _I386_KETYPES_H
21 
22 //
23 // Dependencies
24 //
25 
26 //
27 // KPCR Access for non-IA64 builds
28 //
29 #define K0IPCR ((ULONG_PTR)(KIP0PCRADDRESS))
30 #define PCR ((KPCR *)K0IPCR)
31 #if defined(CONFIG_SMP) || defined(NT_BUILD)
32 #undef KeGetPcr
33 #define KeGetPcr() ((KPCR *)__readfsdword(FIELD_OFFSET(KPCR, SelfPcr)))
34 #endif
35 
36 //
37 // CPU Vendors
38 //
39 typedef enum
40 {
41  CPU_NONE = 0,
42  CPU_INTEL = 1,
43  CPU_AMD = 2,
44  CPU_CYRIX = 3,
46  CPU_VIA = 5,
48  CPU_RISE = 6,
50 } CPU_VENDORS;
51 
52 //
53 // Machine Types
54 //
55 #define MACHINE_TYPE_ISA 0x0000
56 #define MACHINE_TYPE_EISA 0x0001
57 #define MACHINE_TYPE_MCA 0x0002
58 
59 //
60 // X86 80386 Segment Types
61 //
62 #define I386_TASK_GATE 0x5
63 #define I386_TSS 0x9
64 #define I386_ACTIVE_TSS 0xB
65 #define I386_CALL_GATE 0xC
66 #define I386_INTERRUPT_GATE 0xE
67 #define I386_TRAP_GATE 0xF
68 
69 //
70 // Selector Names
71 //
72 #define RPL_MASK 0x0003
73 #define MODE_MASK 0x0001
74 #define KGDT_NULL 0x00
75 #define KGDT_R0_CODE 0x08
76 #define KGDT_R0_DATA 0x10
77 #define KGDT_R3_CODE 0x18
78 #define KGDT_R3_DATA 0x20
79 #define KGDT_TSS 0x28
80 #define KGDT_R0_PCR 0x30
81 #define KGDT_R3_TEB 0x38
82 #define KGDT_VDM_TILE 0x40
83 #define KGDT_LDT 0x48
84 #define KGDT_DF_TSS 0x50
85 #define KGDT_NMI_TSS 0x58
86 
87 //
88 // Define the number of GDTs that can be queried by user mode
89 //
90 #define KGDT_NUMBER 10
91 
92 //
93 // CR4
94 //
95 #define CR4_VME 0x1
96 #define CR4_PVI 0x2
97 #define CR4_TSD 0x4
98 #define CR4_DE 0x8
99 #define CR4_PSE 0x10
100 #define CR4_PAE 0x20
101 #define CR4_MCE 0x40
102 #define CR4_PGE 0x80
103 #define CR4_FXSR 0x200
104 #define CR4_XMMEXCPT 0x400
105 
106 //
107 // EFlags
108 //
109 #define EFLAGS_CF 0x01L
110 #define EFLAGS_ZF 0x40L
111 #define EFLAGS_TF 0x100L
112 #define EFLAGS_INTERRUPT_MASK 0x200L
113 #define EFLAGS_DF 0x400L
114 #define EFLAGS_IOPL 0x3000L
115 #define EFLAGS_NESTED_TASK 0x4000L
116 #define EFLAGS_RF 0x10000
117 #define EFLAGS_V86_MASK 0x20000
118 #define EFLAGS_ALIGN_CHECK 0x40000
119 #define EFLAGS_VIF 0x80000
120 #define EFLAGS_VIP 0x100000
121 #define EFLAGS_ID 0x200000
122 #define EFLAGS_USER_SANITIZE 0x3F4DD7
123 #define EFLAG_SIGN 0x8000
124 #define EFLAG_ZERO 0x4000
125 
126 //
127 // Legacy floating status word bit masks.
128 //
129 #define FSW_INVALID_OPERATION 0x1
130 #define FSW_DENORMAL 0x2
131 #define FSW_ZERO_DIVIDE 0x4
132 #define FSW_OVERFLOW 0x8
133 #define FSW_UNDERFLOW 0x10
134 #define FSW_PRECISION 0x20
135 #define FSW_STACK_FAULT 0x40
136 
137 //
138 // Machine Specific Registers
139 //
140 #define MSR_AMD_ACCESS 0x9C5A203A
141 #define MSR_IA32_MISC_ENABLE 0x01A0
142 #define MSR_EFER 0xC0000080
143 
144 //
145 // MSR internal Values
146 //
147 #define MSR_NXE 0x0800
148 #define XHF_NOEXECUTE 0x100000
149 #define MSR_XD_ENABLE_MASK 0xFFFFFFFB
150 
151 //
152 // IPI Types
153 //
154 #define IPI_APC 1
155 #define IPI_DPC 2
156 #define IPI_FREEZE 4
157 #define IPI_PACKET_READY 8
158 #define IPI_SYNCH_REQUEST 16
159 
160 //
161 // PRCB Flags
162 //
163 #define PRCB_MAJOR_VERSION 1
164 #define PRCB_BUILD_DEBUG 1
165 #define PRCB_BUILD_UNIPROCESSOR 2
166 
167 //
168 // HAL Variables
169 //
170 #define INITIAL_STALL_COUNT 100
171 #define MM_HAL_VA_START 0xFFC00000
172 #define MM_HAL_VA_END 0xFFFFFFFF
173 #define APIC_BASE 0xFFFE0000
174 
175 //
176 // IOPM Definitions
177 //
178 #define IOPM_COUNT 1
179 #define IOPM_SIZE 8192
180 #define IOPM_FULL_SIZE 8196
181 #define IO_ACCESS_MAP_NONE 0
182 #define IOPM_DIRECTION_MAP_SIZE 32
183 #define IOPM_OFFSET FIELD_OFFSET(KTSS, IoMaps[0].IoMap)
184 #define KiComputeIopmOffset(MapNumber) \
185  (MapNumber == IO_ACCESS_MAP_NONE) ? \
186  (USHORT)(sizeof(KTSS)) : \
187  (USHORT)(FIELD_OFFSET(KTSS, IoMaps[MapNumber-1].IoMap))
188 
190 
192 
193 //
194 // Size of the XMM register save area in the FXSAVE format
195 //
196 #define SIZE_OF_FX_REGISTERS 128
197 
198 //
199 // Static Kernel-Mode Address start (use MM_KSEG0_BASE for actual)
200 //
201 #define KSEG0_BASE 0x80000000
202 
203 //
204 // Synchronization-level IRQL
205 //
206 #ifndef CONFIG_SMP
207 #define SYNCH_LEVEL DISPATCH_LEVEL
208 #else
209 #if (NTDDI_VERSION < NTDDI_WS03)
210 #define SYNCH_LEVEL (IPI_LEVEL - 1)
211 #else
212 #define SYNCH_LEVEL (IPI_LEVEL - 2)
213 #endif
214 #endif
215 
216 //
217 // Number of pool lookaside lists per pool in the PRCB
218 //
219 #define NUMBER_POOL_LOOKASIDE_LISTS 32
220 
221 //
222 // Structure for CPUID
223 //
224 typedef union _CPU_INFO
225 {
226  UINT32 AsUINT32[4];
227  struct
228  {
229  ULONG Eax;
230  ULONG Ebx;
231  ULONG Ecx;
232  ULONG Edx;
233  };
234 } CPU_INFO, *PCPU_INFO;
235 
236 //
237 // Trap Frame Definition
238 //
239 typedef struct _KTRAP_FRAME
240 {
269  ULONG EFlags;
277 
278 //
279 // Defines the Callback Stack Layout for User Mode Callbacks
280 //
281 typedef struct _KCALLOUT_FRAME
282 {
294 
295 //
296 // LDT Entry Definition
297 //
298 #ifndef _LDT_ENTRY_DEFINED
299 #define _LDT_ENTRY_DEFINED
300 typedef struct _LDT_ENTRY
301 {
304  union
305  {
306  struct
307  {
312  } Bytes;
313  struct
314  {
325  } Bits;
326  } HighWord;
328 #endif
329 
330 //
331 // GDT Entry Definition
332 //
333 typedef struct _KGDTENTRY
334 {
337  union
338  {
339  struct
340  {
345  } Bytes;
346  struct
347  {
358  } Bits;
359  } HighWord;
361 
362 //
363 // IDT Entry Access Definition
364 //
365 typedef struct _KIDT_ACCESS
366 {
367  union
368  {
369  struct
370  {
371  UCHAR Reserved;
372  UCHAR SegmentType:4;
374  UCHAR Dpl:2;
375  UCHAR Present:1;
376  };
377  USHORT Value;
378  };
380 
381 //
382 // IDT Entry Definition
383 //
384 typedef struct _KIDTENTRY
385 {
391 
392 typedef struct _DESCRIPTOR
393 {
394  USHORT Pad;
398 
399 #ifndef NTOS_MODE_USER
400 //
401 // Macro to get current KPRCB
402 //
404 struct _KPRCB *
406 {
407  return (struct _KPRCB *)(ULONG_PTR)__readfsdword(FIELD_OFFSET(KPCR, Prcb));
408 }
409 
410 //
411 // FN/FX (FPU) Save Area Structures
412 //
413 typedef struct _FNSAVE_FORMAT
414 {
424 
425 typedef struct _FXSAVE_FORMAT
426 {
442 
443 typedef struct _FX_SAVE_AREA
444 {
445  union
446  {
449  } U;
453 
454 //
455 // Special Registers Structure (outside of CONTEXT)
456 //
457 typedef struct _KSPECIAL_REGISTERS
458 {
471  USHORT Tr;
472  USHORT Ldtr;
473  ULONG Reserved[6];
475 
476 //
477 // Processor State Data
478 //
479 typedef struct _KPROCESSOR_STATE
480 {
484 
485 //
486 // Processor Region Control Block
487 //
488 #pragma pack(push,4)
489 typedef struct _KPRCB
490 {
493  struct _KTHREAD *CurrentThread;
494  struct _KTHREAD *NextThread;
495  struct _KTHREAD *IdleThread;
502  USHORT CpuStep;
505  ULONG HalReserved[16];
506 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
509 #else
510  UCHAR PrcbPad0[92];
511 #endif
516  ULONG UserTime;
517  ULONG DpcTime;
522  UCHAR SkipTick;
524 #if (NTDDI_VERSION >= NTDDI_WS03)
526 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
527  UCHAR PollSlot;
528 #else
529  UCHAR Spare1;
530 #endif
532 #else
533  UCHAR Spare1[6];
534 #endif
535  struct _KNODE *ParentNode;
538 #if (NTDDI_VERSION >= NTDDI_WS03)
540 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
542 #else
543  LONG Sleeping;
544 #endif
545 #else
546  ULONG ThreadStartCount[2];
547 #endif
554 #if (NTDDI_VERSION < NTDDI_LONGHORN)
556 #endif
558 #if (NTDDI_VERSION < NTDDI_LONGHORN)
561  ULONG KeFirstLevelTbFills;
562  ULONG KeFloatingEmulationCount;
564  ULONG KeSecondLevelTbFills;
566 #endif
573 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
604 #else
605  ULONG SpareCounter1[8];
606 #endif
611  volatile ULONG ReverseStall;
614  volatile PVOID CurrentPacket[3];
615  volatile ULONG TargetSet;
617  volatile ULONG IpiFrozen;
618  UCHAR PrcbPad3[40];
620  volatile struct _KPRCB *SignalDone;
621  UCHAR PrcbPad4[56];
622  struct _KDPC_DATA DpcData[2];
623  PVOID DpcStack;
631  ULONG PrcbLock;
633  volatile ULONG TimerHand;
634  volatile ULONG TimerRequest;
638  volatile BOOLEAN QuantumEnd;
640  volatile UCHAR IdleSchedule;
642 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
643  LONG Sleeping;
647 #else
648  UCHAR PrcbPad5[18];
649 #endif
651  KDPC CallDpc;
652 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
656  UCHAR PrcbPad6[2];
662 #else
663  ULONG PrcbPad7[8];
664 #endif
668 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
674 #else
677  ULONG PrcbPad72[11];
678 #endif
694 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
697  PVOID HyperPte;
700 #else
701  ULONG SpareFields0[1];
702 #endif
706  ULONG MHz;
713 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
716  PVOID WheaInfo;
729 #endif
730 } KPRCB, *PKPRCB;
731 
732 //
733 // Processor Control Region
734 //
735 typedef struct _KIPCR
736 {
737  union
738  {
739  NT_TIB NtTib;
740  struct
741  {
749  };
750  };
751  struct _KPCR *SelfPcr;
752  struct _KPRCB *Prcb;
753  KIRQL Irql;
760  struct _KTSS *TSS;
770  ULONG KernelReserved[14];
772  ULONG HalReserved[16];
777 } KIPCR, *PKIPCR;
778 #pragma pack(pop)
779 
780 //
781 // TSS Definition
782 //
783 typedef struct _KiIoAccessMap
784 {
788 
789 typedef struct _KTSS
790 {
826 } KTSS, *PKTSS;
827 
828 //
829 // i386 CPUs don't have exception frames
830 //
832 
833 #endif /* NTOS_MODE_USER */
834 
836 {
837  ServiceNoTurbo = 0x0000,
838  Service0Arg = 0x0001,
840  Service1ArgSp = 0x0003,
841  Service1ArgNSp = 0x0004,
845  Service2ArgSpSp = 0x0008,
870 
871 typedef enum _VDM_INDEX
872 {
909 
910 #endif /* _I386_KETYPES_H */
ULONG CcCopyReadWait
Definition: ketypes.h:653
#define SIZE_OF_FX_REGISTERS
Definition: ketypes.h:196
ULONG TempEsp
Definition: ketypes.h:246
UINT64 PrcbPad71[12]
Definition: ketypes.h:729
ULONG LimitHi
Definition: ketypes.h:352
struct _KGDTENTRY::@2351::@2352 Bytes
UCHAR DebuggerSavedIRQL
Definition: ketypes.h:739
GENERAL_LOOKASIDE_POOL PPNPagedLookasideList[NUMBER_POOL_LOOKASIDE_LISTS]
Definition: ketypes.h:625
UCHAR ClockCheckSlot
Definition: ketypes.h:713
struct _FNSAVE_FORMAT FNSAVE_FORMAT
ULONG CcFastReadResourceMiss
Definition: ketypes.h:781
ULONG DbgArgMark
Definition: ketypes.h:243
ULONG MinimumDpcRate
Definition: ketypes.h:685
ULONG DpcTimeLimit
Definition: ketypes.h:744
ULONG ReturnAddress
Definition: ketypes.h:290
enum _WOW64_SERVICE_TYPES WOW64_SERVICE_TYPES
ULONG CcMdlReadWait
Definition: ketypes.h:774
_WOW64_SERVICE_TYPES
Definition: ketypes.h:835
_VDM_INDEX
Definition: ketypes.h:871
ULONG BaseHi
Definition: ketypes.h:324
ULONG CcMapDataNoWait
Definition: ketypes.h:768
enum _VDM_INDEX VDM_INDEX
ULONG DataSelector
Definition: ketypes.h:421
ULONG Result
Definition: ketypes.h:291
ULONG V86Es
Definition: ketypes.h:272
UCHAR PrcbPad4[120]
Definition: ketypes.h:675
ULONG InterruptTime
Definition: ketypes.h:736
volatile ULONG IoWriteOperationCount
Definition: ketypes.h:568
#define IOPM_SIZE
Definition: ketypes.h:179
struct _LDT_ENTRY * PLDT_ENTRY
ULONG SpareCounter0
Definition: ketypes.h:557
UCHAR LogicalProcessorsPerPhysicalProcessor
Definition: ketypes.h:705
LONG TickOffset
Definition: ketypes.h:692
volatile LARGE_INTEGER IsrTime
Definition: ketypes.h:709
USHORT Fs
Definition: ketypes.h:816
ULONG Granularity
Definition: ketypes.h:356
Definition: ntbasedef.h:635
ULONG SecondaryColorMask
Definition: ketypes.h:760
KDPC CallDpc
Definition: ketypes.h:710
Definition: fatfs.h:173
volatile ULONG TargetSet
Definition: ketypes.h:615
volatile UCHAR DpcThreadRequested
Definition: ketypes.h:628
ULONG IRR
Definition: ketypes.h:754
struct _KIPCR KIPCR
UCHAR Reserved3[128]
Definition: ketypes.h:438
KDPC_DATA DpcData[2]
Definition: ketypes.h:676
volatile LONG MmMappedPagesWriteCount
Definition: ketypes.h:692
ULONG CcMapDataWaitMiss
Definition: ketypes.h:785
ULONG LimitHi
Definition: ketypes.h:319
ULONG FeatureBits
Definition: ketypes.h:799
ULONG SegCs
Definition: ketypes.h:268
USHORT BaseLow
Definition: ketypes.h:336
ULONG Pres
Definition: ketypes.h:351
ULONG Default_Big
Definition: ketypes.h:322
volatile LONG MmTransitionCount
Definition: ketypes.h:683
ULONG CR3
Definition: ketypes.h:797
ULONG TagWord
Definition: ketypes.h:417
ULONG CcPinReadNoWaitMiss
Definition: ketypes.h:786
UCHAR SecondLevelCacheAssociativity
Definition: ketypes.h:872
volatile LONG MmPageFaultCount
Definition: ketypes.h:681
LONG DpcWatchDogCount
Definition: ketypes.h:658
ULONG MXCsr
Definition: ketypes.h:435
char CHAR
Definition: xmlstorage.h:175
ULONG MHz
Definition: ketypes.h:595
ULONGLONG CycleTime
Definition: ketypes.h:671
USHORT MinorVersion
Definition: ketypes.h:877
USHORT Value
Definition: ketypes.h:455
ULONG ErrorSelector
Definition: ketypes.h:432
struct _FXSAVE_FORMAT * PFXSAVE_FORMAT
USHORT Reserved5
Definition: ketypes.h:815
ULONG PeriodicCount
Definition: ketypes.h:745
USHORT ControlWord
Definition: ketypes.h:427
union _CPU_INFO * PCPU_INFO
UCHAR Spare0
Definition: ketypes.h:767
volatile LONG MmDemandZeroCount
Definition: ketypes.h:685
FORCEINLINE struct _KPRCB * KeGetCurrentPrcb(VOID)
Definition: ketypes.h:1062
volatile ULONG IpiFrozen
Definition: ketypes.h:617
struct _KIPCR * PKIPCR
ULONG CFlushSize
Definition: ketypes.h:610
LARGE_INTEGER IoWriteTransferCount
Definition: ketypes.h:664
UCHAR VendorString[13]
Definition: ketypes.h:797
USHORT Cs
Definition: ketypes.h:810
UCHAR Number
Definition: ketypes.h:766
USHORT Es
Definition: ketypes.h:808
ULONG QueueIndex
Definition: ketypes.h:727
UCHAR Reserved
Definition: ketypes.h:497
struct _KGDTENTRY KGDTENTRY
ULONG HardwareSegSs
Definition: ketypes.h:271
Definition: ke.h:280
PROCESSOR_POWER_STATE PowerState
Definition: ketypes.h:795
ULONG KernelReserved2[17]
Definition: ketypes.h:775
ULONG CcMdlReadWaitMiss
Definition: ketypes.h:789
SLIST_HEADER InterruptObjectPool
Definition: ketypes.h:810
volatile BOOLEAN QuantumEnd
Definition: ketypes.h:638
KSPECIAL_REGISTERS SpecialRegisters
Definition: ketypes.h:530
UCHAR SystemSegmentFlag
Definition: ketypes.h:451
ULONG CcFastMdlReadWait
Definition: ketypes.h:766
USHORT Reserved0
Definition: ketypes.h:792
KEXCEPTION_FRAME * PKCALLOUT_FRAME
Definition: ketypes.h:984
ULONG CcReadAheadIos
Definition: ketypes.h:790
ULONG CcPinMappedDataCount
Definition: ketypes.h:770
USHORT Backlink
Definition: ketypes.h:791
USHORT Access
Definition: ketypes.h:388
KIRQL Irql
Definition: ketypes.h:871
ULONG CachedResidentAvailable
Definition: ketypes.h:806
ULONG KernelReserved[16]
Definition: ketypes.h:504
ULONG Esi
Definition: ketypes.h:263
PVOID DpcThread
Definition: ketypes.h:635
LONG ThreadWatchdogPeriod
Definition: ketypes.h:659
USHORT StatusWord
Definition: ketypes.h:428
ULONG NTSYSAPI KeIcacheFlushCount
Definition: cpu.c:19
#define IOPM_DIRECTION_MAP_SIZE
Definition: ketypes.h:182
ULONG DpcTime
Definition: ketypes.h:735
struct _KTHREAD * NextThread
Definition: ketypes.h:567
KEXCEPTION_FRAME KCALLOUT_FRAME
Definition: ketypes.h:984
LONG LookasideIrpFloat
Definition: ketypes.h:655
ULONG Reserved_0
Definition: ketypes.h:321
ULONG CcFastMdlReadResourceMiss
Definition: ketypes.h:783
ULONG DebugDpcTime
Definition: ketypes.h:518
USHORT LDT
Definition: ketypes.h:820
ULONG Edi
Definition: ketypes.h:262
enum _WOW64_SERVICE_TYPES * PWOW64_SERVICE_TYPES
struct _LDT_ENTRY::@347::@348 Bytes
PVOID Used_Self
Definition: ketypes.h:866
volatile ULONG ReverseStall
Definition: ketypes.h:611
volatile LONG MmCacheReadCount
Definition: ketypes.h:688
struct _LDT_ENTRY * LPLDT_ENTRY
ULONG DpcLastCount
Definition: ketypes.h:694
UINT64 HalReserved[8]
Definition: ketypes.h:596
struct _FNSAVE_FORMAT * PFNSAVE_FORMAT
LARGE_INTEGER HyperCallPagePhysical
Definition: ketypes.h:719
UCHAR Present
Definition: ketypes.h:453
UCHAR PrcbPad6[2]
Definition: ketypes.h:715
UCHAR KIRQL
Definition: env_spec_w32.h:591
LONG ClockKeepAlive
Definition: ketypes.h:712
LARGE_INTEGER UpdateSignature
Definition: ketypes.h:800
ULONG ResultLength
Definition: ketypes.h:292
ULONG CcCopyReadWaitMiss
Definition: ketypes.h:782
USHORT Ds
Definition: ketypes.h:814
struct _KPRCB * PKPRCB
UCHAR Flags1
Definition: ketypes.h:309
PP_LOOKASIDE_LIST PPLookasideList[16]
Definition: ketypes.h:624
struct _KTRAP_FRAME KTRAP_FRAME
USHORT LimitLow
Definition: ketypes.h:302
ULONG Edx
Definition: ketypes.h:802
ULONG Dr2
Definition: ketypes.h:249
USHORT Reserved3
Definition: ketypes.h:811
struct _KTSS * PKTSS
ULONG Eax
Definition: ketypes.h:258
struct _KGDTENTRY::@2351::@2353 Bits
ULONG Pres
Definition: ketypes.h:318
struct _KDESCRIPTOR * PKDESCRIPTOR
struct _KPROCESSOR_STATE * PKPROCESSOR_STATE
unsigned int UINT32
ULONG CcDataFlushes
Definition: ketypes.h:778
long LONG
Definition: pedump.c:60
UCHAR BaseHi
Definition: ketypes.h:311
ULONG VdmAlert
Definition: ketypes.h:769
CPU_VENDORS
Definition: ketypes.h:41
ULONG KeAlignmentFixupCount
Definition: ketypes.h:796
PVOID EtwSupport
Definition: ketypes.h:809
ULONG ErrorOffset
Definition: ketypes.h:418
ULONG CcCopyReadNoWait
Definition: ketypes.h:652
struct _KPRCB KPRCB
ULONG Type
Definition: ketypes.h:349
struct _KEXCEPTION_FRAME * PKEXCEPTION_FRAME
PVOID IpiFrame
Definition: ketypes.h:612
#define FAR
Definition: guiddef.h:36
CONTEXT ContextFrame
Definition: ketypes.h:531
ULONG Sys
Definition: ketypes.h:353
UCHAR Reserved
Definition: ketypes.h:449
struct _KSPECIAL_REGISTERS * PKSPECIAL_REGISTERS
volatile LONG MmMappedWriteIoCount
Definition: ketypes.h:693
ULONG StallScaleFactor
Definition: ketypes.h:878
struct _KTHREAD * CurrentThread
Definition: ketypes.h:566
KDPC DpcWatchdogDoc
Definition: ketypes.h:714
volatile ULONG IoReadOperationCount
Definition: ketypes.h:567
UCHAR Dpl
Definition: ketypes.h:452
unsigned char BOOLEAN
ULONG SecondLevelCacheSize
Definition: ketypes.h:881
USHORT CpuStep
Definition: ketypes.h:585
UCHAR SkipTick
Definition: ketypes.h:738
USHORT MinorVersion
Definition: ketypes.h:597
ULONG DbgEbp
Definition: ketypes.h:241
KAFFINITY SetMember
Definition: ketypes.h:763
#define FORCEINLINE
Definition: ntbasedef.h:221
UCHAR PrcbPad50
Definition: ketypes.h:697
volatile LONG MmCacheTransitionCount
Definition: ketypes.h:684
Definition: ketypes.h:789
UCHAR RegisterArea[80]
Definition: ketypes.h:422
struct _KPRCB * MultiThreadSetMaster
Definition: ketypes.h:753
ULONG Default_Big
Definition: ketypes.h:355
ULONG Cr0NpxState
Definition: ketypes.h:451
UCHAR Flags2
Definition: ketypes.h:310
UCHAR RegisterArea[SIZE_OF_FX_REGISTERS]
Definition: ketypes.h:437
USHORT TagWord
Definition: ketypes.h:429
_Reserved_ PVOID Reserved
Definition: winddi.h:3974
PPC_QUAL unsigned long __readfsdword(const unsigned long Offset)
Definition: intrin_ppc.h:382
USHORT Reserved8
Definition: ketypes.h:821
ULONG KernelTime
Definition: ketypes.h:733
KIO_ACCESS_MAP * PKIO_ACCESS_MAP
Definition: ketypes.h:191
ULONG Eax
Definition: ketypes.h:296
USHORT Reserved2
Definition: ketypes.h:809
volatile LONG MmDirtyWriteIoCount
Definition: ketypes.h:691
ULONG DbgArgPointer
Definition: ketypes.h:244
ULONG InterruptCount
Definition: ketypes.h:732
LONG ThreadWatchDogCount
Definition: ketypes.h:660
KEVENT DpcEvent
Definition: ketypes.h:706
ULONG CcFastReadNotPossible
Definition: ketypes.h:651
FX_SAVE_AREA NpxSaveArea
Definition: ketypes.h:711
KAFFINITY SetMemberCopy
Definition: ketypes.h:747
ULONG PackageProcessorSet
Definition: ketypes.h:727
UINT64 PrcbLock
Definition: ketypes.h:577
UCHAR Reserved4[224]
Definition: ketypes.h:439
ULONG PrcbPad1[3]
Definition: ketypes.h:603
ULONG SegEs
Definition: ketypes.h:254
PVOID WheaInfo
Definition: ketypes.h:808
ULONG CcLazyWriteIos
Definition: ketypes.h:776
UCHAR SegmentType
Definition: ketypes.h:450
LARGE_INTEGER SpareField1
Definition: ketypes.h:710
ULONG SegFs
Definition: ketypes.h:261
ULONG Ebx
Definition: ketypes.h:803
struct _KTSS * TSS
Definition: ketypes.h:760
ULONG KernelReserved[15]
Definition: ketypes.h:880
ULONG CcMapDataWait
Definition: ketypes.h:769
KDESCRIPTOR Gdtr
Definition: ketypes.h:506
ULONG NotUsed1[4]
Definition: ketypes.h:796
UCHAR DirectionMap[32]
Definition: ketypes.h:902
struct _FX_SAVE_AREA FX_SAVE_AREA
volatile ULONG TimerRequest
Definition: ketypes.h:634
struct _KNODE * ParentNode
Definition: ketypes.h:751
UCHAR PrcbPad5[6]
Definition: ketypes.h:646
union _LDT_ENTRY::@347 HighWord
ULONG TrapFrame
Definition: ketypes.h:284
ULONG InterruptMode
Definition: ketypes.h:773
UCHAR PrcbPad0[88]
Definition: ketypes.h:508
ULONG NpxSavedCpu
Definition: ketypes.h:450
USHORT Ss0
Definition: ketypes.h:794
LIST_ENTRY WaitListHead
Definition: ketypes.h:722
ULONG Eip
Definition: ketypes.h:798
KPRCB PrcbData
Definition: ketypes.h:776
ULONG CcFastMdlReadNotPossible
Definition: ketypes.h:767
ULONG CcMdlReadNoWaitMiss
Definition: ketypes.h:788
uint64_t ULONGLONG
Definition: typedefs.h:65
PVOID HyperPte
Definition: ketypes.h:807
ULONG Dpl
Definition: ketypes.h:317
ULONG Ebx
Definition: ketypes.h:297
struct _KIDT_ACCESS * PKIDT_ACCESS
ULONG Ecx
Definition: ketypes.h:298
ULONG Ecx
Definition: ketypes.h:801
ULONG HardwareEsp
Definition: ketypes.h:270
USHORT Reserved7
Definition: ketypes.h:819
ULONG Dr6
Definition: ketypes.h:251
ULONG DataOffset
Definition: ketypes.h:433
volatile ULONG PacketBarrier
Definition: ketypes.h:610
ULONG KeSystemCalls
Definition: ketypes.h:647
ULONG ErrorSelector
Definition: ketypes.h:419
UINT64 CacheProcessorMask[5]
Definition: ketypes.h:816
PVOID ChainedInterruptList
Definition: ketypes.h:679
enum _VDM_INDEX * PVDM_INDEX
UCHAR KIO_ACCESS_MAP[IOPM_SIZE]
Definition: ketypes.h:189
struct _EXCEPTION_REGISTRATION_RECORD FAR * ExceptionList
Definition: ketypes.h:260
USHORT IoMapBase
Definition: ketypes.h:823
USHORT Offset
Definition: ketypes.h:386
ULONG EFlags
Definition: ketypes.h:799
UCHAR CpuVendor
Definition: ketypes.h:600
LARGE_INTEGER IoOtherTransferCount
Definition: ketypes.h:665
ULONG Dr3
Definition: ketypes.h:250
USHORT Limit
Definition: ketypes.h:395
ULONG CcPinReadWaitMiss
Definition: ketypes.h:787
ULONG CcDataPages
Definition: ketypes.h:779
KPROCESSOR_STATE ProcessorState
Definition: ketypes.h:579
volatile ULONG IoOtherOperationCount
Definition: ketypes.h:569
USHORT ExtendedOffset
Definition: ketypes.h:389
ULONG ControlWord
Definition: ketypes.h:415
UCHAR ClockPollCycle
Definition: ketypes.h:714
volatile LONG MmCacheIoCount
Definition: ketypes.h:689
UCHAR SpareUnused
Definition: ketypes.h:765
unsigned char UCHAR
Definition: xmlstorage.h:181
ULONG Reserved_0
Definition: ketypes.h:354
ULONG Dr1
Definition: ketypes.h:248
ULONG CachedCommit
Definition: ketypes.h:805
struct _KGDTENTRY * PKGDTENTRY
ULONG DataSelector
Definition: ketypes.h:434
volatile UCHAR DpcRoutineActive
Definition: ketypes.h:629
UCHAR NodeColor
Definition: ketypes.h:525
Definition: ketypes.h:687
USHORT BuildType
Definition: ketypes.h:498
ULONG CcFastMdlReadNoWait
Definition: ketypes.h:765
volatile UCHAR DpcInterruptRequested
Definition: ketypes.h:627
ULONG BaseHi
Definition: ketypes.h:357
UCHAR BaseMid
Definition: ketypes.h:341
struct _KTHREAD * NpxThread
Definition: ketypes.h:513
ULONG HalReserved[16]
Definition: ketypes.h:882
UCHAR Flags2
Definition: ketypes.h:343
ULONG CcMdlReadNoWait
Definition: ketypes.h:773
ULONG UserTime
Definition: ketypes.h:734
Definition: typedefs.h:117
struct _LDT_ENTRY::@347::@349 Bits
ULONG TempSegCs
Definition: ketypes.h:245
ULONG Ecx
Definition: ketypes.h:257
struct _KIDTENTRY * PKIDTENTRY
USHORT Reserved6
Definition: ketypes.h:817
#define IOPM_COUNT
Definition: ketypes.h:178
VOID(NTAPI * PKIPI_WORKER)(IN OUT PKIPI_CONTEXT PacketContext, IN PVOID Parameter1 OPTIONAL, IN PVOID Parameter2 OPTIONAL, IN PVOID Parameter3 OPTIONAL)
Definition: ketypes.h:576
ULONG BaseMid
Definition: ketypes.h:315
LONG DpcWatchdogPeriod
Definition: ketypes.h:716
ULONG LDT_ENTRY
Definition: ketypes.h:397
UCHAR ThreadDpcEnable
Definition: ketypes.h:695
struct _KSPECIAL_REGISTERS KSPECIAL_REGISTERS
volatile PKIPI_WORKER WorkerRoutine
Definition: ketypes.h:616
struct _KIDTENTRY KIDTENTRY
ULONG Eip
Definition: ketypes.h:267
ULONG Eax
Definition: ketypes.h:800
struct _KTSS KTSS
USHORT Ss
Definition: ketypes.h:812
ULONG Dr0
Definition: ketypes.h:247
struct _KDESCRIPTOR KDESCRIPTOR
ULONG ErrorOffset
Definition: ketypes.h:431
UCHAR PrcbPad9[3]
Definition: ketypes.h:699
struct _FXSAVE_FORMAT FXSAVE_FORMAT
ULONG InitialStack
Definition: ketypes.h:283
LARGE_INTEGER IoReadTransferCount
Definition: ketypes.h:663
KAFFINITY SetMember
Definition: ketypes.h:499
Definition: compat.h:436
struct _KTHREAD * IdleThread
Definition: ketypes.h:568
ULONG CcLazyWritePages
Definition: ketypes.h:777
union _KGDTENTRY::@2351 HighWord
ULONG ReadySummary
Definition: ketypes.h:726
UINT32 AsUINT32[4]
Definition: ketypes.h:293
volatile struct _KPRCB * SignalDone
Definition: ketypes.h:620
ULONG PreviousPreviousMode
Definition: ketypes.h:259
KTIMER DpcWatchdogTimer
Definition: ketypes.h:802
ULONG StatusWord
Definition: ketypes.h:416
ULONG V86Ds
Definition: ketypes.h:273
SINGLE_LIST_ENTRY DeferredReadyListHead
Definition: ketypes.h:628
ULONG Esp
Definition: ketypes.h:804
UCHAR PrcbPad8[3]
Definition: ketypes.h:726
USHORT Flags
Definition: ketypes.h:822
ULONG DbgEip
Definition: ketypes.h:242
struct _KIDT_ACCESS KIDT_ACCESS
ULONG Ebx
Definition: ketypes.h:264
struct _KiIoAccessMap KIIO_ACCESS_MAP
PVOID KdVersionBlock
Definition: ketypes.h:885
ULONG MXCsrMask
Definition: ketypes.h:436
ULONG Esp0
Definition: ketypes.h:793
LARGE_INTEGER HyperCallPageVirtual
Definition: ketypes.h:720
struct _FX_SAVE_AREA * PFX_SAVE_AREA
PVOID DpcStack
Definition: ketypes.h:677
volatile ULONG TimerHand
Definition: ketypes.h:633
PVOID TssCopy
Definition: ketypes.h:745
unsigned short USHORT
Definition: pedump.c:61
ULONG MultiThreadProcessorSet
Definition: ketypes.h:536
ULONG KeExceptionDispatchCount
Definition: ketypes.h:701
ULONG Edi
Definition: ketypes.h:807
ULONG Ebp
Definition: ketypes.h:805
ULONG_PTR KAFFINITY
Definition: compat.h:75
LONG Sleeping
Definition: ketypes.h:762
PKGDTENTRY GDT
Definition: ketypes.h:759
ULONG CacheCount
Definition: ketypes.h:804
union _FX_SAVE_AREA::@2358 U
PVOID Used_StackBase
Definition: ketypes.h:743
UCHAR PrcbPad2[52]
Definition: ketypes.h:613
LONG DpcSetEventRequest
Definition: ketypes.h:699
ULONG NodeShiftedColor
Definition: ketypes.h:759
ULONG SegGs
Definition: ketypes.h:253
ULONG CcFastReadNoWait
Definition: ketypes.h:649
#define FIELD_OFFSET(t, f)
Definition: typedefs.h:254
USHORT ErrorOpcode
Definition: ketypes.h:430
USHORT MajorVersion
Definition: ketypes.h:598
USHORT MajorVersion
Definition: ketypes.h:876
ULONG DataOffset
Definition: ketypes.h:420
FNSAVE_FORMAT FnArea
Definition: ketypes.h:447
UCHAR IoMap[8196]
Definition: ketypes.h:903
UCHAR PrcbPad3[116]
Definition: ketypes.h:672
volatile UCHAR DpcThreadActive
Definition: ketypes.h:630
USHORT Pad
Definition: ketypes.h:601
ULONG V86Fs
Definition: ketypes.h:274
ULONG CcMapDataNoWaitMiss
Definition: ketypes.h:784
ULONG Type
Definition: ketypes.h:316
ULONG ContextSwitches
Definition: ketypes.h:892
LIST_ENTRY DispatcherReadyListHead[32]
Definition: ketypes.h:731
volatile LONG MmCopyOnWriteCount
Definition: ketypes.h:682
PVOID PerfGlobalGroupMask
Definition: ketypes.h:744
ULONG Dpl
Definition: ketypes.h:350
UCHAR LogicalProcessorsPerCore
Definition: ketypes.h:603
volatile LONG MmPageReadCount
Definition: ketypes.h:686
UCHAR Align16Byte[8]
Definition: ketypes.h:440
ULONG Esi
Definition: ketypes.h:806
UCHAR Number
Definition: ketypes.h:496
ULONG CallbackStack
Definition: ketypes.h:285
ULONG Granularity
Definition: ketypes.h:323
ULONG IDR
Definition: ketypes.h:756
unsigned int ULONG
Definition: retypes.h:1
ULONG Sys
Definition: ketypes.h:320
ULONG NTSYSAPI KeDcacheFlushCount
Definition: cpu.c:20
ULONG V86Gs
Definition: ketypes.h:275
ULONG IrrActive
Definition: ketypes.h:755
#define NUMBER_POOL_LOOKASIDE_LISTS
Definition: ketypes.h:219
USHORT BaseLow
Definition: ketypes.h:303
#define ULONG_PTR
Definition: config.h:101
UINT64 CoreProcessorSet
Definition: ketypes.h:818
UCHAR BaseHi
Definition: ketypes.h:344
volatile PVOID CurrentPacket[3]
Definition: ketypes.h:614
UCHAR IntDirectionMap[IOPM_DIRECTION_MAP_SIZE]
Definition: ketypes.h:825
KSPIN_LOCK_QUEUE LockQueue[LockQueueMaximumLock]
Definition: ketypes.h:623
UCHAR Flags1
Definition: ketypes.h:342
union _CPU_INFO CPU_INFO
PVOID RateControl
Definition: ketypes.h:815
ULONG CcPinReadNoWait
Definition: ketypes.h:771
ULONG SegDs
Definition: ketypes.h:255
struct _KTRAP_FRAME * PKTRAP_FRAME
ULONGLONG StartCycles
Definition: ketypes.h:670
ULONG CcFastReadWait
Definition: ketypes.h:650
volatile LONG MmPageReadIoCount
Definition: ketypes.h:687
#define IOPM_FULL_SIZE
Definition: ketypes.h:180
ULONG Dr7
Definition: ketypes.h:252
NT_TIB NtTib
Definition: ketypes.h:857
USHORT LimitLow
Definition: ketypes.h:335
ULONG DpcRequestRate
Definition: ketypes.h:684
ULONG Edx
Definition: ketypes.h:299
UCHAR CpuID
Definition: ketypes.h:501
ULONG Base
Definition: ketypes.h:396
ULONG MaximumDpcQueueDepth
Definition: ketypes.h:624
ULONG PageColor
Definition: ketypes.h:757
USHORT Gs
Definition: ketypes.h:818
ULONG CcLazyWriteHotSpots
Definition: ketypes.h:775
PKIDTENTRY IDT
Definition: ketypes.h:758
FXSAVE_FORMAT FxArea
Definition: ketypes.h:448
volatile LONG MmDirtyPagesWriteCount
Definition: ketypes.h:690
ULONG BaseMid
Definition: ketypes.h:348
USHORT Selector
Definition: ketypes.h:387
struct _KPROCESSOR_STATE KPROCESSOR_STATE
ULONG ErrCode
Definition: ketypes.h:266
ULONG EFlags
Definition: ketypes.h:384
ULONG CcLostDelayedWrites
Definition: ketypes.h:780
USHORT Reserved4
Definition: ketypes.h:813
KIIO_ACCESS_MAP IoMaps[IOPM_COUNT]
Definition: ketypes.h:824
ULONG Edx
Definition: ketypes.h:256
struct _KPCR * SelfPcr
Definition: ketypes.h:751
ULONG Ebp
Definition: ketypes.h:265
ULONG PeriodicBias
Definition: ketypes.h:746
struct _EXCEPTION_REGISTRATION_RECORD * Used_ExceptionList
Definition: ketypes.h:742
USHORT Reserved1
Definition: ketypes.h:795
ULONG CcCopyReadNoWaitMiss
Definition: ketypes.h:654
UINT64 PrcbPad70[2]
Definition: ketypes.h:718
UCHAR BaseMid
Definition: ketypes.h:308
KDESCRIPTOR Idtr
Definition: ketypes.h:507
volatile UCHAR IdleSchedule
Definition: ketypes.h:640
UCHAR InitialApicId
Definition: ketypes.h:704
UCHAR PollSlot
Definition: ketypes.h:740
UCHAR Spare1
Definition: ketypes.h:774
struct _KPRCB * Prcb
Definition: ketypes.h:752
GENERAL_LOOKASIDE_POOL PPPagedLookasideList[NUMBER_POOL_LOOKASIDE_LISTS]
Definition: ketypes.h:626
UCHAR CpuType
Definition: ketypes.h:500
ULONG AdjustDpcThreshold
Definition: ketypes.h:737
volatile ULONG RequestSummary
Definition: ketypes.h:619
ULONG CcPinReadWait
Definition: ketypes.h:772