ReactOS  0.4.15-dev-5131-g311fcc6
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_MINOR_VERSION 1
164 #define PRCB_MAJOR_VERSION 1
165 #define PRCB_BUILD_DEBUG 1
166 #define PRCB_BUILD_UNIPROCESSOR 2
167 
168 //
169 // HAL Variables
170 //
171 #define INITIAL_STALL_COUNT 100
172 #define MM_HAL_VA_START 0xFFC00000
173 #define MM_HAL_VA_END 0xFFFFFFFF
174 #define APIC_BASE 0xFFFE0000
175 
176 //
177 // IOPM Definitions
178 //
179 #define IOPM_COUNT 1
180 #define IOPM_SIZE 8192
181 #define IOPM_FULL_SIZE 8196
182 #define IO_ACCESS_MAP_NONE 0
183 #define IOPM_DIRECTION_MAP_SIZE 32
184 #define IOPM_OFFSET FIELD_OFFSET(KTSS, IoMaps[0].IoMap)
185 #define KiComputeIopmOffset(MapNumber) \
186  (MapNumber == IO_ACCESS_MAP_NONE) ? \
187  (USHORT)(sizeof(KTSS)) : \
188  (USHORT)(FIELD_OFFSET(KTSS, IoMaps[MapNumber-1].IoMap))
189 
191 
193 
194 //
195 // Size of the XMM register save area in the FXSAVE format
196 //
197 #define SIZE_OF_FX_REGISTERS 128
198 
199 //
200 // Static Kernel-Mode Address start (use MM_KSEG0_BASE for actual)
201 //
202 #define KSEG0_BASE 0x80000000
203 
204 //
205 // Synchronization-level IRQL
206 //
207 #ifndef CONFIG_SMP
208 #define SYNCH_LEVEL DISPATCH_LEVEL
209 #else
210 #if (NTDDI_VERSION < NTDDI_WS03)
211 #define SYNCH_LEVEL (IPI_LEVEL - 1)
212 #else
213 #define SYNCH_LEVEL (IPI_LEVEL - 2)
214 #endif
215 #endif
216 
217 //
218 // Number of pool lookaside lists per pool in the PRCB
219 //
220 #define NUMBER_POOL_LOOKASIDE_LISTS 32
221 
222 //
223 // Structure for CPUID
224 //
225 typedef union _CPU_INFO
226 {
227  UINT32 AsUINT32[4];
228  struct
229  {
230  ULONG Eax;
231  ULONG Ebx;
232  ULONG Ecx;
233  ULONG Edx;
234  };
235 } CPU_INFO, *PCPU_INFO;
236 
237 //
238 // Trap Frame Definition
239 //
240 typedef struct _KTRAP_FRAME
241 {
270  ULONG EFlags;
278 
279 //
280 // Defines the Callback Stack Layout for User Mode Callbacks
281 //
282 typedef struct _KCALLOUT_FRAME
283 {
295 
296 //
297 // LDT Entry Definition
298 //
299 #ifndef _LDT_ENTRY_DEFINED
300 #define _LDT_ENTRY_DEFINED
301 typedef struct _LDT_ENTRY
302 {
305  union
306  {
307  struct
308  {
313  } Bytes;
314  struct
315  {
326  } Bits;
327  } HighWord;
329 #endif
330 
331 //
332 // GDT Entry Definition
333 //
334 typedef struct _KGDTENTRY
335 {
338  union
339  {
340  struct
341  {
346  } Bytes;
347  struct
348  {
359  } Bits;
360  } HighWord;
362 
363 //
364 // IDT Entry Access Definition
365 //
366 typedef struct _KIDT_ACCESS
367 {
368  union
369  {
370  struct
371  {
372  UCHAR Reserved;
373  UCHAR SegmentType:4;
375  UCHAR Dpl:2;
376  UCHAR Present:1;
377  };
378  USHORT Value;
379  };
381 
382 //
383 // IDT Entry Definition
384 //
385 typedef struct _KIDTENTRY
386 {
392 
393 typedef struct _DESCRIPTOR
394 {
395  USHORT Pad;
399 
400 #ifndef NTOS_MODE_USER
401 //
402 // Macro to get current KPRCB
403 //
405 struct _KPRCB *
407 {
408  return (struct _KPRCB *)(ULONG_PTR)__readfsdword(FIELD_OFFSET(KPCR, Prcb));
409 }
410 
411 //
412 // FN/FX (FPU) Save Area Structures
413 //
414 typedef struct _FNSAVE_FORMAT
415 {
425 
426 typedef struct _FXSAVE_FORMAT
427 {
443 
444 typedef struct _FX_SAVE_AREA
445 {
446  union
447  {
450  } U;
454 
455 //
456 // Special Registers Structure (outside of CONTEXT)
457 //
458 typedef struct _KSPECIAL_REGISTERS
459 {
472  USHORT Tr;
473  USHORT Ldtr;
474  ULONG Reserved[6];
476 
477 //
478 // Processor State Data
479 //
480 typedef struct _KPROCESSOR_STATE
481 {
485 
486 //
487 // Processor Region Control Block
488 //
489 #pragma pack(push,4)
490 typedef struct _KPRCB
491 {
494  struct _KTHREAD *CurrentThread;
495  struct _KTHREAD *NextThread;
496  struct _KTHREAD *IdleThread;
503  USHORT CpuStep;
506  ULONG HalReserved[16];
507 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
510 #else
511  UCHAR PrcbPad0[92];
512 #endif
517  ULONG UserTime;
518  ULONG DpcTime;
523  UCHAR SkipTick;
525 #if (NTDDI_VERSION >= NTDDI_WS03)
527 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
528  UCHAR PollSlot;
529 #else
530  UCHAR Spare1;
531 #endif
533 #else
534  UCHAR Spare1[6];
535 #endif
536  struct _KNODE *ParentNode;
539 #if (NTDDI_VERSION >= NTDDI_WS03)
541 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
543 #else
544  LONG Sleeping;
545 #endif
546 #else
547  ULONG ThreadStartCount[2];
548 #endif
555 #if (NTDDI_VERSION < NTDDI_LONGHORN)
557 #endif
559 #if (NTDDI_VERSION < NTDDI_LONGHORN)
562  ULONG KeFirstLevelTbFills;
563  ULONG KeFloatingEmulationCount;
565  ULONG KeSecondLevelTbFills;
567 #endif
574 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
605 #else
606  ULONG SpareCounter1[8];
607 #endif
612  volatile ULONG ReverseStall;
615  volatile PVOID CurrentPacket[3];
616  volatile ULONG TargetSet;
618  volatile ULONG IpiFrozen;
619  UCHAR PrcbPad3[40];
621  volatile struct _KPRCB *SignalDone;
622  UCHAR PrcbPad4[56];
623  struct _KDPC_DATA DpcData[2];
624  PVOID DpcStack;
632  ULONG PrcbLock;
634  volatile ULONG TimerHand;
635  volatile ULONG TimerRequest;
639  volatile BOOLEAN QuantumEnd;
641  volatile UCHAR IdleSchedule;
643 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
644  LONG Sleeping;
648 #else
649  UCHAR PrcbPad5[18];
650 #endif
652  KDPC CallDpc;
653 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
657  UCHAR PrcbPad6[2];
663 #else
664  ULONG PrcbPad7[8];
665 #endif
669 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
675 #else
678  ULONG PrcbPad72[11];
679 #endif
695 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
698  PVOID HyperPte;
701 #else
702  ULONG SpareFields0[1];
703 #endif
707  ULONG MHz;
714 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
717  PVOID WheaInfo;
730 #endif
731 } KPRCB, *PKPRCB;
732 
733 //
734 // Processor Control Region
735 //
736 typedef struct _KIPCR
737 {
738  union
739  {
740  NT_TIB NtTib;
741  struct
742  {
750  };
751  };
752  struct _KPCR *SelfPcr;
753  struct _KPRCB *Prcb;
754  KIRQL Irql;
761  struct _KTSS *TSS;
771  ULONG KernelReserved[14];
773  ULONG HalReserved[16];
778 } KIPCR, *PKIPCR;
779 #pragma pack(pop)
780 
781 //
782 // TSS Definition
783 //
784 typedef struct _KiIoAccessMap
785 {
789 
790 typedef struct _KTSS
791 {
827 } KTSS, *PKTSS;
828 
829 //
830 // i386 CPUs don't have exception frames
831 //
833 
834 #endif /* NTOS_MODE_USER */
835 
837 {
838  ServiceNoTurbo = 0x0000,
839  Service0Arg = 0x0001,
841  Service1ArgSp = 0x0003,
842  Service1ArgNSp = 0x0004,
846  Service2ArgSpSp = 0x0008,
871 
872 typedef enum _VDM_INDEX
873 {
910 
911 #endif /* _I386_KETYPES_H */
struct _LDT_ENTRY::@343::@345 Bits
union _FX_SAVE_AREA::@2409 U
ULONG CcCopyReadWait
Definition: ketypes.h:658
#define SIZE_OF_FX_REGISTERS
Definition: ketypes.h:197
ULONG TempEsp
Definition: ketypes.h:247
UINT64 PrcbPad71[12]
Definition: ketypes.h:734
ULONG LimitHi
Definition: ketypes.h:353
UCHAR DebuggerSavedIRQL
Definition: ketypes.h:744
GENERAL_LOOKASIDE_POOL PPNPagedLookasideList[NUMBER_POOL_LOOKASIDE_LISTS]
Definition: ketypes.h:630
UCHAR ClockCheckSlot
Definition: ketypes.h:718
struct _FNSAVE_FORMAT FNSAVE_FORMAT
ULONG CcFastReadResourceMiss
Definition: ketypes.h:786
ULONG DbgArgMark
Definition: ketypes.h:244
ULONG MinimumDpcRate
Definition: ketypes.h:690
ULONG DpcTimeLimit
Definition: ketypes.h:749
ULONG ReturnAddress
Definition: ketypes.h:291
enum _WOW64_SERVICE_TYPES WOW64_SERVICE_TYPES
ULONG CcMdlReadWait
Definition: ketypes.h:779
_WOW64_SERVICE_TYPES
Definition: ketypes.h:836
_VDM_INDEX
Definition: ketypes.h:872
ULONG BaseHi
Definition: ketypes.h:325
ULONG CcMapDataNoWait
Definition: ketypes.h:773
enum _VDM_INDEX VDM_INDEX
ULONG DataSelector
Definition: ketypes.h:422
ULONG Result
Definition: ketypes.h:292
ULONG V86Es
Definition: ketypes.h:273
UCHAR PrcbPad4[120]
Definition: ketypes.h:680
ULONG InterruptTime
Definition: ketypes.h:741
volatile ULONG IoWriteOperationCount
Definition: ketypes.h:569
#define IOPM_SIZE
Definition: ketypes.h:180
struct _LDT_ENTRY * PLDT_ENTRY
ULONG SpareCounter0
Definition: ketypes.h:558
UCHAR LogicalProcessorsPerPhysicalProcessor
Definition: ketypes.h:706
LONG TickOffset
Definition: ketypes.h:697
volatile LARGE_INTEGER IsrTime
Definition: ketypes.h:710
ULONG Edx
Definition: ketypes.h:304
USHORT Fs
Definition: ketypes.h:817
ULONG Granularity
Definition: ketypes.h:357
Definition: ntbasedef.h:628
ULONG SecondaryColorMask
Definition: ketypes.h:765
KDPC CallDpc
Definition: ketypes.h:715
Definition: fatfs.h:173
volatile ULONG TargetSet
Definition: ketypes.h:616
volatile UCHAR DpcThreadRequested
Definition: ketypes.h:629
ULONG IRR
Definition: ketypes.h:755
struct _KIPCR KIPCR
UCHAR Reserved3[128]
Definition: ketypes.h:439
KDPC_DATA DpcData[2]
Definition: ketypes.h:681
volatile LONG MmMappedPagesWriteCount
Definition: ketypes.h:693
ULONG CcMapDataWaitMiss
Definition: ketypes.h:790
ULONG LimitHi
Definition: ketypes.h:320
ULONG FeatureBits
Definition: ketypes.h:804
ULONG SegCs
Definition: ketypes.h:269
USHORT BaseLow
Definition: ketypes.h:337
ULONG Pres
Definition: ketypes.h:352
ULONG Default_Big
Definition: ketypes.h:323
volatile LONG MmTransitionCount
Definition: ketypes.h:684
ULONG CR3
Definition: ketypes.h:798
ULONG TagWord
Definition: ketypes.h:418
ULONG CcPinReadNoWaitMiss
Definition: ketypes.h:791
UCHAR SecondLevelCacheAssociativity
Definition: ketypes.h:877
volatile LONG MmPageFaultCount
Definition: ketypes.h:682
LONG DpcWatchDogCount
Definition: ketypes.h:659
ULONG MXCsr
Definition: ketypes.h:436
char CHAR
Definition: xmlstorage.h:175
ULONG MHz
Definition: ketypes.h:600
ULONGLONG CycleTime
Definition: ketypes.h:672
USHORT MinorVersion
Definition: ketypes.h:882
USHORT Value
Definition: ketypes.h:460
ULONG ErrorSelector
Definition: ketypes.h:433
struct _FXSAVE_FORMAT * PFXSAVE_FORMAT
USHORT Reserved5
Definition: ketypes.h:816
ULONG PeriodicCount
Definition: ketypes.h:750
USHORT ControlWord
Definition: ketypes.h:428
union _CPU_INFO * PCPU_INFO
UCHAR Spare0
Definition: ketypes.h:768
volatile LONG MmDemandZeroCount
Definition: ketypes.h:686
FORCEINLINE struct _KPRCB * KeGetCurrentPrcb(VOID)
Definition: ketypes.h:1080
volatile ULONG IpiFrozen
Definition: ketypes.h:618
struct _KIPCR * PKIPCR
ULONG CFlushSize
Definition: ketypes.h:615
LARGE_INTEGER IoWriteTransferCount
Definition: ketypes.h:669
UCHAR VendorString[13]
Definition: ketypes.h:802
USHORT Cs
Definition: ketypes.h:811
UCHAR Number
Definition: ketypes.h:767
USHORT Es
Definition: ketypes.h:809
ULONG QueueIndex
Definition: ketypes.h:732
UCHAR Reserved
Definition: ketypes.h:498
struct _KGDTENTRY KGDTENTRY
ULONG HardwareSegSs
Definition: ketypes.h:272
Definition: ke.h:289
PROCESSOR_POWER_STATE PowerState
Definition: ketypes.h:800
ULONG KernelReserved2[17]
Definition: ketypes.h:776
ULONG CcMdlReadWaitMiss
Definition: ketypes.h:794
SLIST_HEADER InterruptObjectPool
Definition: ketypes.h:815
volatile BOOLEAN QuantumEnd
Definition: ketypes.h:639
KSPECIAL_REGISTERS SpecialRegisters
Definition: ketypes.h:535
UCHAR SystemSegmentFlag
Definition: ketypes.h:456
ULONG CcFastMdlReadWait
Definition: ketypes.h:771
USHORT Reserved0
Definition: ketypes.h:793
KEXCEPTION_FRAME * PKCALLOUT_FRAME
Definition: ketypes.h:989
ULONG CcReadAheadIos
Definition: ketypes.h:795
ULONG CcPinMappedDataCount
Definition: ketypes.h:775
USHORT Backlink
Definition: ketypes.h:792
USHORT Access
Definition: ketypes.h:389
KIRQL Irql
Definition: ketypes.h:876
ULONG CachedResidentAvailable
Definition: ketypes.h:811
ULONG KernelReserved[16]
Definition: ketypes.h:505
ULONG Esi
Definition: ketypes.h:264
PVOID DpcThread
Definition: ketypes.h:636
ULONG Ebx
Definition: ketypes.h:302
LONG ThreadWatchdogPeriod
Definition: ketypes.h:660
USHORT StatusWord
Definition: ketypes.h:429
ULONG NTSYSAPI KeIcacheFlushCount
Definition: cpu.c:19
#define IOPM_DIRECTION_MAP_SIZE
Definition: ketypes.h:183
ULONG DpcTime
Definition: ketypes.h:740
struct _KTHREAD * NextThread
Definition: ketypes.h:572
KEXCEPTION_FRAME KCALLOUT_FRAME
Definition: ketypes.h:989
LONG LookasideIrpFloat
Definition: ketypes.h:660
ULONG Reserved_0
Definition: ketypes.h:322
ULONG CcFastMdlReadResourceMiss
Definition: ketypes.h:788
ULONG DebugDpcTime
Definition: ketypes.h:519
USHORT LDT
Definition: ketypes.h:821
ULONG Edi
Definition: ketypes.h:263
enum _WOW64_SERVICE_TYPES * PWOW64_SERVICE_TYPES
PVOID Used_Self
Definition: ketypes.h:871
volatile ULONG ReverseStall
Definition: ketypes.h:612
volatile LONG MmCacheReadCount
Definition: ketypes.h:689
struct _LDT_ENTRY * LPLDT_ENTRY
ULONG DpcLastCount
Definition: ketypes.h:699
UINT64 HalReserved[8]
Definition: ketypes.h:601
struct _FNSAVE_FORMAT * PFNSAVE_FORMAT
LARGE_INTEGER HyperCallPagePhysical
Definition: ketypes.h:720
UCHAR Present
Definition: ketypes.h:458
UCHAR PrcbPad6[2]
Definition: ketypes.h:720
UCHAR KIRQL
Definition: env_spec_w32.h:591
LONG ClockKeepAlive
Definition: ketypes.h:717
LARGE_INTEGER UpdateSignature
Definition: ketypes.h:805
ULONG ResultLength
Definition: ketypes.h:293
ULONG CcCopyReadWaitMiss
Definition: ketypes.h:787
USHORT Ds
Definition: ketypes.h:815
struct _KPRCB * PKPRCB
UCHAR Flags1
Definition: ketypes.h:310
PP_LOOKASIDE_LIST PPLookasideList[16]
Definition: ketypes.h:629
struct _KTRAP_FRAME KTRAP_FRAME
USHORT LimitLow
Definition: ketypes.h:303
ULONG Edx
Definition: ketypes.h:803
ULONG Dr2
Definition: ketypes.h:250
USHORT Reserved3
Definition: ketypes.h:812
struct _KTSS * PKTSS
ULONG Eax
Definition: ketypes.h:259
ULONG Pres
Definition: ketypes.h:319
struct _KDESCRIPTOR * PKDESCRIPTOR
struct _KPROCESSOR_STATE * PKPROCESSOR_STATE
unsigned int UINT32
struct _KGDTENTRY::@2402::@2403 Bytes
ULONG CcDataFlushes
Definition: ketypes.h:783
long LONG
Definition: pedump.c:60
UCHAR BaseHi
Definition: ketypes.h:312
ULONG VdmAlert
Definition: ketypes.h:770
CPU_VENDORS
Definition: ketypes.h:41
ULONG KeAlignmentFixupCount
Definition: ketypes.h:801
PVOID EtwSupport
Definition: ketypes.h:814
ULONG ErrorOffset
Definition: ketypes.h:419
ULONG CcCopyReadNoWait
Definition: ketypes.h:657
struct _KPRCB KPRCB
ULONG Type
Definition: ketypes.h:350
struct _KEXCEPTION_FRAME * PKEXCEPTION_FRAME
PVOID IpiFrame
Definition: ketypes.h:613
CONTEXT ContextFrame
Definition: ketypes.h:536
ULONG Sys
Definition: ketypes.h:354
UCHAR Reserved
Definition: ketypes.h:454
struct _KSPECIAL_REGISTERS * PKSPECIAL_REGISTERS
volatile LONG MmMappedWriteIoCount
Definition: ketypes.h:694
ULONG StallScaleFactor
Definition: ketypes.h:883
struct _KTHREAD * CurrentThread
Definition: ketypes.h:571
KDPC DpcWatchdogDoc
Definition: ketypes.h:715
volatile ULONG IoReadOperationCount
Definition: ketypes.h:568
UCHAR Dpl
Definition: ketypes.h:457
unsigned char BOOLEAN
ULONG SecondLevelCacheSize
Definition: ketypes.h:886
USHORT CpuStep
Definition: ketypes.h:590
union _LDT_ENTRY::@343 HighWord
UCHAR SkipTick
Definition: ketypes.h:743
USHORT MinorVersion
Definition: ketypes.h:602
ULONG DbgEbp
Definition: ketypes.h:242
KAFFINITY SetMember
Definition: ketypes.h:764
UCHAR PrcbPad50
Definition: ketypes.h:702
volatile LONG MmCacheTransitionCount
Definition: ketypes.h:685
Definition: ketypes.h:790
UCHAR RegisterArea[80]
Definition: ketypes.h:423
struct _KGDTENTRY::@2402::@2404 Bits
struct _KPRCB * MultiThreadSetMaster
Definition: ketypes.h:758
ULONG Default_Big
Definition: ketypes.h:356
ULONG Cr0NpxState
Definition: ketypes.h:452
UCHAR Flags2
Definition: ketypes.h:311
UCHAR RegisterArea[SIZE_OF_FX_REGISTERS]
Definition: ketypes.h:438
USHORT TagWord
Definition: ketypes.h:430
_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:822
ULONG KernelTime
Definition: ketypes.h:738
KIO_ACCESS_MAP * PKIO_ACCESS_MAP
Definition: ketypes.h:192
USHORT Reserved2
Definition: ketypes.h:810
volatile LONG MmDirtyWriteIoCount
Definition: ketypes.h:692
ULONG DbgArgPointer
Definition: ketypes.h:245
struct _LDT_ENTRY::@343::@344 Bytes
ULONG InterruptCount
Definition: ketypes.h:737
LONG ThreadWatchDogCount
Definition: ketypes.h:661
KEVENT DpcEvent
Definition: ketypes.h:711
ULONG CcFastReadNotPossible
Definition: ketypes.h:656
FX_SAVE_AREA NpxSaveArea
Definition: ketypes.h:712
KAFFINITY SetMemberCopy
Definition: ketypes.h:748
ULONG PackageProcessorSet
Definition: ketypes.h:728
UINT64 PrcbLock
Definition: ketypes.h:582
UCHAR Reserved4[224]
Definition: ketypes.h:440
ULONG PrcbPad1[3]
Definition: ketypes.h:604
ULONG SegEs
Definition: ketypes.h:255
PVOID WheaInfo
Definition: ketypes.h:813
ULONG CcLazyWriteIos
Definition: ketypes.h:781
UCHAR SegmentType
Definition: ketypes.h:455
LARGE_INTEGER SpareField1
Definition: ketypes.h:711
ULONG SegFs
Definition: ketypes.h:262
ULONG Ebx
Definition: ketypes.h:804
struct _KTSS * TSS
Definition: ketypes.h:761
ULONG KernelReserved[15]
Definition: ketypes.h:885
ULONG CcMapDataWait
Definition: ketypes.h:774
KDESCRIPTOR Gdtr
Definition: ketypes.h:511
ULONG NotUsed1[4]
Definition: ketypes.h:797
UCHAR DirectionMap[32]
Definition: ketypes.h:907
struct _FX_SAVE_AREA FX_SAVE_AREA
volatile ULONG TimerRequest
Definition: ketypes.h:635
struct _KNODE * ParentNode
Definition: ketypes.h:756
UCHAR PrcbPad5[6]
Definition: ketypes.h:647
ULONG TrapFrame
Definition: ketypes.h:285
ULONG InterruptMode
Definition: ketypes.h:774
UCHAR PrcbPad0[88]
Definition: ketypes.h:509
ULONG NpxSavedCpu
Definition: ketypes.h:451
USHORT Ss0
Definition: ketypes.h:795
LIST_ENTRY WaitListHead
Definition: ketypes.h:727
ULONG Eip
Definition: ketypes.h:799
KPRCB PrcbData
Definition: ketypes.h:777
ULONG CcFastMdlReadNotPossible
Definition: ketypes.h:772
ULONG CcMdlReadNoWaitMiss
Definition: ketypes.h:793
uint64_t ULONGLONG
Definition: typedefs.h:67
PVOID HyperPte
Definition: ketypes.h:812
ULONG Dpl
Definition: ketypes.h:318
struct _KIDT_ACCESS * PKIDT_ACCESS
ULONG Ecx
Definition: ketypes.h:802
ULONG HardwareEsp
Definition: ketypes.h:271
USHORT Reserved7
Definition: ketypes.h:820
ULONG Dr6
Definition: ketypes.h:252
ULONG DataOffset
Definition: ketypes.h:434
volatile ULONG PacketBarrier
Definition: ketypes.h:611
ULONG KeSystemCalls
Definition: ketypes.h:652
ULONG ErrorSelector
Definition: ketypes.h:420
UINT64 CacheProcessorMask[5]
Definition: ketypes.h:821
PVOID ChainedInterruptList
Definition: ketypes.h:680
enum _VDM_INDEX * PVDM_INDEX
UCHAR KIO_ACCESS_MAP[IOPM_SIZE]
Definition: ketypes.h:190
struct _EXCEPTION_REGISTRATION_RECORD FAR * ExceptionList
Definition: ketypes.h:261
USHORT IoMapBase
Definition: ketypes.h:824
USHORT Offset
Definition: ketypes.h:387
ULONG EFlags
Definition: ketypes.h:800
UCHAR CpuVendor
Definition: ketypes.h:605
LARGE_INTEGER IoOtherTransferCount
Definition: ketypes.h:670
ULONG Dr3
Definition: ketypes.h:251
USHORT Limit
Definition: ketypes.h:396
ULONG CcPinReadWaitMiss
Definition: ketypes.h:792
ULONG CcDataPages
Definition: ketypes.h:784
KPROCESSOR_STATE ProcessorState
Definition: ketypes.h:584
volatile ULONG IoOtherOperationCount
Definition: ketypes.h:570
USHORT ExtendedOffset
Definition: ketypes.h:390
ULONG ControlWord
Definition: ketypes.h:416
UCHAR ClockPollCycle
Definition: ketypes.h:719
volatile LONG MmCacheIoCount
Definition: ketypes.h:690
UCHAR SpareUnused
Definition: ketypes.h:766
unsigned char UCHAR
Definition: xmlstorage.h:181
ULONG Reserved_0
Definition: ketypes.h:355
ULONG Dr1
Definition: ketypes.h:249
ULONG CachedCommit
Definition: ketypes.h:810
struct _KGDTENTRY * PKGDTENTRY
ULONG DataSelector
Definition: ketypes.h:435
volatile UCHAR DpcRoutineActive
Definition: ketypes.h:630
UCHAR NodeColor
Definition: ketypes.h:526
Definition: ketypes.h:687
USHORT BuildType
Definition: ketypes.h:499
ULONG CcFastMdlReadNoWait
Definition: ketypes.h:770
volatile UCHAR DpcInterruptRequested
Definition: ketypes.h:628
ULONG Ecx
Definition: ketypes.h:303
UINT32 AsUINT32[4]
Definition: ketypes.h:298
ULONG BaseHi
Definition: ketypes.h:358
UCHAR BaseMid
Definition: ketypes.h:342
struct _KTHREAD * NpxThread
Definition: ketypes.h:514
ULONG HalReserved[16]
Definition: ketypes.h:887
UCHAR Flags2
Definition: ketypes.h:344
ULONG CcMdlReadNoWait
Definition: ketypes.h:778
ULONG UserTime
Definition: ketypes.h:739
Definition: typedefs.h:119
ULONG TempSegCs
Definition: ketypes.h:246
ULONG Ecx
Definition: ketypes.h:258
struct _KIDTENTRY * PKIDTENTRY
USHORT Reserved6
Definition: ketypes.h:818
#define IOPM_COUNT
Definition: ketypes.h:179
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:316
LONG DpcWatchdogPeriod
Definition: ketypes.h:721
ULONG LDT_ENTRY
Definition: ketypes.h:402
UCHAR ThreadDpcEnable
Definition: ketypes.h:700
struct _KSPECIAL_REGISTERS KSPECIAL_REGISTERS
volatile PKIPI_WORKER WorkerRoutine
Definition: ketypes.h:617
struct _KIDTENTRY KIDTENTRY
ULONG Eip
Definition: ketypes.h:268
ULONG Eax
Definition: ketypes.h:801
struct _KTSS KTSS
USHORT Ss
Definition: ketypes.h:813
ULONG Dr0
Definition: ketypes.h:248
struct _KDESCRIPTOR KDESCRIPTOR
ULONG ErrorOffset
Definition: ketypes.h:432
UCHAR PrcbPad9[3]
Definition: ketypes.h:700
struct _FXSAVE_FORMAT FXSAVE_FORMAT
ULONG InitialStack
Definition: ketypes.h:284
LARGE_INTEGER IoReadTransferCount
Definition: ketypes.h:668
KAFFINITY SetMember
Definition: ketypes.h:500
Definition: compat.h:636
struct _KTHREAD * IdleThread
Definition: ketypes.h:573
ULONG CcLazyWritePages
Definition: ketypes.h:782
ULONG ReadySummary
Definition: ketypes.h:731
volatile struct _KPRCB * SignalDone
Definition: ketypes.h:621
ULONG PreviousPreviousMode
Definition: ketypes.h:260
KTIMER DpcWatchdogTimer
Definition: ketypes.h:807
ULONG StatusWord
Definition: ketypes.h:417
ULONG V86Ds
Definition: ketypes.h:274
SINGLE_LIST_ENTRY DeferredReadyListHead
Definition: ketypes.h:633
ULONG Esp
Definition: ketypes.h:805
UCHAR PrcbPad8[3]
Definition: ketypes.h:727
USHORT Flags
Definition: ketypes.h:823
ULONG DbgEip
Definition: ketypes.h:243
struct _KIDT_ACCESS KIDT_ACCESS
ULONG Ebx
Definition: ketypes.h:265
struct _KiIoAccessMap KIIO_ACCESS_MAP
PVOID KdVersionBlock
Definition: ketypes.h:890
ULONG MXCsrMask
Definition: ketypes.h:437
ULONG Esp0
Definition: ketypes.h:794
LARGE_INTEGER HyperCallPageVirtual
Definition: ketypes.h:721
struct _FX_SAVE_AREA * PFX_SAVE_AREA
PVOID DpcStack
Definition: ketypes.h:682
volatile ULONG TimerHand
Definition: ketypes.h:634
PVOID TssCopy
Definition: ketypes.h:746
unsigned short USHORT
Definition: pedump.c:61
ULONG MultiThreadProcessorSet
Definition: ketypes.h:537
ULONG KeExceptionDispatchCount
Definition: ketypes.h:706
ULONG Edi
Definition: ketypes.h:808
ULONG Ebp
Definition: ketypes.h:806
ULONG_PTR KAFFINITY
Definition: compat.h:85
LONG Sleeping
Definition: ketypes.h:767
PKGDTENTRY GDT
Definition: ketypes.h:760
ULONG CacheCount
Definition: ketypes.h:809
PVOID Used_StackBase
Definition: ketypes.h:744
UCHAR PrcbPad2[52]
Definition: ketypes.h:614
LONG DpcSetEventRequest
Definition: ketypes.h:704
ULONG NodeShiftedColor
Definition: ketypes.h:764
ULONG SegGs
Definition: ketypes.h:254
#define FORCEINLINE
Definition: wdftypes.h:67
ULONG CcFastReadNoWait
Definition: ketypes.h:654
#define FIELD_OFFSET(t, f)
Definition: typedefs.h:255
USHORT ErrorOpcode
Definition: ketypes.h:431
USHORT MajorVersion
Definition: ketypes.h:603
USHORT MajorVersion
Definition: ketypes.h:881
ULONG DataOffset
Definition: ketypes.h:421
FNSAVE_FORMAT FnArea
Definition: ketypes.h:448
UCHAR IoMap[8196]
Definition: ketypes.h:908
UCHAR PrcbPad3[116]
Definition: ketypes.h:677
volatile UCHAR DpcThreadActive
Definition: ketypes.h:631
USHORT Pad
Definition: ketypes.h:602
ULONG V86Fs
Definition: ketypes.h:275
ULONG CcMapDataNoWaitMiss
Definition: ketypes.h:789
ULONG Type
Definition: ketypes.h:317
ULONG ContextSwitches
Definition: ketypes.h:897
union _KGDTENTRY::@2402 HighWord
LIST_ENTRY DispatcherReadyListHead[32]
Definition: ketypes.h:736
volatile LONG MmCopyOnWriteCount
Definition: ketypes.h:683
PVOID PerfGlobalGroupMask
Definition: ketypes.h:745
ULONG Dpl
Definition: ketypes.h:351
UCHAR LogicalProcessorsPerCore
Definition: ketypes.h:608
volatile LONG MmPageReadCount
Definition: ketypes.h:687
UCHAR Align16Byte[8]
Definition: ketypes.h:441
ULONG Esi
Definition: ketypes.h:807
UCHAR Number
Definition: ketypes.h:497
ULONG CallbackStack
Definition: ketypes.h:286
ULONG Granularity
Definition: ketypes.h:324
ULONG IDR
Definition: ketypes.h:757
unsigned int ULONG
Definition: retypes.h:1
ULONG Sys
Definition: ketypes.h:321
ULONG NTSYSAPI KeDcacheFlushCount
Definition: cpu.c:20
ULONG V86Gs
Definition: ketypes.h:276
ULONG IrrActive
Definition: ketypes.h:756
#define NUMBER_POOL_LOOKASIDE_LISTS
Definition: ketypes.h:220
USHORT BaseLow
Definition: ketypes.h:304
#define ULONG_PTR
Definition: config.h:101
UINT64 CoreProcessorSet
Definition: ketypes.h:823
UCHAR BaseHi
Definition: ketypes.h:345
volatile PVOID CurrentPacket[3]
Definition: ketypes.h:615
UCHAR IntDirectionMap[IOPM_DIRECTION_MAP_SIZE]
Definition: ketypes.h:826
KSPIN_LOCK_QUEUE LockQueue[LockQueueMaximumLock]
Definition: ketypes.h:628
UCHAR Flags1
Definition: ketypes.h:343
union _CPU_INFO CPU_INFO
PVOID RateControl
Definition: ketypes.h:820
ULONG CcPinReadNoWait
Definition: ketypes.h:776
ULONG SegDs
Definition: ketypes.h:256
struct _KTRAP_FRAME * PKTRAP_FRAME
ULONGLONG StartCycles
Definition: ketypes.h:671
ULONG CcFastReadWait
Definition: ketypes.h:655
volatile LONG MmPageReadIoCount
Definition: ketypes.h:688
#define FAR
Definition: zlib.h:34
#define IOPM_FULL_SIZE
Definition: ketypes.h:181
ULONG Dr7
Definition: ketypes.h:253
NT_TIB NtTib
Definition: ketypes.h:862
USHORT LimitLow
Definition: ketypes.h:336
ULONG DpcRequestRate
Definition: ketypes.h:689
UCHAR CpuID
Definition: ketypes.h:502
ULONG Base
Definition: ketypes.h:397
ULONG MaximumDpcQueueDepth
Definition: ketypes.h:625
ULONG PageColor
Definition: ketypes.h:762
USHORT Gs
Definition: ketypes.h:819
ULONG CcLazyWriteHotSpots
Definition: ketypes.h:780
PKIDTENTRY IDT
Definition: ketypes.h:759
FXSAVE_FORMAT FxArea
Definition: ketypes.h:449
volatile LONG MmDirtyPagesWriteCount
Definition: ketypes.h:691
ULONG BaseMid
Definition: ketypes.h:349
USHORT Selector
Definition: ketypes.h:388
struct _KPROCESSOR_STATE KPROCESSOR_STATE
ULONG ErrCode
Definition: ketypes.h:267
ULONG EFlags
Definition: ketypes.h:389
ULONG CcLostDelayedWrites
Definition: ketypes.h:785
USHORT Reserved4
Definition: ketypes.h:814
KIIO_ACCESS_MAP IoMaps[IOPM_COUNT]
Definition: ketypes.h:825
ULONG Edx
Definition: ketypes.h:257
struct _KPCR * SelfPcr
Definition: ketypes.h:752
ULONG Ebp
Definition: ketypes.h:266
ULONG PeriodicBias
Definition: ketypes.h:751
struct _EXCEPTION_REGISTRATION_RECORD * Used_ExceptionList
Definition: ketypes.h:743
USHORT Reserved1
Definition: ketypes.h:796
ULONG CcCopyReadNoWaitMiss
Definition: ketypes.h:659
UINT64 PrcbPad70[2]
Definition: ketypes.h:723
UCHAR BaseMid
Definition: ketypes.h:309
KDESCRIPTOR Idtr
Definition: ketypes.h:512
volatile UCHAR IdleSchedule
Definition: ketypes.h:641
UCHAR InitialApicId
Definition: ketypes.h:705
ULONG Eax
Definition: ketypes.h:301
UCHAR PollSlot
Definition: ketypes.h:745
UCHAR Spare1
Definition: ketypes.h:775
struct _KPRCB * Prcb
Definition: ketypes.h:753
GENERAL_LOOKASIDE_POOL PPPagedLookasideList[NUMBER_POOL_LOOKASIDE_LISTS]
Definition: ketypes.h:631
UCHAR CpuType
Definition: ketypes.h:501
ULONG AdjustDpcThreshold
Definition: ketypes.h:742
volatile ULONG RequestSummary
Definition: ketypes.h:620
ULONG CcPinReadWait
Definition: ketypes.h:777