ReactOS 0.4.15-dev-6669-g8227c5d
ketypes.h
Go to the documentation of this file.
1/*++ NDK Version: 0098
2
3Copyright (c) Alex Ionescu. All rights reserved.
4
5Header Name:
6
7 ketypes.h (X86)
8
9Abstract:
10
11 i386 Type definitions for the Kernel services.
12
13Author:
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//
39typedef enum
40{
49 CPU_UNKNOWN = 7
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//
225typedef union _CPU_INFO
226{
227 UINT32 AsUINT32[4];
228 struct
229 {
230 ULONG Eax;
231 ULONG Ebx;
232 ULONG Ecx;
233 ULONG Edx;
234 };
236
237//
238// Trap Frame Definition
239//
240typedef struct _KTRAP_FRAME
241{
278
279//
280// Defines the Callback Stack Layout for User Mode Callbacks
281//
282typedef struct _KCALLOUT_FRAME
283{
295
296//
297// LDT Entry Definition
298//
299#ifndef _LDT_ENTRY_DEFINED
300#define _LDT_ENTRY_DEFINED
301typedef struct _LDT_ENTRY
302{
305 union
306 {
307 struct
308 {
314 struct
315 {
329#endif
330
331//
332// GDT Entry Definition
333//
334typedef struct _KGDTENTRY
335{
338 union
339 {
340 struct
341 {
347 struct
348 {
362
363//
364// IDT Entry Access Definition
365//
366typedef struct _KIDT_ACCESS
367{
368 union
369 {
370 struct
371 {
375 UCHAR Dpl:2;
376 UCHAR Present:1;
377 };
379 };
381
382//
383// IDT Entry Definition
384//
385typedef struct _KIDTENTRY
386{
392
393typedef struct _DESCRIPTOR
394{
395 USHORT Pad;
399
400#ifndef NTOS_MODE_USER
401//
402// Macro to get current KPRCB
403//
405struct _KPRCB *
407{
408 return (struct _KPRCB *)(ULONG_PTR)__readfsdword(FIELD_OFFSET(KPCR, Prcb));
409}
410
411//
412// FN/FX (FPU) Save Area Structures
413//
414typedef struct _FNSAVE_FORMAT
415{
425
426typedef struct _FXSAVE_FORMAT
427{
443
444typedef struct _FX_SAVE_AREA
445{
446 union
447 {
450 } U;
454
455//
456// Special Registers Structure (outside of CONTEXT)
457//
458typedef struct _KSPECIAL_REGISTERS
459{
472 USHORT Tr;
473 USHORT Ldtr;
474 ULONG Reserved[6];
476
477//
478// Processor State Data
479//
480typedef struct _KPROCESSOR_STATE
481{
485
486//
487// Processor Region Control Block
488//
489#pragma pack(push,4)
490typedef struct _KPRCB
491{
494 struct _KTHREAD *CurrentThread;
495 struct _KTHREAD *NextThread;
496 struct _KTHREAD *IdleThread;
506 ULONG HalReserved[16];
507#if (NTDDI_VERSION >= NTDDI_LONGHORN)
510#else
511 UCHAR PrcbPad0[92];
512#endif
525#if (NTDDI_VERSION >= NTDDI_WS03)
527#if (NTDDI_VERSION >= NTDDI_LONGHORN)
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
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
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];
634 volatile ULONG TimerHand;
643#if (NTDDI_VERSION >= NTDDI_LONGHORN)
648#else
649 UCHAR PrcbPad5[18];
650#endif
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)
701#else
702 ULONG SpareFields0[1];
703#endif
707 ULONG MHz;
714#if (NTDDI_VERSION >= NTDDI_LONGHORN)
730#endif
732
733//
734// Processor Control Region
735//
736typedef struct _KIPCR
737{
738 union
739 {
741 struct
742 {
750 };
751 };
752 struct _KPCR *SelfPcr;
753 struct _KPRCB *Prcb;
754 KIRQL Irql;
761 struct _KTSS *TSS;
773 ULONG HalReserved[16];
779#pragma pack(pop)
780
781//
782// TSS Definition
783//
784typedef struct _KiIoAccessMap
785{
789
790typedef struct _KTSS
791{
828
829//
830// i386 CPUs don't have exception frames
831//
833
834#endif /* NTOS_MODE_USER */
835
837{
839 Service0Arg = 0x0001,
869 Wow64ServiceTypesCount // = 0x001F
871
872typedef enum _VDM_INDEX
873{
910
911#endif /* _I386_KETYPES_H */
unsigned char BOOLEAN
unsigned int UINT32
ULONG_PTR KAFFINITY
Definition: compat.h:85
#define FAR
Definition: zlib.h:34
#define ULONG_PTR
Definition: config.h:101
UCHAR KIRQL
Definition: env_spec_w32.h:591
PPC_QUAL unsigned long __readfsdword(const unsigned long Offset)
Definition: intrin_ppc.h:382
struct _KSPECIAL_REGISTERS * PKSPECIAL_REGISTERS
struct _KIDT_ACCESS KIDT_ACCESS
struct _KTRAP_FRAME KTRAP_FRAME
struct _KDESCRIPTOR * PKDESCRIPTOR
struct _KPROCESSOR_STATE * PKPROCESSOR_STATE
#define NUMBER_POOL_LOOKASIDE_LISTS
Definition: ketypes.h:295
struct _KIPCR KIPCR
KEXCEPTION_FRAME KCALLOUT_FRAME
Definition: ketypes.h:993
struct _KPRCB * PKPRCB
struct _KEXCEPTION_FRAME * PKEXCEPTION_FRAME
FORCEINLINE struct _KPRCB * KeGetCurrentPrcb(VOID)
Definition: ketypes.h:1084
struct _KiIoAccessMap KIIO_ACCESS_MAP
struct _KDESCRIPTOR KDESCRIPTOR
struct _KIPCR * PKIPCR
KEXCEPTION_FRAME * PKCALLOUT_FRAME
Definition: ketypes.h:993
CPU_VENDORS
Definition: ketypes.h:42
@ CPU_VIA
Definition: ketypes.h:46
@ CPU_INTEL
Definition: ketypes.h:45
@ CPU_UNKNOWN
Definition: ketypes.h:43
@ CPU_AMD
Definition: ketypes.h:44
union _CPU_INFO CPU_INFO
ULONG LDT_ENTRY
Definition: ketypes.h:406
struct _KPRCB KPRCB
struct _KTRAP_FRAME * PKTRAP_FRAME
struct _KSPECIAL_REGISTERS KSPECIAL_REGISTERS
union _CPU_INFO * PCPU_INFO
struct _KIDT_ACCESS * PKIDT_ACCESS
struct _KPROCESSOR_STATE KPROCESSOR_STATE
#define IOPM_FULL_SIZE
Definition: ketypes.h:181
struct _KGDTENTRY KGDTENTRY
struct _KIDTENTRY * PKIDTENTRY
UCHAR KIO_ACCESS_MAP[IOPM_SIZE]
Definition: ketypes.h:190
#define IOPM_SIZE
Definition: ketypes.h:180
_VDM_INDEX
Definition: ketypes.h:873
@ VDM_INDEX_OUTBimm
Definition: ketypes.h:896
@ VDM_INDEX_NPX
Definition: ketypes.h:893
@ VDM_INDEX_POPF
Definition: ketypes.h:889
@ VDM_INDEX_OUTSW
Definition: ketypes.h:887
@ VDM_INDEX_ESPrefix
Definition: ketypes.h:876
@ VDM_INDEX_INW
Definition: ketypes.h:899
@ VDM_INDEX_ADDR32Prefix
Definition: ketypes.h:883
@ VDM_INDEX_STI
Definition: ketypes.h:906
@ VDM_INDEX_DSPrefix
Definition: ketypes.h:879
@ VDM_INDEX_INB
Definition: ketypes.h:898
@ VDM_INDEX_HLT
Definition: ketypes.h:907
@ VDM_INDEX_OUTSB
Definition: ketypes.h:886
@ VDM_INDEX_INSW
Definition: ketypes.h:885
@ VDM_INDEX_INTO
Definition: ketypes.h:891
@ VDM_INDEX_INBimm
Definition: ketypes.h:894
@ VDM_INDEX_CSPrefix
Definition: ketypes.h:877
@ VDM_INDEX_IRET
Definition: ketypes.h:892
@ VDM_INDEX_0F
Definition: ketypes.h:875
@ VDM_INDEX_Invalid
Definition: ketypes.h:874
@ VDM_INDEX_OUTWimm
Definition: ketypes.h:897
@ VDM_INDEX_REPPrefix
Definition: ketypes.h:904
@ VDM_INDEX_OUTW
Definition: ketypes.h:901
@ VDM_INDEX_INSB
Definition: ketypes.h:884
@ VDM_INDEX_OUTB
Definition: ketypes.h:900
@ VDM_INDEX_CLI
Definition: ketypes.h:905
@ VDM_INDEX_PUSHF
Definition: ketypes.h:888
@ VDM_INDEX_INTnn
Definition: ketypes.h:890
@ VDM_INDEX_FSPrefix
Definition: ketypes.h:880
@ MAX_VDM_INDEX
Definition: ketypes.h:908
@ VDM_INDEX_INWimm
Definition: ketypes.h:895
@ VDM_INDEX_SSPrefix
Definition: ketypes.h:878
@ VDM_INDEX_OPER32Prefix
Definition: ketypes.h:882
@ VDM_INDEX_LOCKPrefix
Definition: ketypes.h:902
@ VDM_INDEX_GSPrefix
Definition: ketypes.h:881
@ VDM_INDEX_REPNEPrefix
Definition: ketypes.h:903
struct _KTSS KTSS
struct _FX_SAVE_AREA * PFX_SAVE_AREA
struct _FXSAVE_FORMAT * PFXSAVE_FORMAT
enum _WOW64_SERVICE_TYPES * PWOW64_SERVICE_TYPES
struct _KIDTENTRY KIDTENTRY
enum _WOW64_SERVICE_TYPES WOW64_SERVICE_TYPES
enum _VDM_INDEX VDM_INDEX
struct _FXSAVE_FORMAT FXSAVE_FORMAT
struct _FX_SAVE_AREA FX_SAVE_AREA
struct _LDT_ENTRY * LPLDT_ENTRY
struct _FNSAVE_FORMAT * PFNSAVE_FORMAT
@ CPU_RISE
Definition: ketypes.h:48
@ CPU_NONE
Definition: ketypes.h:41
@ CPU_CENTAUR
Definition: ketypes.h:47
@ CPU_CYRIX
Definition: ketypes.h:44
@ CPU_TRANSMETA
Definition: ketypes.h:45
struct _KTSS * PKTSS
KIO_ACCESS_MAP * PKIO_ACCESS_MAP
Definition: ketypes.h:192
struct _FNSAVE_FORMAT FNSAVE_FORMAT
#define IOPM_DIRECTION_MAP_SIZE
Definition: ketypes.h:183
struct _KGDTENTRY * PKGDTENTRY
enum _VDM_INDEX * PVDM_INDEX
_WOW64_SERVICE_TYPES
Definition: ketypes.h:837
@ Service0Arg
Definition: ketypes.h:839
@ Service4ArgSpSpNSpNSpReloadState
Definition: ketypes.h:857
@ Service4ArgSpNSpNSpNSpReloadState
Definition: ketypes.h:859
@ Service3ArgSpNSpNSp
Definition: ketypes.h:850
@ ServiceCpupTdReadWriteFile
Definition: ketypes.h:864
@ ServiceCpupTdWaitForMultipleObjects
Definition: ketypes.h:867
@ Service3ArgSpNSpNSpReloadState
Definition: ketypes.h:851
@ Service3ArgSpSpNSp
Definition: ketypes.h:852
@ ServiceNoTurbo
Definition: ketypes.h:838
@ Service2ArgNSpSp
Definition: ketypes.h:847
@ Service2ArgSpSp
Definition: ketypes.h:846
@ Service4ArgSpSpSpNSp
Definition: ketypes.h:861
@ Service2ArgNSpNSpReloadState
Definition: ketypes.h:844
@ Service2ArgNSpNSp
Definition: ketypes.h:843
@ Service2ArgSpNSp
Definition: ketypes.h:845
@ Service0ArgReloadState
Definition: ketypes.h:840
@ Service4ArgSpSpNSpNSp
Definition: ketypes.h:856
@ Service4ArgNSpNSpNSpNSp
Definition: ketypes.h:855
@ ServiceCpupTdQuerySystemTime
Definition: ketypes.h:862
@ Wow64ServiceTypesCount
Definition: ketypes.h:869
@ Service1ArgSp
Definition: ketypes.h:841
@ ServiceCpupTdGetCurrentProcessorNumber
Definition: ketypes.h:863
@ Service3ArgNSpNSpNSp
Definition: ketypes.h:848
@ Service3ArgSpSpSp
Definition: ketypes.h:849
@ Service3ArgSpNSpSp
Definition: ketypes.h:854
@ Service4ArgNSpSpNSpNSp
Definition: ketypes.h:860
@ ServiceCpupTdRemoveIoCompletion
Definition: ketypes.h:866
@ Service1ArgNSp
Definition: ketypes.h:842
@ ServiceCpupTdWaitForMultipleObjects32
Definition: ketypes.h:868
@ Service3ArgNSpSpNSp
Definition: ketypes.h:853
@ Service4ArgSpNSpNSpNSp
Definition: ketypes.h:858
@ ServiceCpupTdDeviceIoControlFile
Definition: ketypes.h:865
#define SIZE_OF_FX_REGISTERS
Definition: ketypes.h:197
#define IOPM_COUNT
Definition: ketypes.h:179
struct _LDT_ENTRY * PLDT_ENTRY
ULONG KeDcacheFlushCount
Definition: cpu.c:20
ULONG KeIcacheFlushCount
Definition: cpu.c:19
long LONG
Definition: pedump.c:60
unsigned short USHORT
Definition: pedump.c:61
Definition: fatfs.h:173
USHORT Pad
Definition: ketypes.h:604
ULONG Base
Definition: ketypes.h:397
USHORT Limit
Definition: ketypes.h:396
ULONG TagWord
Definition: ketypes.h:418
ULONG StatusWord
Definition: ketypes.h:417
ULONG ControlWord
Definition: ketypes.h:416
ULONG DataOffset
Definition: ketypes.h:421
UCHAR RegisterArea[80]
Definition: ketypes.h:423
ULONG DataSelector
Definition: ketypes.h:422
ULONG ErrorSelector
Definition: ketypes.h:420
ULONG ErrorOffset
Definition: ketypes.h:419
ULONG DataSelector
Definition: ketypes.h:435
UCHAR RegisterArea[SIZE_OF_FX_REGISTERS]
Definition: ketypes.h:438
UCHAR Reserved4[224]
Definition: ketypes.h:440
ULONG ErrorOffset
Definition: ketypes.h:432
ULONG MXCsr
Definition: ketypes.h:436
UCHAR Reserved3[128]
Definition: ketypes.h:439
ULONG MXCsrMask
Definition: ketypes.h:437
USHORT ControlWord
Definition: ketypes.h:428
USHORT TagWord
Definition: ketypes.h:430
USHORT ErrorOpcode
Definition: ketypes.h:431
UCHAR Align16Byte[8]
Definition: ketypes.h:441
ULONG DataOffset
Definition: ketypes.h:434
USHORT StatusWord
Definition: ketypes.h:429
ULONG ErrorSelector
Definition: ketypes.h:433
union _FX_SAVE_AREA::@2433 U
FNSAVE_FORMAT FnArea
Definition: ketypes.h:448
ULONG NpxSavedCpu
Definition: ketypes.h:451
ULONG Cr0NpxState
Definition: ketypes.h:452
FXSAVE_FORMAT FxArea
Definition: ketypes.h:449
ULONG CallbackStack
Definition: ketypes.h:286
ULONG ResultLength
Definition: ketypes.h:293
ULONG TrapFrame
Definition: ketypes.h:285
ULONG Result
Definition: ketypes.h:292
ULONG ReturnAddress
Definition: ketypes.h:291
ULONG InitialStack
Definition: ketypes.h:284
Definition: ketypes.h:687
UCHAR BaseMid
Definition: ketypes.h:342
ULONG Granularity
Definition: ketypes.h:357
ULONG Type
Definition: ketypes.h:350
ULONG BaseMid
Definition: ketypes.h:349
UCHAR Flags2
Definition: ketypes.h:344
UCHAR Flags1
Definition: ketypes.h:343
struct _KGDTENTRY::@2426::@2428 Bits
UCHAR BaseHi
Definition: ketypes.h:345
ULONG Default_Big
Definition: ketypes.h:356
USHORT BaseLow
Definition: ketypes.h:337
USHORT LimitLow
Definition: ketypes.h:336
ULONG LimitHi
Definition: ketypes.h:353
union _KGDTENTRY::@2426 HighWord
ULONG Sys
Definition: ketypes.h:354
struct _KGDTENTRY::@2426::@2427 Bytes
ULONG BaseHi
Definition: ketypes.h:358
ULONG Pres
Definition: ketypes.h:352
ULONG Dpl
Definition: ketypes.h:351
ULONG Reserved_0
Definition: ketypes.h:355
USHORT Offset
Definition: ketypes.h:387
USHORT Selector
Definition: ketypes.h:388
USHORT Access
Definition: ketypes.h:389
USHORT ExtendedOffset
Definition: ketypes.h:390
UCHAR SystemSegmentFlag
Definition: ketypes.h:460
UCHAR Dpl
Definition: ketypes.h:461
UCHAR Reserved
Definition: ketypes.h:458
USHORT Value
Definition: ketypes.h:464
UCHAR SegmentType
Definition: ketypes.h:459
UCHAR Present
Definition: ketypes.h:462
ULONG ContextSwitches
Definition: ketypes.h:901
KAFFINITY SetMemberCopy
Definition: ketypes.h:748
USHORT MinorVersion
Definition: ketypes.h:886
ULONG SecondLevelCacheSize
Definition: ketypes.h:890
PKIDTENTRY IDT
Definition: ketypes.h:759
USHORT MajorVersion
Definition: ketypes.h:885
UCHAR SecondLevelCacheAssociativity
Definition: ketypes.h:881
ULONG IrrActive
Definition: ketypes.h:756
PVOID PerfGlobalGroupMask
Definition: ketypes.h:745
KIRQL Irql
Definition: ketypes.h:880
UCHAR Number
Definition: ketypes.h:767
KPRCB PrcbData
Definition: ketypes.h:777
KAFFINITY SetMember
Definition: ketypes.h:764
ULONG KernelReserved2[17]
Definition: ketypes.h:776
ULONG IRR
Definition: ketypes.h:755
UCHAR Spare1
Definition: ketypes.h:775
struct _EXCEPTION_REGISTRATION_RECORD * Used_ExceptionList
Definition: ketypes.h:743
ULONG InterruptMode
Definition: ketypes.h:774
PKGDTENTRY GDT
Definition: ketypes.h:760
struct _KPCR * SelfPcr
Definition: ketypes.h:752
ULONG HalReserved[16]
Definition: ketypes.h:891
PVOID TssCopy
Definition: ketypes.h:746
struct _KTSS * TSS
Definition: ketypes.h:761
struct _KPRCB * Prcb
Definition: ketypes.h:753
PVOID Used_StackBase
Definition: ketypes.h:744
NT_TIB NtTib
Definition: ketypes.h:866
ULONG IDR
Definition: ketypes.h:757
ULONG KernelReserved[15]
Definition: ketypes.h:889
UCHAR Spare0
Definition: ketypes.h:768
UCHAR SpareUnused
Definition: ketypes.h:766
ULONG StallScaleFactor
Definition: ketypes.h:887
ULONG VdmAlert
Definition: ketypes.h:770
PVOID KdVersionBlock
Definition: ketypes.h:894
PVOID Used_Self
Definition: ketypes.h:875
Definition: ke.h:294
volatile ULONG IoWriteOperationCount
Definition: ketypes.h:569
ULONG CcMdlReadNoWait
Definition: ketypes.h:782
ULONG KernelReserved[16]
Definition: ketypes.h:505
ULONG DpcTimeLimit
Definition: ketypes.h:753
ULONG CcCopyReadNoWaitMiss
Definition: ketypes.h:663
ULONG CcLostDelayedWrites
Definition: ketypes.h:789
PVOID HyperPte
Definition: ketypes.h:816
UINT64 HalReserved[8]
Definition: ketypes.h:605
volatile BOOLEAN QuantumEnd
Definition: ketypes.h:639
KSPIN_LOCK_QUEUE LockQueue[LockQueueMaximumLock]
Definition: ketypes.h:632
PROCESSOR_POWER_STATE PowerState
Definition: ketypes.h:804
UCHAR PrcbPad3[116]
Definition: ketypes.h:681
ULONG InterruptTime
Definition: ketypes.h:745
KDPC DpcWatchdogDoc
Definition: ketypes.h:715
LONG DpcWatchdogPeriod
Definition: ketypes.h:725
FX_SAVE_AREA NpxSaveArea
Definition: ketypes.h:712
struct _KTHREAD * IdleThread
Definition: ketypes.h:577
GENERAL_LOOKASIDE_POOL PPNPagedLookasideList[NUMBER_POOL_LOOKASIDE_LISTS]
Definition: ketypes.h:634
ULONG UserTime
Definition: ketypes.h:743
ULONG CcReadAheadIos
Definition: ketypes.h:799
ULONG CacheCount
Definition: ketypes.h:813
ULONG CcMapDataWaitMiss
Definition: ketypes.h:794
UINT64 PrcbLock
Definition: ketypes.h:586
volatile UCHAR DpcThreadActive
Definition: ketypes.h:631
volatile UCHAR DpcInterruptRequested
Definition: ketypes.h:628
UINT64 PrcbPad71[12]
Definition: ketypes.h:738
USHORT MinorVersion
Definition: ketypes.h:606
struct _KPRCB * MultiThreadSetMaster
Definition: ketypes.h:762
volatile LARGE_INTEGER IsrTime
Definition: ketypes.h:710
KAFFINITY SetMember
Definition: ketypes.h:500
volatile ULONG IoReadOperationCount
Definition: ketypes.h:568
UCHAR PrcbPad8[3]
Definition: ketypes.h:727
volatile LONG MmDemandZeroCount
Definition: ketypes.h:686
volatile LONG MmPageReadIoCount
Definition: ketypes.h:688
volatile UCHAR DpcRoutineActive
Definition: ketypes.h:630
UCHAR VendorString[13]
Definition: ketypes.h:806
volatile PKIPI_WORKER WorkerRoutine
Definition: ketypes.h:617
LONG ThreadWatchdogPeriod
Definition: ketypes.h:660
PVOID RateControl
Definition: ketypes.h:824
volatile UCHAR IdleSchedule
Definition: ketypes.h:641
LONG ClockKeepAlive
Definition: ketypes.h:721
volatile ULONG ReverseStall
Definition: ketypes.h:612
ULONG QueueIndex
Definition: ketypes.h:736
PVOID WheaInfo
Definition: ketypes.h:817
ULONGLONG StartCycles
Definition: ketypes.h:671
UCHAR CpuType
Definition: ketypes.h:501
LONG Sleeping
Definition: ketypes.h:771
USHORT BuildType
Definition: ketypes.h:499
ULONG InterruptCount
Definition: ketypes.h:741
PVOID ChainedInterruptList
Definition: ketypes.h:680
LIST_ENTRY WaitListHead
Definition: ketypes.h:731
ULONG CcMdlReadWait
Definition: ketypes.h:783
ULONG PrcbPad1[3]
Definition: ketypes.h:604
ULONG CcPinReadNoWaitMiss
Definition: ketypes.h:795
ULONG CcPinReadWait
Definition: ketypes.h:781
ULONG DpcLastCount
Definition: ketypes.h:703
volatile ULONG IoOtherOperationCount
Definition: ketypes.h:570
UCHAR SkipTick
Definition: ketypes.h:747
PVOID EtwSupport
Definition: ketypes.h:818
ULONG PeriodicCount
Definition: ketypes.h:754
KDPC_DATA DpcData[2]
Definition: ketypes.h:685
volatile LONG MmMappedWriteIoCount
Definition: ketypes.h:694
ULONG DebugDpcTime
Definition: ketypes.h:519
ULONG CcMapDataNoWait
Definition: ketypes.h:777
volatile LONG MmCacheIoCount
Definition: ketypes.h:690
ULONG CachedCommit
Definition: ketypes.h:814
ULONG CcMdlReadWaitMiss
Definition: ketypes.h:798
LONG TickOffset
Definition: ketypes.h:701
GENERAL_LOOKASIDE_POOL PPPagedLookasideList[NUMBER_POOL_LOOKASIDE_LISTS]
Definition: ketypes.h:635
ULONG CachedResidentAvailable
Definition: ketypes.h:815
USHORT MajorVersion
Definition: ketypes.h:607
ULONG PageColor
Definition: ketypes.h:766
ULONG CcPinReadNoWait
Definition: ketypes.h:780
UCHAR ClockPollCycle
Definition: ketypes.h:723
USHORT CpuStep
Definition: ketypes.h:594
volatile LONG MmTransitionCount
Definition: ketypes.h:684
ULONG CcCopyReadWait
Definition: ketypes.h:662
volatile ULONG TargetSet
Definition: ketypes.h:616
ULONG CcPinMappedDataCount
Definition: ketypes.h:779
ULONG CcMdlReadNoWaitMiss
Definition: ketypes.h:797
UCHAR CpuVendor
Definition: ketypes.h:609
volatile LONG MmCopyOnWriteCount
Definition: ketypes.h:683
volatile ULONG PacketBarrier
Definition: ketypes.h:611
ULONGLONG CycleTime
Definition: ketypes.h:672
ULONG DpcTime
Definition: ketypes.h:744
ULONG MaximumDpcQueueDepth
Definition: ketypes.h:625
volatile LONG MmCacheReadCount
Definition: ketypes.h:689
UCHAR LogicalProcessorsPerPhysicalProcessor
Definition: ketypes.h:706
UCHAR ClockCheckSlot
Definition: ketypes.h:722
LARGE_INTEGER HyperCallPagePhysical
Definition: ketypes.h:720
ULONG CcFastMdlReadWait
Definition: ketypes.h:775
ULONG PeriodicBias
Definition: ketypes.h:755
LONG DpcWatchDogCount
Definition: ketypes.h:659
volatile struct _KPRCB * SignalDone
Definition: ketypes.h:621
ULONG MinimumDpcRate
Definition: ketypes.h:694
PP_LOOKASIDE_LIST PPLookasideList[16]
Definition: ketypes.h:633
ULONG CcMapDataNoWaitMiss
Definition: ketypes.h:793
ULONG CcFastReadWait
Definition: ketypes.h:659
ULONG SpareCounter0
Definition: ketypes.h:558
LONG LookasideIrpFloat
Definition: ketypes.h:664
ULONG CcMapDataWait
Definition: ketypes.h:778
UCHAR NodeColor
Definition: ketypes.h:526
ULONG CcPinReadWaitMiss
Definition: ketypes.h:796
ULONG KeExceptionDispatchCount
Definition: ketypes.h:710
ULONG AdjustDpcThreshold
Definition: ketypes.h:746
UCHAR PrcbPad9[3]
Definition: ketypes.h:700
ULONG CcFastMdlReadNoWait
Definition: ketypes.h:774
UCHAR ThreadDpcEnable
Definition: ketypes.h:704
volatile LONG MmDirtyPagesWriteCount
Definition: ketypes.h:691
struct _KTHREAD * CurrentThread
Definition: ketypes.h:575
LARGE_INTEGER IoReadTransferCount
Definition: ketypes.h:672
ULONG FeatureBits
Definition: ketypes.h:808
struct _KTHREAD * NextThread
Definition: ketypes.h:576
volatile UCHAR DpcThreadRequested
Definition: ketypes.h:629
ULONG CcDataPages
Definition: ketypes.h:788
LONG DpcSetEventRequest
Definition: ketypes.h:708
ULONG CcFastReadNoWait
Definition: ketypes.h:658
ULONG CcFastReadResourceMiss
Definition: ketypes.h:790
LARGE_INTEGER IoOtherTransferCount
Definition: ketypes.h:674
ULONG KeSystemCalls
Definition: ketypes.h:656
UCHAR Number
Definition: ketypes.h:497
UCHAR PollSlot
Definition: ketypes.h:749
UINT64 CoreProcessorSet
Definition: ketypes.h:827
volatile LONG MmMappedPagesWriteCount
Definition: ketypes.h:693
ULONG MultiThreadProcessorSet
Definition: ketypes.h:537
volatile LONG MmPageFaultCount
Definition: ketypes.h:682
volatile LONG MmDirtyWriteIoCount
Definition: ketypes.h:692
ULONG SecondaryColorMask
Definition: ketypes.h:769
UINT64 CacheProcessorMask[5]
Definition: ketypes.h:825
UCHAR PrcbPad6[2]
Definition: ketypes.h:724
UCHAR PrcbPad2[52]
Definition: ketypes.h:614
KEVENT DpcEvent
Definition: ketypes.h:715
UCHAR InitialApicId
Definition: ketypes.h:705
struct _KNODE * ParentNode
Definition: ketypes.h:760
ULONG CFlushSize
Definition: ketypes.h:619
volatile LONG MmPageReadCount
Definition: ketypes.h:687
UCHAR Reserved
Definition: ketypes.h:498
ULONG KernelTime
Definition: ketypes.h:742
PVOID IpiFrame
Definition: ketypes.h:613
ULONG CcCopyReadWaitMiss
Definition: ketypes.h:791
UCHAR PrcbPad4[120]
Definition: ketypes.h:684
PVOID DpcThread
Definition: ketypes.h:636
volatile ULONG TimerRequest
Definition: ketypes.h:635
ULONG CcLazyWritePages
Definition: ketypes.h:786
UCHAR CpuID
Definition: ketypes.h:502
ULONG ReadySummary
Definition: ketypes.h:735
volatile ULONG IpiFrozen
Definition: ketypes.h:618
ULONG DpcRequestRate
Definition: ketypes.h:693
UCHAR PrcbPad0[88]
Definition: ketypes.h:509
UCHAR LogicalProcessorsPerCore
Definition: ketypes.h:612
UCHAR PrcbPad5[6]
Definition: ketypes.h:647
ULONG CcLazyWriteIos
Definition: ketypes.h:785
KDPC CallDpc
Definition: ketypes.h:719
LONG ThreadWatchDogCount
Definition: ketypes.h:661
ULONG NodeShiftedColor
Definition: ketypes.h:768
LARGE_INTEGER UpdateSignature
Definition: ketypes.h:809
KPROCESSOR_STATE ProcessorState
Definition: ketypes.h:588
volatile LONG MmCacheTransitionCount
Definition: ketypes.h:685
struct _KTHREAD * NpxThread
Definition: ketypes.h:514
LIST_ENTRY DispatcherReadyListHead[32]
Definition: ketypes.h:740
ULONG CcFastMdlReadNotPossible
Definition: ketypes.h:776
LARGE_INTEGER SpareField1
Definition: ketypes.h:711
ULONG CcDataFlushes
Definition: ketypes.h:787
LARGE_INTEGER HyperCallPageVirtual
Definition: ketypes.h:721
UCHAR PrcbPad50
Definition: ketypes.h:706
KTIMER DpcWatchdogTimer
Definition: ketypes.h:811
LARGE_INTEGER IoWriteTransferCount
Definition: ketypes.h:673
volatile ULONG RequestSummary
Definition: ketypes.h:620
ULONG CcLazyWriteHotSpots
Definition: ketypes.h:784
volatile PVOID CurrentPacket[3]
Definition: ketypes.h:615
ULONG CcCopyReadNoWait
Definition: ketypes.h:661
ULONG KeAlignmentFixupCount
Definition: ketypes.h:805
ULONG CcFastReadNotPossible
Definition: ketypes.h:660
UCHAR DebuggerSavedIRQL
Definition: ketypes.h:748
SINGLE_LIST_ENTRY DeferredReadyListHead
Definition: ketypes.h:637
PVOID DpcStack
Definition: ketypes.h:686
ULONG CcFastMdlReadResourceMiss
Definition: ketypes.h:792
ULONG PackageProcessorSet
Definition: ketypes.h:728
ULONG MHz
Definition: ketypes.h:604
SLIST_HEADER InterruptObjectPool
Definition: ketypes.h:819
volatile ULONG TimerHand
Definition: ketypes.h:634
UINT64 PrcbPad70[2]
Definition: ketypes.h:727
KSPECIAL_REGISTERS SpecialRegisters
Definition: ketypes.h:539
CONTEXT ContextFrame
Definition: ketypes.h:540
KDESCRIPTOR Gdtr
Definition: ketypes.h:515
KDESCRIPTOR Idtr
Definition: ketypes.h:516
ULONG DbgEip
Definition: ketypes.h:243
ULONG DbgArgPointer
Definition: ketypes.h:245
ULONG HardwareSegSs
Definition: ketypes.h:272
ULONG SegFs
Definition: ketypes.h:262
ULONG V86Ds
Definition: ketypes.h:274
ULONG Dr6
Definition: ketypes.h:252
ULONG SegGs
Definition: ketypes.h:254
ULONG Edi
Definition: ketypes.h:263
ULONG DbgEbp
Definition: ketypes.h:242
ULONG TempEsp
Definition: ketypes.h:247
ULONG EFlags
Definition: ketypes.h:393
ULONG Ebp
Definition: ketypes.h:266
ULONG Ebx
Definition: ketypes.h:265
ULONG ErrCode
Definition: ketypes.h:267
ULONG Dr0
Definition: ketypes.h:248
ULONG V86Es
Definition: ketypes.h:273
ULONG PreviousPreviousMode
Definition: ketypes.h:260
ULONG HardwareEsp
Definition: ketypes.h:271
ULONG Ecx
Definition: ketypes.h:258
ULONG Dr7
Definition: ketypes.h:253
ULONG Dr1
Definition: ketypes.h:249
ULONG DbgArgMark
Definition: ketypes.h:244
ULONG Eip
Definition: ketypes.h:268
ULONG V86Fs
Definition: ketypes.h:275
ULONG TempSegCs
Definition: ketypes.h:246
ULONG SegDs
Definition: ketypes.h:256
ULONG Dr3
Definition: ketypes.h:251
ULONG SegCs
Definition: ketypes.h:269
ULONG V86Gs
Definition: ketypes.h:276
struct _EXCEPTION_REGISTRATION_RECORD FAR * ExceptionList
Definition: ketypes.h:261
ULONG SegEs
Definition: ketypes.h:255
ULONG Dr2
Definition: ketypes.h:250
ULONG Eax
Definition: ketypes.h:259
ULONG Esi
Definition: ketypes.h:264
ULONG Edx
Definition: ketypes.h:257
Definition: ketypes.h:791
USHORT Fs
Definition: ketypes.h:817
USHORT LDT
Definition: ketypes.h:821
USHORT Backlink
Definition: ketypes.h:792
USHORT Flags
Definition: ketypes.h:823
USHORT Reserved0
Definition: ketypes.h:793
USHORT Ds
Definition: ketypes.h:815
ULONG Eax
Definition: ketypes.h:801
USHORT Reserved5
Definition: ketypes.h:816
ULONG NotUsed1[4]
Definition: ketypes.h:797
ULONG Ecx
Definition: ketypes.h:802
UCHAR IntDirectionMap[IOPM_DIRECTION_MAP_SIZE]
Definition: ketypes.h:826
USHORT Reserved4
Definition: ketypes.h:814
KIIO_ACCESS_MAP IoMaps[IOPM_COUNT]
Definition: ketypes.h:825
ULONG Esi
Definition: ketypes.h:807
ULONG Ebp
Definition: ketypes.h:806
ULONG Esp
Definition: ketypes.h:805
ULONG Edx
Definition: ketypes.h:803
USHORT Reserved3
Definition: ketypes.h:812
USHORT Gs
Definition: ketypes.h:819
USHORT Ss
Definition: ketypes.h:813
USHORT Reserved8
Definition: ketypes.h:822
ULONG Eip
Definition: ketypes.h:799
USHORT Cs
Definition: ketypes.h:811
USHORT Reserved2
Definition: ketypes.h:810
ULONG Ebx
Definition: ketypes.h:804
USHORT IoMapBase
Definition: ketypes.h:824
ULONG Edi
Definition: ketypes.h:808
ULONG Esp0
Definition: ketypes.h:794
ULONG CR3
Definition: ketypes.h:798
USHORT Ss0
Definition: ketypes.h:795
USHORT Es
Definition: ketypes.h:809
USHORT Reserved7
Definition: ketypes.h:820
USHORT Reserved1
Definition: ketypes.h:796
ULONG EFlags
Definition: ketypes.h:800
USHORT Reserved6
Definition: ketypes.h:818
UCHAR DirectionMap[32]
Definition: ketypes.h:911
UCHAR IoMap[8196]
Definition: ketypes.h:912
Definition: compat.h:777
union _LDT_ENTRY::@347 HighWord
UCHAR Flags1
Definition: ketypes.h:310
UCHAR BaseMid
Definition: ketypes.h:309
struct _LDT_ENTRY::@347::@349 Bits
struct _LDT_ENTRY::@347::@348 Bytes
USHORT BaseLow
Definition: ketypes.h:304
ULONG BaseHi
Definition: ketypes.h:325
ULONG Granularity
Definition: ketypes.h:324
ULONG LimitHi
Definition: ketypes.h:320
ULONG Type
Definition: ketypes.h:317
ULONG Dpl
Definition: ketypes.h:318
ULONG Sys
Definition: ketypes.h:321
ULONG Default_Big
Definition: ketypes.h:323
ULONG Reserved_0
Definition: ketypes.h:322
ULONG BaseMid
Definition: ketypes.h:316
UCHAR BaseHi
Definition: ketypes.h:312
ULONG Pres
Definition: ketypes.h:319
UCHAR Flags2
Definition: ketypes.h:311
USHORT LimitLow
Definition: ketypes.h:303
Definition: typedefs.h:120
Definition: ntbasedef.h:628
#define FIELD_OFFSET(t, f)
Definition: typedefs.h:255
uint32_t ULONG
Definition: typedefs.h:59
uint64_t ULONGLONG
Definition: typedefs.h:67
ULONG Ebx
Definition: ketypes.h:306
ULONG Eax
Definition: ketypes.h:305
UINT32 AsUINT32[4]
Definition: ketypes.h:302
ULONG Ecx
Definition: ketypes.h:307
ULONG Edx
Definition: ketypes.h:308
#define FORCEINLINE
Definition: wdftypes.h:67
_Reserved_ PVOID Reserved
Definition: winddi.h:3974
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
@ LockQueueMaximumLock
Definition: ketypes.h:664
unsigned char UCHAR
Definition: xmlstorage.h:181
char CHAR
Definition: xmlstorage.h:175