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