[CONSRV]
[reactos.git] / include / reactos / ks386.inc
1
2 /* Pointer size */
3 SizeofPointer = 0x4
4
5 /* Breakpoints */
6 BREAKPOINT_BREAK = 0x0
7 BREAKPOINT_PRINT = 0x1
8 BREAKPOINT_PROMPT = 0x2
9 BREAKPOINT_LOAD_SYMBOLS = 0x3
10 BREAKPOINT_UNLOAD_SYMBOLS = 0x4
11 BREAKPOINT_COMMAND_STRING = 0x5
12
13 /* Context Frame Flags */
14 CONTEXT_FULL = 0x10007
15 CONTEXT_CONTROL = 0x10001
16 CONTEXT_INTEGER = 0x10002
17 CONTEXT_SEGMENTS = 0x10004
18 CONTEXT_FLOATING_POINT = 0x10008
19 CONTEXT_DEBUG_REGISTERS = 0x10010
20
21 /* Exception flags */
22 EXCEPTION_NONCONTINUABLE = 0x1
23 EXCEPTION_UNWINDING = 0x2
24 EXCEPTION_EXIT_UNWIND = 0x4
25 EXCEPTION_STACK_INVALID = 0x8
26 EXCEPTION_NESTED_CALL = 0x10
27 EXCEPTION_TARGET_UNWIND = 0x20
28 EXCEPTION_COLLIDED_UNWIND = 0x20
29 EXCEPTION_UNWIND = 0x6
30 EXCEPTION_EXECUTE_HANDLER = 0x1
31 EXCEPTION_CONTINUE_SEARCH = 0x0
32 EXCEPTION_CONTINUE_EXECUTION = 0xffffffff
33 EXCEPTION_CHAIN_END = 0xffffffff
34
35 /* Exception types */
36 ExceptionContinueExecution = 0x0
37 ExceptionContinueSearch = 0x1
38 ExceptionNestedException = 0x2
39 ExceptionCollidedUnwind = 0x3
40
41 /* Lock Queue */
42 LOCK_QUEUE_WAIT = 0x1
43 LOCK_QUEUE_OWNER = 0x2
44 LockQueueDispatcherLock = 0x0
45
46 /* Process states */
47 ProcessInMemory = 0x0
48 ProcessOutOfMemory = 0x1
49 ProcessInTransition = 0x2
50
51 /* Processor mode */
52 KernelMode = 0x0
53 UserMode = 0x1
54
55 /* Status codes */
56 STATUS_ACCESS_VIOLATION = 0xc0000005
57 STATUS_ASSERTION_FAILURE = 0xc0000420
58 STATUS_ARRAY_BOUNDS_EXCEEDED = 0xc000008c
59 STATUS_BAD_COMPRESSION_BUFFER = 0xc0000242
60 STATUS_BREAKPOINT = 0x80000003
61 STATUS_CALLBACK_POP_STACK = 0xc0000423
62 STATUS_DATATYPE_MISALIGNMENT = 0x80000002
63 STATUS_FLOAT_DENORMAL_OPERAND = 0xc000008d
64 STATUS_FLOAT_DIVIDE_BY_ZERO = 0xc000008e
65 STATUS_FLOAT_INEXACT_RESULT = 0xc000008f
66 STATUS_FLOAT_INVALID_OPERATION = 0xc0000090
67 STATUS_FLOAT_OVERFLOW = 0xc0000091
68 STATUS_FLOAT_STACK_CHECK = 0xc0000092
69 STATUS_FLOAT_UNDERFLOW = 0xc0000093
70 STATUS_FLOAT_MULTIPLE_FAULTS = 0xc00002b4
71 STATUS_FLOAT_MULTIPLE_TRAPS = 0xc00002b5
72 STATUS_GUARD_PAGE_VIOLATION = 0x80000001
73 STATUS_ILLEGAL_FLOAT_CONTEXT = 0xc000014a
74 STATUS_ILLEGAL_INSTRUCTION = 0xc000001d
75 STATUS_INSTRUCTION_MISALIGNMENT = 0xc00000aa
76 STATUS_INVALID_HANDLE = 0xc0000008
77 STATUS_INVALID_LOCK_SEQUENCE = 0xc000001e
78 STATUS_INVALID_OWNER = 0xc000005a
79 STATUS_INVALID_PARAMETER = 0xc000000d
80 STATUS_INVALID_PARAMETER_1 = 0xc00000ef
81 STATUS_INVALID_SYSTEM_SERVICE = 0xc000001c
82 STATUS_INTEGER_DIVIDE_BY_ZERO = 0xc0000094
83 STATUS_INTEGER_OVERFLOW = 0xc0000095
84 STATUS_IN_PAGE_ERROR = 0xc0000006
85 STATUS_KERNEL_APC = 0x100
86 STATUS_LONGJUMP = 0x80000026
87 STATUS_NO_CALLBACK_ACTIVE = 0xc0000258
88 STATUS_NO_EVENT_PAIR = 0xc000014e
89 STATUS_PRIVILEGED_INSTRUCTION = 0xc0000096
90 STATUS_SINGLE_STEP = 0x80000004
91 STATUS_STACK_BUFFER_OVERRUN = 0xc0000409
92 STATUS_STACK_OVERFLOW = 0xc00000fd
93 STATUS_SUCCESS = 0x0
94 STATUS_THREAD_IS_TERMINATING = 0xc000004b
95 STATUS_TIMEOUT = 0x102
96 STATUS_UNWIND = 0xc0000027
97 STATUS_UNWIND_CONSOLIDATE = 0x80000029
98 STATUS_USER_APC = 0xc0
99 STATUS_WAKE_SYSTEM_DEBUGGER = 0x80000007
100
101 /* TLS defines */
102 TLS_MINIMUM_AVAILABLE = 0x40
103 TLS_EXPANSION_SLOTS = 0x400
104
105 /* Thread states */
106 Initialized = 0x0
107 Ready = 0x1
108 Running = 0x2
109 Standby = 0x3
110 Terminated = 0x4
111 Waiting = 0x5
112
113 /* Wait type / reason */
114 WrExecutive = 0x7
115 WrMutex = 0x1d
116 WrDispatchInt = 0x1f
117 WrQuantumEnd = 0x1e
118 WrEventPair = 0xe
119 WaitAny = 0x1
120 WaitAll = 0x0
121
122 /* Interrupt object types */
123 InLevelSensitive = 0x0
124 InLatched = 0x1
125
126 /* Bug Check Codes */
127 APC_INDEX_MISMATCH = 0x1
128 INVALID_AFFINITY_SET = 0x3
129 INVALID_DATA_ACCESS_TRAP = 0x4
130 IRQL_NOT_GREATER_OR_EQUAL = 0x9
131 IRQL_NOT_LESS_OR_EQUAL = 0xa
132 NO_USER_MODE_CONTEXT = 0xe
133 SPIN_LOCK_ALREADY_OWNED = 0xf
134 SPIN_LOCK_NOT_OWNED = 0x10
135 THREAD_NOT_MUTEX_OWNER = 0x11
136 TRAP_CAUSE_UNKNOWN = 0x12
137 KMODE_EXCEPTION_NOT_HANDLED = 0x1e
138 KERNEL_APC_PENDING_DURING_EXIT = 0x20
139 PANIC_STACK_SWITCH = 0x2b
140 DATA_BUS_ERROR = 0x2e
141 INSTRUCTION_BUS_ERROR = 0x2f
142 SYSTEM_EXIT_OWNED_MUTEX = 0x39
143 PAGE_FAULT_WITH_INTERRUPTS_OFF = 0x49
144 IRQL_GT_ZERO_AT_SYSTEM_SERVICE = 0x4a
145 DATA_COHERENCY_EXCEPTION = 0x55
146 INSTRUCTION_COHERENCY_EXCEPTION = 0x56
147 HAL1_INITIALIZATION_FAILED = 0x61
148 UNEXPECTED_KERNEL_MODE_TRAP = 0x7f
149 NMI_HARDWARE_FAILURE = 0x80
150 SPIN_LOCK_INIT_FAILURE = 0x81
151 ATTEMPTED_SWITCH_FROM_DPC = 0xb8
152
153 /* IRQL */
154 PASSIVE_LEVEL = 0x0
155 APC_LEVEL = 0x1
156 DISPATCH_LEVEL = 0x2
157 CLOCK1_LEVEL = 0x1c
158 CLOCK2_LEVEL = 0x1c
159 IPI_LEVEL = 0x1d
160 POWER_LEVEL = 0x1e
161 PROFILE_LEVEL = 0x1b
162 HIGH_LEVEL = 0x1f
163 #ifdef NT_UP
164 SYNCH_LEVEL = 0x2
165 #else
166 SYNCH_LEVEL = 0x1b
167 #endif
168
169 /* Stack sizes */
170 KERNEL_STACK_SIZE = 0x3000
171 KERNEL_LARGE_STACK_SIZE = 0xf000
172 KERNEL_LARGE_STACK_COMMIT = 0x3000
173
174 /* Miscellaneous Definitions */
175 LOW_REALTIME_PRIORITY = 0x10
176 CLOCK_QUANTUM_DECREMENT = 0x3
177 WAIT_QUANTUM_DECREMENT = 0x1
178 MAXIMUM_PROCESSORS = 0x20
179 INITIAL_STALL_COUNT = 0x64
180 KI_EXCEPTION_ACCESS_VIOLATION = 0x10000004
181 Executive = 0x0
182 FALSE = 0x0
183 TRUE = 0x1
184 DBG_STATUS_CONTROL_C = 0x1
185 USER_SHARED_DATA = 0xffdf0000
186 PAGE_SIZE = 0x1000
187 MAXIMUM_IDTVECTOR = 0xff
188 PRIMARY_VECTOR_BASE = 0x30
189 RPL_MASK = 0x3
190 MODE_MASK = 0x1
191 NUMBER_SERVICE_TABLES = 0x2
192 SERVICE_NUMBER_MASK = 0xfff
193 SERVICE_TABLE_SHIFT = 0x8
194 SERVICE_TABLE_MASK = 0x10
195 SERVICE_TABLE_TEST = 0x10
196
197 /* KAPC */
198 ApType = 0x0
199 ApSize = 0x2
200 ApThread = 0x8
201 ApApcListEntry = 0xc
202 ApKernelRoutine = 0x14
203 ApRundownRoutine = 0x18
204 ApNormalRoutine = 0x1c
205 ApNormalContext = 0x20
206 ApSystemArgument1 = 0x24
207 ApSystemArgument2 = 0x28
208 ApApcStateIndex = 0x2c
209 ApApcMode = 0x2d
210 ApInserted = 0x2e
211 ApcObjectLength = 0x30
212
213 /* KAPC_STATE */
214 AsApcListHead = 0x0
215 AsProcess = 0x10
216 AsKernelApcInProgress = 0x14
217 AsKernelApcPending = 0x15
218 AsUserApcPending = 0x16
219
220 /* CLIENT_ID */
221 CidUniqueProcess = 0x0
222 CidUniqueThread = 0x4
223
224 /* RTL_CRITICAL_SECTION */
225 CsDebugInfo = 0x0
226 CsLockCount = 0x4
227 CsRecursionCount = 0x8
228 CsOwningThread = 0xc
229 CsLockSemaphore = 0x10
230 CsSpinCount = 0x14
231
232 /* RTL_CRITICAL_SECTION_DEBUG */
233 CsType = 0x0
234 CsCreatorBackTraceIndex = 0x2
235 CsCriticalSection = 0x4
236 CsProcessLocksList = 0x8
237 CsEntryCount = 0x10
238 CsContentionCount = 0x14
239
240 /* KDEVICE_QUEUE_ENTRY */
241 DeDeviceListEntry = 0x0
242 DeSortKey = 0x8
243 DeInserted = 0xc
244 DeviceQueueEntryLength = 0x10
245
246 /* KDPC */
247 DpType = 0x0
248 DpImportance = 0x1
249 DpNumber = 0x2
250 DpDpcListEntry = 0x4
251 DpDeferredRoutine = 0xc
252 DpDeferredContext = 0x10
253 DpSystemArgument1 = 0x14
254 DpSystemArgument2 = 0x18
255 DpDpcData = 0x1c
256 DpcObjectLength = 0x20
257
258 /* KDEVICE_QUEUE */
259 DvType = 0x0
260 DvSize = 0x2
261 DvDeviceListHead = 0x4
262 DvSpinLock = 0xc
263 DvBusy = 0x10
264 DeviceQueueObjectLength = 0x14
265
266 /* EXCEPTION_RECORD */
267 ErExceptionCode = 0x0
268 ErExceptionFlags = 0x4
269 ErExceptionRecord = 0x8
270 ErExceptionAddress = 0xc
271 ErNumberParameters = 0x10
272 ErExceptionInformation = 0x14
273 ExceptionRecordLength = 0x50
274 EXCEPTION_RECORD_LENGTH = 0x50
275
276 /* EPROCESS */
277 EpDebugPort = 0xcc
278 EpVdmObjects = 0x144
279 ExecutiveProcessObjectLength = 0x278
280
281 /* KEVENT */
282 EvType = 0x0
283 EvSize = 0x2
284 EvSignalState = 0x4
285 EvWaitListHead = 0x8
286 EventObjectLength = 0x10
287
288 /* FAST_MUTEX */
289 FmCount = 0x0
290 FmOwner = 0x4
291 FmContention = 0x8
292 FmOldIrql = 0x1c
293
294 /* KINTERRUPT */
295 InType = 0x0
296 InSize = 0x2
297 InInterruptListEntry = 0x4
298 InServiceRoutine = 0xc
299 InServiceContext = 0x10
300 InSpinLock = 0x14
301 InTickCount = 0x18
302 InActualLock = 0x1c
303 InDispatchAddress = 0x20
304 InVector = 0x24
305 InIrql = 0x28
306 InSynchronizeIrql = 0x29
307 InFloatingSave = 0x2a
308 InConnected = 0x2b
309 InNumber = 0x2c
310 InShareVector = 0x2d
311 InMode = 0x30
312 InServiceCount = 0x34
313 InDispatchCount = 0x38
314 InDispatchCode = 0x3c
315 InterruptObjectLength = 0x1e4
316
317 /* IO_STATUS_BLOCK */
318 IoStatus = 0x0
319 IoPointer = 0x0
320 IoInformation = 0x4
321
322 /* KNODE */
323 KnPfnDereferenceSListHead = 0x8
324 KnProcessorMask = 0x10
325 KnColor = 0x14
326 KnSeed = 0x18
327 KnNodeNumber = 0x19
328 KnFlags = 0x1a
329 knMmShiftedColor = 0x1e
330 KnFreeCount = 0x22
331 KnPfnDeferredList = 0x2a
332 KNODE_SIZE = 0x2e
333
334 /* KSPIN_LOCK_QUEUE */
335 LqNext = 0x0
336 LqLock = 0x4
337
338 /* KLOCK_QUEUE_HANDLE */
339 LqhNext = 0x0
340 LqhLock = 0x4
341 LqhOldIrql = 0x8
342 LOCK_QUEUE_HEADER_SIZE = 0xc
343
344 /* LARGE_INTEGER */
345 LiLowPart = 0x0
346 LiHighPart = 0x4
347
348 /* LIST_ENTRY */
349 LsFlink = 0x0
350 LsBlink = 0x4
351
352 /* PEB */
353 PeKernelCallbackTable = 0x2c
354 ProcessEnvironmentBlockLength = 0x230
355
356 /* KPROFILE */
357 PfType = 0x0
358 PfSize = 0x2
359 PfProfileListEntry = 0x4
360 PfProcess = 0xc
361 PfRangeBase = 0x10
362 PfRangeLimit = 0x14
363 PfBucketShift = 0x18
364 PfBuffer = 0x1c
365 PfSegment = 0x20
366 PfAffinity = 0x24
367 PfSource = 0x28
368 PfStarted = 0x2c
369 ProfileObjectLength = 0x30
370
371 /* PORT_MESSAGE */
372 PmLength = 0x0
373 PmZeroInit = 0x4
374 PmClientId = 0x8
375 PmProcess = 0x8
376 PmThread = 0xc
377 PmMessageId = 0x10
378 PmClientViewSize = 0x14
379 PortMessageLength = 0x18
380
381 /* KPROCESS */
382 PrType = 0x0
383 PrSize = 0x2
384 PrSignalState = 0x4
385 PrProfileListHead = 0x10
386 PrDirectoryTableBase = 0x18
387 PrLdtDescriptor = 0x20
388 PrIopmOffset = 0x30
389 PrInt21Descriptor = 0x28
390 PrVdmTrapcHandler = 0x4c
391 PrFlags = 0x6b
392 PrActiveProcessors = 0x34
393 PrKernelTime = 0x38
394 PrUserTime = 0x3c
395 PrReadyListHead = 0x40
396 PrSwapListEntry = 0x48
397 PrThreadListHead = 0x50
398 PrProcessLock = 0x58
399 PrAffinity = 0x5c
400 PrProcessFlags = 0x60
401 PrBasePriority = 0x64
402 PrQuantumReset = 0x65
403 PrState = 0x66
404 PrStackCount = 0x6c
405 KernelProcessObjectLength = 0x78
406
407 /* KQUEUE */
408 QuType = 0x0
409 QuSize = 0x2
410 QuSignalState = 0x4
411 QuEntryListHead = 0x10
412 QuCurrentCount = 0x18
413 QuMaximumCount = 0x1c
414 QuThreadListHead = 0x20
415 QueueObjectLength = 0x28
416
417 /* STRING */
418 StrLength = 0x0
419 StrMaximumLength = 0x2
420 StrBuffer = 0x4
421
422 /* TEB */
423 TeCmTeb = 0x0
424 TeExceptionList = 0x0
425 TeStackBase = 0x4
426 TeStackLimit = 0x8
427 TeFiberData = 0x10
428 TeSelf = 0x18
429 TeEnvironmentPointer = 0x1c
430 TeClientId = 0x20
431 TeActiveRpcHandle = 0x28
432 TeThreadLocalStoragePointer = 0x2c
433 TeCountOfOwnedCriticalSections = 0x38
434 TePeb = 0x30
435 TeCsrClientThread = 0x3c
436 TeWOW32Reserved = 0xc0
437 TeExceptionCode = 0x1a4
438 TeActivationContextStackPointer = 0x1a8
439 TeGdiClientPID = 0x6c0
440 TeGdiClientTID = 0x6c4
441 TeGdiThreadLocalInfo = 0x6c8
442 TeglDispatchTable = 0x7c4
443 TeglReserved1 = 0xb68
444 TeglReserved2 = 0xbdc
445 TeglSectionInfo = 0xbe0
446 TeglSection = 0xbe4
447 TeglTable = 0xbe8
448 TeglCurrentRC = 0xbec
449 TeglContext = 0xbf0
450 TeDeallocationStack = 0xe0c
451 TeTlsSlots = 0xe10
452 TeTlsExpansionSlots = 0xf94
453 TeLastErrorValue = 0x34
454 TeVdm = 0xf18
455 TeInstrumentation = 0xf2c
456 TeGdiBatchCount = 0xf70
457 TeGuaranteedStackBytes = 0xf78
458 TeFlsData = 0xfb4
459 TeSafeThunkCall = 0xfb8
460 ThreadEnvironmentBlockLength = 0xfbc
461
462 /* TIME_FIELDS */
463 TfSecond = 0xa
464 TfMinute = 0x8
465 TfHour = 0x6
466 TfWeekday = 0xe
467 TfDay = 0x4
468 TfMonth = 0x2
469 TfYear = 0x0
470 TfMilliseconds = 0xc
471
472 /* KTHREAD */
473 ThType = 0x0
474 ThSize = 0x2
475 ThLock = 0x0
476 ThDebugActive = 0x3
477 ThSignalState = 0x4
478 ThInitialStack = 0x18
479 ThStackLimit = 0x1c
480 ThKernelStack = 0x20
481 ThThreadLock = 0x24
482 ThAlerted = 0x5e
483 ThApcState = 0x28
484 ThPriority = 0x5b
485 ThSwapBusy = 0x5d
486 ThNextProcessor = 0x40
487 ThDeferredProcessor = 0x41
488 ThApcQueueLock = 0x44
489 ThContextSwitches = 0x48
490 ThState = 0x4c
491 ThNpxState = 0x4d
492 ThWaitIrql = 0x4e
493 ThWaitMode = 0x4f
494 ThWaitStatus = 0x50
495 ThWaitBlockList = 0x54
496 ThGateObject = 0x54
497 ThWaitListEntry = 0x60
498 ThSwapListEntry = 0x60
499 ThQueue = 0x68
500 ThWaitTime = 0x6c
501 ThCombinedApcDisable = 0x70
502 ThKernelApcDisable = 0x70
503 ThSpecialApcDisable = 0x72
504 ThTeb = 0x74
505 ThTimer = 0x78
506 ThThreadFlags = 0xa0
507 ThServiceTable = 0x118
508 ThWaitBlock = 0xa8
509 ThResourceIndex = 0xef
510 ThQueueListEntry = 0x108
511 ThTrapFrame = 0x110
512 ThCallbackStack = 0x114
513 ThApcStateIndex = 0x11c
514 ThIdealProcessor = 0x11d
515 ThBasePriority = 0x121
516 ThPriorityDecrement = 0x122
517 ThAdjustReason = 0x42
518 ThAdjustIncrement = 0x43
519 ThPreviousMode = 0xd7
520 ThSaturation = 0x123
521 ThFreezeCount = 0x14f
522 ThUserAffinity = 0x124
523 ThProcess = 0x128
524 ThAffinity = 0x12c
525 ThUserIdealProcessor = 0x151
526 ThApcStatePointer = 0x130
527 ThSavedApcState = 0x138
528 ThWaitReason = 0x5a
529 ThSuspendCount = 0x150
530 ThWin32Thread = 0x154
531 ThStackBase = 0x158
532 ThSuspendApc = 0x15c
533 ThPowerState = 0x18b
534 ThKernelTime = 0x160
535 ThLegoData = 0x184
536 ThLargeStack = 0x107
537 ThUserTime = 0x18c
538 ThSuspendSemaphore = 0x190
539 ThSListFaultCount = 0x1a4
540 ThThreadListEntry = 0x1a8
541 ThMutantListHead = 0x10
542 ThSListFaultAddress = 0x1b0
543 KernelThreadObjectLength = 0x1b8
544 ExecutiveThreadObjectLength = 0x250
545
546 /* KTIMER */
547 TiType = 0x0
548 TiSize = 0x2
549 TiInserted = 0x3
550 TiSignalState = 0x4
551 TiDueTime = 0x10
552 TiTimerListEntry = 0x18
553 TiDpc = 0x20
554 TiPeriod = 0x24
555 TimerObjectLength = 0x28
556
557 /* TIME */
558
559 /* KUSER_SHARED_DATA */
560 UsTickCountMultiplier = 0x4
561 UsInterruptTime = 0x8
562 UsSystemTime = 0x14
563 UsTimeZoneBias = 0x20
564 UsImageNumberLow = 0x2c
565 UsImageNumberHigh = 0x2e
566 UsNtSystemRoot = 0x30
567 UsMaxStackTraceDepth = 0x238
568 UsCryptoExponent = 0x23c
569 UsTimeZoneId = 0x240
570 UsLargePageMinimum = 0x244
571 UsReserved2 = 0x248
572 UsNtProductType = 0x264
573 UsProductTypeIsValid = 0x268
574 UsNtMajorVersion = 0x26c
575 UsNtMinorVersion = 0x270
576 UsProcessorFeatures = 0x274
577 UsReserved1 = 0x2b4
578 UsReserved3 = 0x2b8
579 UsTimeSlip = 0x2bc
580 UsAlternativeArchitecture = 0x2c0
581 UsSystemExpirationDate = 0x2c8
582 UsSuiteMask = 0x2d0
583 UsKdDebuggerEnabled = 0x2d4
584 UsActiveConsoleId = 0x2d8
585 UsDismountCount = 0x2dc
586 UsComPlusPackage = 0x2e0
587 UsLastSystemRITEventTickCount = 0x2e4
588 UsNumberOfPhysicalPages = 0x2e8
589 UsSafeBootMode = 0x2ec
590 UsTestRetInstruction = 0x2f8
591 UsSystemCall = 0x300
592 UsSystemCallReturn = 0x304
593 UsSystemCallPad = 0x308
594 UsTickCount = 0x320
595 UsTickCountQuad = 0x320
596 UsWow64SharedInformation = 0x340
597
598 /* KWAIT_BLOCK */
599 WbWaitListEntry = 0x0
600 WbThread = 0x8
601 WbObject = 0xc
602 WbNextWaitBlock = 0x10
603 WbWaitKey = 0x14
604 WbWaitType = 0x16
605
606 /* CR0 flags */
607 CR0_PE = 0x1
608 CR0_MP = 0x2
609 CR0_EM = 0x4
610 CR0_TS = 0x8
611 CR0_ET = 0x10
612 CR0_NE = 0x20
613 CR0_WP = 0x10000
614 CR0_AM = 0x40000
615 CR0_NW = 0x20000000
616 CR0_CD = 0x40000000
617 CR0_PG = 0x80000000
618
619 /* CR4 flags */
620 CR4_VME = 0x1
621 CR4_PVI = 0x2
622 CR4_TSD = 0x4
623 CR4_DE = 0x8
624 CR4_PSE = 0x10
625 CR4_PAE = 0x20
626 CR4_MCE = 0x40
627 CR4_PGE = 0x80
628 CR4_FXSR = 0x200
629 CR4_XMMEXCPT = 0x400
630
631 /* KeFeatureBits flags */
632 KF_RDTSC = 0x2
633 KF_CR4 = 0x4
634 KF_GLOBAL_PAGE = 0x10
635 KF_LARGE_PAGE = 0x20
636 KF_CMPXCHG8B = 0x80
637 KF_FAST_SYSCALL = 0x1000
638 KF_V86_VIS = 0x1
639
640 /* Machine type definitions */
641 MACHINE_TYPE_ISA = 0x0
642 MACHINE_TYPE_EISA = 0x1
643 MACHINE_TYPE_MCA = 0x2
644
645 /* EFLAGS */
646 EFLAGS_TF = 0x100
647 EFLAGS_INTERRUPT_MASK = 0x200
648 EFLAGS_V86_MASK = 0x20000
649 EFLAGS_ALIGN_CHECK = 0x40000
650 EFLAGS_VIF = 0x80000
651 EFLAGS_VIP = 0x100000
652 EFLAGS_USER_SANITIZE = 0x3f4dd7
653
654 /* KDGT selectors */
655 KGDT_R3_DATA = 0x20
656 KGDT_R3_CODE = 0x18
657 KGDT_R0_CODE = 0x8
658 KGDT_R0_DATA = 0x10
659 KGDT_R0_PCR = 0x30
660 KGDT_TSS = 0x28
661 KGDT_R3_TEB = 0x38
662 KGDT_DF_TSS = 0x50
663 KGDT_NMI_TSS = 0x58
664 KGDT_LDT = 0x48
665 NPX_STATE_NOT_LOADED = 0xa
666 NPX_STATE_LOADED = 0x0
667 PF_XMMI_INSTRUCTIONS_AVAILABLE = 0x6
668 EFLAG_SELECT = 0xc000
669
670 /* CONTEXT */
671 CsContextFlags = 0x0
672 CsDr0 = 0x4
673 CsDr1 = 0x8
674 CsDr2 = 0xc
675 CsDr3 = 0x10
676 CsDr6 = 0x14
677 CsDr7 = 0x18
678 CsFloatSave = 0x1c
679 CsSegGs = 0x8c
680 CsSegFs = 0x90
681 CsSegEs = 0x94
682 CsSegDs = 0x98
683 CsEdi = 0x9c
684 CsEsi = 0xa0
685 CsEbx = 0xa4
686 CsEdx = 0xa8
687 CsEcx = 0xac
688 CsEax = 0xb0
689 CsEbp = 0xb4
690 CsEip = 0xb8
691 CsSegCs = 0xbc
692 CsEflags = 0xc0
693 CsEsp = 0xc4
694 CsSegSs = 0xc8
695 CsExtendedRegisters = 0xcc
696 ContextFrameLength = 0x2cc
697 CONTEXT_LENGTH = 0x2cc
698
699 /* KGDTENTRY */
700 KgdtBaseLow = 0x2
701 KgdtBaseMid = 0x4
702 KgdtBaseHi = 0x7
703 KgdtLimitHi = 0x6
704 KgdtLimitLow = 0x0
705
706 /* KTRAP_FRAME */
707 TsExceptionList = 0x4c
708 TsPreviousPreviousMode = 0x48
709 TsSegGs = 0x30
710 TsSegFs = 0x50
711 TsSegEs = 0x34
712 TsSegDs = 0x38
713 TsEdi = 0x54
714 TsEsi = 0x58
715 TsEbp = 0x60
716 TsEbx = 0x5c
717 TsEdx = 0x3c
718 TsEcx = 0x40
719 TsEax = 0x44
720 TsErrCode = 0x64
721 TsEip = 0x68
722 TsSegCs = 0x6c
723 TsEflags = 0x70
724 TsHardwareEsp = 0x74
725 TsHardwareSegSs = 0x78
726 TsTempSegCs = 0x10
727 TsTempEsp = 0x14
728 TsDbgEbp = 0x0
729 TsDbgEip = 0x4
730 TsDbgArgMark = 0x8
731 TsDbgArgPointer = 0xc
732 TsDr0 = 0x18
733 TsDr1 = 0x1c
734 TsDr2 = 0x20
735 TsDr3 = 0x24
736 TsDr6 = 0x28
737 TsDr7 = 0x2c
738 TsV86Es = 0x7c
739 TsV86Ds = 0x80
740 TsV86Fs = 0x84
741 TsV86Gs = 0x88
742 KTRAP_FRAME_LENGTH = 0x8c
743 KTRAP_FRAME_ALIGN = 0x4
744 FRAME_EDITED = 0xfff8
745
746 /* KTSS */
747 TssEsp0 = 0x4
748 TssCR3 = 0x1c
749 TssEip = 0x20
750 TssEFlags = 0x24
751 TssEax = 0x28
752 TssEbx = 0x34
753 TssEcx = 0x2c
754 TssEdx = 0x30
755 TssEsp = 0x38
756 TssEbp = 0x3c
757 TssEsi = 0x40
758 TssEdi = 0x44
759 TssEs = 0x48
760 TssCs = 0x4c
761 TssSs = 0x50
762 TssDs = 0x54
763 TssFs = 0x58
764 TssGs = 0x5c
765 TssLDT = 0x60
766 TssIoMapBase = 0x66
767 TssIoMaps = 0x68
768 TssLength = 0x20ac
769
770 /* KPCR */
771 KPCR_EXCEPTION_LIST = 0x0
772 KPCR_PERF_GLOBAL_GROUP_MASK = 0x8
773 KPCR_CONTEXT_SWITCHES = 0x10
774 KPCR_TEB = 0x18
775 KPCR_SELF = 0x1c
776 KPCR_PRCB = 0x20
777 KPCR_IDT = 0x38
778 KPCR_GDT = 0x3c
779 KPCR_TSS = 0x40
780 KPCR_STALL_SCALE_FACTOR = 0x4c
781 KPCR_PRCB_DATA = 0x120
782 KPCR_CURRENT_THREAD = 0x124
783 KPCR_PRCB_NEXT_THREAD = 0x128
784 KPCR_PRCB_DPC_QUEUE_DEPTH = 0xa4c
785 KPCR_PRCB_DPC_STACK = 0xa68
786 KPCR_PRCB_MAXIMUM_DPC_QUEUE_DEPTH = 0xa6c
787 KPCR_PRCB_DPC_ROUTINE_ACTIVE = 0xa7a
788 KPCR_PRCB_TIMER_REQUEST = 0xa88
789 KPCR_PRCB_QUANTUM_END = 0xaa1
790 KPCR_PRCB_DEFERRED_READY_LIST_HEAD = 0xc10
791 KPCR_PRCB_POWER_STATE_IDLE_FUNCTION = 0xec0
792
793 /* KTRAP_FRAME */
794 KTRAP_FRAME_DEBUGEBP = 0x0
795 KTRAP_FRAME_DEBUGEIP = 0x4
796 KTRAP_FRAME_TEMPESP = 0x14
797 KTRAP_FRAME_DR0 = 0x18
798 KTRAP_FRAME_DR1 = 0x1c
799 KTRAP_FRAME_DR2 = 0x20
800 KTRAP_FRAME_DR3 = 0x24
801 KTRAP_FRAME_DR6 = 0x28
802 KTRAP_FRAME_DR7 = 0x2c
803 KTRAP_FRAME_GS = 0x30
804 KTRAP_FRAME_ES = 0x34
805 KTRAP_FRAME_DS = 0x38
806 KTRAP_FRAME_EDX = 0x3c
807 KTRAP_FRAME_ECX = 0x40
808 KTRAP_FRAME_EAX = 0x44
809 KTRAP_FRAME_PREVIOUS_MODE = 0x48
810 KTRAP_FRAME_EXCEPTION_LIST = 0x4c
811 KTRAP_FRAME_FS = 0x50
812 KTRAP_FRAME_EDI = 0x54
813 KTRAP_FRAME_ESI = 0x58
814 KTRAP_FRAME_EBX = 0x5c
815 KTRAP_FRAME_EBP = 0x60
816 KTRAP_FRAME_ERROR_CODE = 0x64
817 KTRAP_FRAME_EIP = 0x68
818 KTRAP_FRAME_EFLAGS = 0x70
819 KTRAP_FRAME_ESP = 0x74
820 KTRAP_FRAME_SS = 0x78
821 KTRAP_FRAME_V86_ES = 0x7c
822 KTRAP_FRAME_V86_DS = 0x80
823 KTRAP_FRAME_V86_FS = 0x84
824 KTRAP_FRAME_V86_GS = 0x88
825 KTRAP_FRAME_SIZE = 0x8c
826 FRAME_EDITED = 0xfff8
827
828 /* CONTEXT */
829 CONTEXT_FLAGS = 0x0
830 CONTEXT_SEGGS = 0x8c
831 CONTEXT_SEGFS = 0x90
832 CONTEXT_SEGES = 0x94
833 CONTEXT_SEGDS = 0x98
834 CONTEXT_EDI = 0x9c
835 CONTEXT_ESI = 0xa0
836 CONTEXT_EBX = 0xa4
837 CONTEXT_EDX = 0xa8
838 CONTEXT_ECX = 0xac
839 CONTEXT_EAX = 0xb0
840 CONTEXT_EBP = 0xb4
841 CONTEXT_EIP = 0xb8
842 CONTEXT_SEGCS = 0xbc
843 CONTEXT_EFLAGS = 0xc0
844 CONTEXT_ESP = 0xc4
845 CONTEXT_SEGSS = 0xc8
846 CONTEXT_FRAME_LENGTH = 0x2cc
847
848 /* FIBER */
849 FIBER_PARAMETER = 0x0
850 FIBER_EXCEPTION_LIST = 0x4
851 FIBER_STACK_BASE = 0x8
852 FIBER_STACK_LIMIT = 0xc
853 FIBER_DEALLOCATION_STACK = 0x10
854 FIBER_CONTEXT = 0x14
855 FIBER_CONTEXT_FLAGS = 0x14
856 FIBER_CONTEXT_EAX = 0xc4
857 FIBER_CONTEXT_EBX = 0xb8
858 FIBER_CONTEXT_ECX = 0xc0
859 FIBER_CONTEXT_EDX = 0xbc
860 FIBER_CONTEXT_ESI = 0xb4
861 FIBER_CONTEXT_EDI = 0xb0
862 FIBER_CONTEXT_EBP = 0xc8
863 FIBER_CONTEXT_EIP = 0xcc
864 FIBER_CONTEXT_ESP = 0xd8
865 FIBER_CONTEXT_DR6 = 0x28
866 FIBER_CONTEXT_FLOAT_SAVE_CONTROL_WORD = 0x30
867 FIBER_CONTEXT_FLOAT_SAVE_STATUS_WORD = 0x34
868 FIBER_CONTEXT_FLOAT_SAVE_TAG_WORD = 0x38
869 FIBER_GUARANTEED_STACK_BYTES = 0x2e0
870 FIBER_FLS_DATA = 0x2e4
871 FIBER_ACTIVATION_CONTEXT_STACK = 0x2e8
872
873 /* KTSS */
874 KTSS_IOMAPBASE = 0x66
875 KTSS_ESP0 = 0x4
876
877 /* EXCEPTION_RECORD */
878 EXCEPTION_RECORD_EXCEPTION_CODE = 0x0
879 EXCEPTION_RECORD_EXCEPTION_FLAGS = 0x4
880 EXCEPTION_RECORD_EXCEPTION_RECORD = 0x8
881 EXCEPTION_RECORD_EXCEPTION_ADDRESS = 0xc
882 EXCEPTION_RECORD_NUMBER_PARAMETERS = 0x10
883 EXCEPTION_RECORD_EXCEPTION_ADDRESS = 0xc
884 SIZEOF_EXCEPTION_RECORD = 0x50
885 EXCEPTION_RECORD_LENGTH = 0x50
886
887 /* KTHREAD */
888 KTHREAD_DEBUG_ACTIVE = 0x3
889 KTHREAD_INITIAL_STACK = 0x18
890 KTHREAD_STACK_LIMIT = 0x1c
891 KTHREAD_TEB = 0x74
892 KTHREAD_KERNEL_STACK = 0x20
893 KTHREAD_APCSTATE_PROCESS = 0x38
894 KTHREAD_PENDING_KERNEL_APC = 0x3d
895 KTHREAD_CONTEXT_SWITCHES = 0x48
896 KTHREAD_STATE_ = 0x4c
897 KTHREAD_NPX_STATE = 0x4d
898 KTHREAD_WAIT_IRQL = 0x4e
899 KTHREAD_WAIT_REASON = 0x5a
900 KTHREAD_COMBINED_APC_DISABLE = 0x70
901 KTHREAD_SPECIAL_APC_DISABLE = 0x72
902 KTHREAD_LARGE_STACK = 0x107
903 KTHREAD_TRAP_FRAME = 0x110
904 KTHREAD_CALLBACK_STACK = 0x114
905 KTHREAD_APC_STATE_INDEX = 0x11c
906 KTHREAD_STACK_BASE = 0x158
907
908 /* KPROCESS */
909 KPROCESS_DIRECTORY_TABLE_BASE = 0x18
910 KPROCESS_LDT_DESCRIPTOR0 = 0x20
911 KPROCESS_LDT_DESCRIPTOR1 = 0x24
912 KPROCESS_INT21_DESCRIPTOR0 = 0x28
913 KPROCESS_INT21_DESCRIPTOR1 = 0x2c
914 KPROCESS_IOPM_OFFSET = 0x30
915
916 /* Teb */
917 TEB_EXCEPTION_LIST = 0x0
918 TEB_STACK_LIMIT = 0x8
919 TEB_STACK_BASE = 0x4
920 TEB_SELF = 0x18
921 TEB_FIBER_DATA = 0x10
922 TEB_PEB = 0x30
923 TEB_EXCEPTION_CODE = 0x1a4
924 PEB_KERNEL_CALLBACK_TABLE = 0x2c
925 TEB_FLS_DATA = 0xfb4
926 TEB_ACTIVATION_CONTEXT_STACK_POINTER = 0x1a8
927 TEB_GUARANTEED_STACK_BYTES = 0xf78
928 TEB_DEALLOCATION_STACK = 0xe0c
929
930 /* Misc */
931 NPX_FRAME_LENGTH = 0x210
932 FN_CR0_NPX_STATE = 0x20c
933 DR7_RESERVED_MASK = 0xdc00
934 FP_CONTROL_WORD = 0x0
935 FP_STATUS_WORD = 0x4
936 FP_TAG_WORD = 0x8
937 FP_DATA_SELECTOR = 0x18
938 CBSTACK_RESULT = 0x20
939 CBSTACK_RESULT_LENGTH = 0x24
940 CBSTACK_TRAP_FRAME = 0x4
941 CBSTACK_CALLBACK_STACK = 0x8
942 SIZEOF_FX_SAVE_AREA = 0x210
943 KUSER_SHARED_SYSCALL = 0x7ffe0300
944 EXCEPTION_EXECUTE_HANDLER = 0x1
945 STATUS_CALLBACK_POP_STACK = 0xc0000423
946 CONTEXT_ALIGNED_SIZE = 0x2cc
947 PROCESSOR_FEATURE_FXSR = 0x7ffe0278