From: Timo Kreuzer Date: Mon, 28 Dec 2009 20:03:17 +0000 (+0000) Subject: Add ksamd64.h. This is a temporary solution until it's autogenerated. Note to self... X-Git-Tag: backups/aicom-network-stable@46924^3~56^2~24 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=1a46e2dfde39ed45bbee8b8ea9fea16967713b77 Add ksamd64.h. This is a temporary solution until it's autogenerated. Note to self: veryfy offsets before using them! svn path=/branches/ros-amd64-bringup/; revision=44798 --- diff --git a/reactos/include/ndk/amd64/ksamd64.h b/reactos/include/ndk/amd64/ksamd64.h new file mode 100644 index 00000000000..36a22689068 --- /dev/null +++ b/reactos/include/ndk/amd64/ksamd64.h @@ -0,0 +1,1430 @@ + +/* + * Definitions for amd64 assembly + * This file should later be autogenerated. + * + */ + +/* CONSTANT DEFINES **********************************************************/ + +/* Breakpoints */ +#define BREAKPOINT_BREAK 0x0000 +#define BREAKPOINT_PRINT 0x0001 +#define BREAKPOINT_PROMPT 0x0002 +#define BREAKPOINT_LOAD_SYMBOLS 0x0003 +#define BREAKPOINT_UNLOAD_SYMBOLS 0x0004 +#define BREAKPOINT_COMMAND_STRING 0x0005 + +/* Context Frame Flags */ +#define CONTEXT_FULL 0x0010000B +#define CONTEXT_CONTROL 0x00100001 +#define CONTEXT_INTEGER 0x00100002 +#define CONTEXT_SEGMENTS 0x00100004 +#define CONTEXT_FLOATING_POINT 0x00100008 +#define CONTEXT_DEBUG_REGISTERS 0x00100010 + +/* CR0 */ +#define CR0_PE 0x000000001 +#define CR0_MP 0x000000002 +#define CR0_EM 0x000000004 +#define CR0_TS 0x000000008 +#define CR0_ET 0x000000010 +#define CR0_NE 0x000000020 +#define CR0_WP 0x000010000 +#define CR0_AM 0x000040000 +#define CR0_NW 0x020000000 +#define CR0_CD 0x040000000 +#define CR0_PG 0x080000000 + +/* CR4 */ +#define CR4_VME 0x00001 +#define CR4_PVI 0x00002 +#define CR4_TSD 0x00004 +#define CR4_DE 0x00008 +#define CR4_PSE 0x00010 +#define CR4_PAE 0x00020 +#define CR4_MCE 0x00040 +#define CR4_PGE 0x00080 +#define CR4_FXSR 0x00200 +#define CR4_XMMEXCPT 0x00400 +#define CR4_CHANNELS 0x00800 + +/* Debug control register masks */ +#define DR7_LEGAL 0x0FFFF0355 +#define DR7_ACTIVE 0x00355 +#define DR7_TRACE_BRANCH 0x00200 +#define DR7_LAST_BRANCH 0x00100 +#define DEBUG_ACTIVE_DR7 0x00001 +#define DEBUG_ACTIVE_INSTRUMENTED 0x00002 + +/* EFLAGS */ +#define EFLAGS_TF_MASK 0x000100 +#define EFLAGS_TF_SHIFT 0x000008 +#define EFLAGS_ID_MASK 0x200000 +#define EFLAGS_IF_MASK 0x000200 +#define EFLAGS_IF_SHIFT 0x000009 + +/* fatal exception codes */ +#define EXCEPTION_DIVIDED_BY_ZERO 0x00000 +#define EXCEPTION_DEBUG 0x00001 +#define EXCEPTION_NMI 0x00002 +#define EXCEPTION_INT3 0x00003 +#define EXCEPTION_BOUND_CHECK 0x00005 +#define EXCEPTION_INVALID_OPCODE 0x00006 +#define EXCEPTION_NPX_NOT_AVAILABLE 0x00007 +#define EXCEPTION_DOUBLE_FAULT 0x00008 +#define EXCEPTION_NPX_OVERRUN 0x00009 +#define EXCEPTION_INVALID_TSS 0x0000A +#define EXCEPTION_SEGMENT_NOT_PRESENT 0x0000B +#define EXCEPTION_STACK_FAULT 0x0000C +#define EXCEPTION_GP_FAULT 0x0000D +#define EXCEPTION_RESERVED_TRAP 0x0000F +#define EXCEPTION_NPX_ERROR 0x00010 +#define EXCEPTION_ALIGNMENT_CHECK 0x00011 + +/* Exception flags */ +#define EXCEPTION_NONCONTINUABLE 0x00001 +#define EXCEPTION_UNWINDING 0x00002 +#define EXCEPTION_EXIT_UNWIND 0x00004 +#define EXCEPTION_STACK_INVALID 0x00008 +#define EXCEPTION_NESTED_CALL 0x00010 +#define EXCEPTION_TARGET_UNWIND 0x00020 +#define EXCEPTION_COLLIDED_UNWIND 0x00040 +#define EXCEPTION_UNWIND 0x00066 +#define EXCEPTION_EXECUTE_HANDLER 0x00001 +#define EXCEPTION_CONTINUE_SEARCH 0x00000 +#define EXCEPTION_CONTINUE_EXECUTION 0x0FFFFFFFF +#ifdef _X86_ +#define EXCEPTION_CHAIN_END 0x0FFFFFFFF +#define FIXED_NTVDMSTATE_LINEAR 0x00714 +#endif + +/* Exception type */ +#define ExceptionContinueExecution 0x00000 +#define ExceptionContinueSearch 0x00001 +#define ExceptionNestedException 0x00002 +#define ExceptionCollidedUnwind 0x00003 + + +/* Hypervisor Enlightenment Definitions */ +#define HV_MMU_USE_HYPERCALL_FOR_ADDRESS_SWITCH 0x00001 +#define HV_MMU_USE_HYPERCALL_FOR_LOCAL_FLUSH 0x00002 +#define HV_MMU_USE_HYPERCALL_FOR_REMOTE_FLUSH 0x00004 +#define HV_X64_MSR_APIC_EOI 0x040000070 +#define HV_APIC_ENLIGHTENED 0x00010 +#define HV_KE_USE_HYPERCALL_FOR_LONG_SPIN_WAIT 0x00040 +#define HV_VIRTUAL_APIC_NO_EOI_REQUIRED_V 0x00000 +#define HvApicFlags 0x00000 + +/* IRQL */ +#define PASSIVE_LEVEL 0x00 +#define APC_LEVEL 0x01 +#define DISPATCH_LEVEL 0x02 +#define CLOCK_LEVEL 0x0D +#define IPI_LEVEL 0x0E +#define POWER_LEVEL 0x0E +#define PROFILE_LEVEL 0x0F +#define HIGH_LEVEL 0x0F +#ifdef NT_UP +#define SYNCH_LEVEL 0x02 +#else +#define SYNCH_LEVEL 0x0C +#endif + +/* Performance Definitions */ +#define PERF_CONTEXTSWAP_OFFSET 0x00004 +#define PERF_CONTEXTSWAP_FLAG 0x00004 +#define PERF_INTERRUPT_OFFSET 0x00004 +#define PERF_INTERRUPT_FLAG 0x04000 +#define PERF_PROFILE_OFFSET 0x00004 +#define PERF_PROFILE_FLAG 0x00002 +#define PERF_SYSCALL_OFFSET 0x00008 +#define PERF_SYSCALL_FLAG 0x00040 +#define NTOS_YIELD_MACRO 0x00001 + +/* User shared data */ +#define USER_SHARED_DATA 0x0FFFFF78000000000 +#define MM_SHARED_USER_DATA_VA 0x07FFE0000 + +/* Bug Check Codes */ +#define APC_INDEX_MISMATCH 0x00001 +#define INVALID_AFFINITY_SET 0x00003 +#define INVALID_DATA_ACCESS_TRAP 0x00004 +#define IRQL_NOT_GREATER_OR_EQUAL 0x00009 +#define IRQL_NOT_LESS_OR_EQUAL 0x0000A +#define NO_USER_MODE_CONTEXT 0x0000E +#define SPIN_LOCK_ALREADY_OWNED 0x0000F +#define SPIN_LOCK_NOT_OWNED 0x00010 +#define THREAD_NOT_MUTEX_OWNER 0x00011 +#define TRAP_CAUSE_UNKNOWN 0x00012 +#define KMODE_EXCEPTION_NOT_HANDLED 0x0001E +#define KERNEL_APC_PENDING_DURING_EXIT 0x00020 +#define PANIC_STACK_SWITCH 0x0002B +#define DATA_BUS_ERROR 0x0002E +#define INSTRUCTION_BUS_ERROR 0x0002F +#define SYSTEM_EXIT_OWNED_MUTEX 0x00039 +#define SYSTEM_UNWIND_PREVIOUS_USER 0x0003A +#define SYSTEM_SERVICE_EXCEPTION 0x0003B +#define INTERRUPT_UNWIND_ATTEMPTED 0x0003C +#define INTERRUPT_EXCEPTION_NOT_HANDLED 0x0003D +#define PAGE_FAULT_WITH_INTERRUPTS_OFF 0x00049 +#define IRQL_GT_ZERO_AT_SYSTEM_SERVICE 0x0004A +#define DATA_COHERENCY_EXCEPTION 0x00055 +#define INSTRUCTION_COHERENCY_EXCEPTION 0x00056 +#define HAL1_INITIALIZATION_FAILED 0x00061 +#define UNEXPECTED_KERNEL_MODE_TRAP 0x0007F +#define NMI_HARDWARE_FAILURE 0x00080 +#define SPIN_LOCK_INIT_FAILURE 0x00081 +#define ATTEMPTED_SWITCH_FROM_DPC 0x000B8 +#define MUTEX_ALREADY_OWNED 0x000BF +#define HARDWARE_INTERRUPT_STORM 0x000F2 +#define RECURSIVE_MACHINE_CHECK 0x000FB +#define RECURSIVE_NMI 0x00111 + +/* Lock Queue */ +#define LOCK_QUEUE_WAIT 0x00001 +#define LOCK_QUEUE_OWNER 0x00002 +#define LockQueueDispatcherLock 0x00000 + +/* Process states */ +#define ProcessInMemory 0x00 +#define ProcessOutOfMemory 0x01 +#define ProcessInTransition 0x02 + +/* Processor mode */ +#define KernelMode 0x00 +#define UserMode 0x01 + +/* Status codes */ +#define STATUS_ACCESS_VIOLATION 0x0C0000005 +#define STATUS_ASSERTION_FAILURE 0x0C0000420 +#define STATUS_ARRAY_BOUNDS_EXCEEDED 0x0C000008C +#define STATUS_BAD_COMPRESSION_BUFFER 0x0C0000242 +#define STATUS_BREAKPOINT 0x080000003 +#define STATUS_CALLBACK_POP_STACK 0x0C0000423 +#define STATUS_DATATYPE_MISALIGNMENT 0x080000002 +#define STATUS_FLOAT_DENORMAL_OPERAND 0x0C000008D +#define STATUS_FLOAT_DIVIDE_BY_ZERO 0x0C000008E +#define STATUS_FLOAT_INEXACT_RESULT 0x0C000008F +#define STATUS_FLOAT_INVALID_OPERATION 0x0C0000090 +#define STATUS_FLOAT_OVERFLOW 0x0C0000091 +#define STATUS_FLOAT_STACK_CHECK 0x0C0000092 +#define STATUS_FLOAT_UNDERFLOW 0x0C0000093 +#define STATUS_FLOAT_MULTIPLE_FAULTS 0x0C00002B4 +#define STATUS_FLOAT_MULTIPLE_TRAPS 0x0C00002B5 +#define STATUS_GUARD_PAGE_VIOLATION 0x080000001 +#define STATUS_ILLEGAL_FLOAT_CONTEXT 0x0C000014A +#define STATUS_ILLEGAL_INSTRUCTION 0x0C000001D +#define STATUS_INSTRUCTION_MISALIGNMENT 0x0C00000AA +#define STATUS_INVALID_HANDLE 0x0C0000008 +#define STATUS_INVALID_LOCK_SEQUENCE 0x0C000001E +#define STATUS_INVALID_OWNER 0x0C000005A +#define STATUS_INVALID_PARAMETER 0x0C000000D +#define STATUS_INVALID_PARAMETER_1 0x0C00000EF +#define STATUS_INVALID_SYSTEM_SERVICE 0x0C000001C +#define STATUS_INTEGER_DIVIDE_BY_ZERO 0x0C0000094 +#define STATUS_INTEGER_OVERFLOW 0x0C0000095 +#define STATUS_IN_PAGE_ERROR 0x0C0000006 +#define STATUS_KERNEL_APC 0x00100 +#define STATUS_LONGJUMP 0x080000026 +#define STATUS_NO_CALLBACK_ACTIVE 0x0C0000258 +#define STATUS_NO_EVENT_PAIR 0x0C000014E +#define STATUS_PRIVILEGED_INSTRUCTION 0x0C0000096 +#define STATUS_SINGLE_STEP 0x080000004 +#define STATUS_STACK_BUFFER_OVERRUN 0x0C0000409 +#define STATUS_STACK_OVERFLOW 0x0C00000FD +#define STATUS_SUCCESS 0x00000 +#define STATUS_THREAD_IS_TERMINATING 0x0C000004B +#define STATUS_TIMEOUT 0x00102 +#define STATUS_UNWIND 0x0C0000027 +#define STATUS_UNWIND_CONSOLIDATE 0x080000029 +#define STATUS_USER_APC 0x000C0 +#define STATUS_WAKE_SYSTEM_DEBUGGER 0x080000007 + +/* Thread states */ +#define Initialized 0x00 +#define Ready 0x01 +#define Running 0x02 +#define Standby 0x03 +#define Terminated 0x04 +#define Waiting 0x05 + +/* Wait type / reason */ +#define WrExecutive 0x00000 +#define WrMutex 0x00001D +#define WrDispatchInt 0x00001F +#define WrQuantumEnd 0x00001E +#define WrEventPair 0x00000E +#define WaitAny 0x000001 +#define WaitAll 0x000000 + +/* interrupt object */ +#define InLevelSensitive 0x00000 +#define InLatched 0x00001 + +/* Stack sizes */ +#define KERNEL_STACK_SIZE 0x06000 +#define KERNEL_LARGE_STACK_SIZE 0x012000 +#define KERNEL_LARGE_STACK_COMMIT 0x06000 +#define KERNEL_MCA_EXCEPTION_STACK_SIZE 0x02000 +#define NMI_STACK_SIZE 0x02000 +#define DOUBLE_FAULT_STACK_SIZE 0x02000 + +/* TLS defines */ +#define TLS_MINIMUM_AVAILABLE 0x00040 +#define TLS_EXPANSION_SLOTS 0x00400 + +/* Miscellaneous Definitions */ +#define BASE_PRIORITY_THRESHOLD 0x00008 +#define EVENT_PAIR_INCREMENT 0x00001 +#define LOW_REALTIME_PRIORITY 0x00010 +#define CLOCK_QUANTUM_DECREMENT 0x00003 +#define READY_SKIP_QUANTUM 0x00002 +#define THREAD_QUANTUM 0x00006 +#define WAIT_QUANTUM_DECREMENT 0x00001 +#define ROUND_TRIP_DECREMENT_COUNT 0x00010 +#define MAXIMUM_PROCESSORS 0x00040 +#define INITIAL_STALL_COUNT 0x00064 +#define EXCEPTION_EXECUTE_FAULT 0x00008 +#define KCACHE_ERRATA_MONITOR_FLAGS 0x00003 +#define KI_EXCEPTION_GP_FAULT 0x010000001 +#define KI_EXCEPTION_INVALID_OP 0x010000002 +#define KI_EXCEPTION_INTEGER_DIVIDE_BY_ZERO 0x010000003 +#define KI_EXCEPTION_ACCESS_VIOLATION 0x010000004 +#define TARGET_FREEZE 0x00005 +#define BlackHole 0x0FFFFA000 +#define Executive 0x00000 +#define FALSE 0x00000 +#define TRUE 0x00001 +#define DBG_STATUS_CONTROL_C 0x00001 + +/* Pointer size */ +#define SizeofPointer 0x000008 + +/* KDGT selectors */ +#define KGDT64_NULL 0x000000 +#define KGDT64_R0_CODE 0x000010 +#define KGDT64_R0_DATA 0x000018 +#define KGDT64_R3_CMCODE 0x000020 +#define KGDT64_R3_DATA 0x000028 +#define KGDT64_R3_CODE 0x000030 +#define KGDT64_SYS_TSS 0x000040 +#define KGDT64_R3_CMTEB 0x000050 + +/* KeFeatureBits flags */ +#define KF_RDTSC 0x000002 +#define KF_CR4 0x000004 +#define KF_GLOBAL_PAGE 0x000010 +#define KF_LARGE_PAGE 0x000020 +#define KF_CMPXCHG8B 0x000080 +#define KF_FAST_SYSCALL 0x001000 + +/* Machine type definitions */ +#define MACHINE_TYPE_ISA 0x00 +#define MACHINE_TYPE_EISA 0x01 +#define MACHINE_TYPE_MCA 0x02 + +/* Machine Specific Register Numbers */ +#define MSR_EFER 0x0C0000080 +#define MSR_STAR 0x0C0000081 +#define MSR_LSTAR 0x0C0000082 +#define MSR_CSTAR 0x0C0000083 +#define MSR_SYSCALL_MASK 0x0C0000084 +#define MSR_FS_BASE 0x0C0000100 +#define MSR_GS_BASE 0x0C0000101 +#define MSR_GS_SWAP 0x0C0000102 +#define MSR_MCG_STATUS 0x00000017A +#define MSR_AMD_ACCESS 0x09C5A203A + +/* Flags for MSR_EFER */ +#define MSR_LMA 0x00400 +#define MSR_LME 0x00100 +#define MSR_SCE 0x00001 +#define MSR_NXE 0x00800 +#define MSR_PAT 0x00277 +#define MSR_DEGUG_CTL 0x001D9 +#define MSR_LAST_BRANCH_FROM 0x001DB +#define MSR_LAST_BRANCH_TO 0x001DC +#define MSR_LAST_EXCEPTION_FROM 0x001DD +#define MSR_LAST_EXCEPTION_TO 0x001DE + +/* Flags for MSR_DEGUG_CTL */ +#define MSR_DEBUG_CTL_LBR 0x00001 +#define MSR_DEBUG_CRL_BTF 0x00002 + + +/* STRUCTURE OFFSETS ********************************************************/ + +/* Argument Home Address */ +#define P1Home 0x0008 +#define P2Home 0x0010 +#define P3Home 0x0018 +#define P4Home 0x0020 + +/* KAPC */ +#define ApType 0x0000 +#define ApSize 0x0002 +#define ApThread 0x0008 +#define ApApcListEntry 0x0010 +#define ApKernelRoutine 0x0020 +#define ApRundownRoutine 0x0028 +#define ApNormalRoutine 0x0030 +#define ApNormalContext 0x0038 +#define ApSystemArgument1 0x0040 +#define ApSystemArgument2 0x0048 +#define ApApcStateIndex 0x0050 +#define ApApcMode 0x0051 +#define ApInserted 0x0052 +#define ApcObjectLength 0x0058 + +/* KAPC_STATE */ +#define AsApcListHead 0x0000 +#define AsProcess 0x0020 +#define AsKernelApcInProgress 0x0028 +#define AsKernelApcPending 0x0029 +#define AsUserApcPending 0x002A + +/* CLIENT_ID */ +#define CidUniqueProcess 0x0000 +#define CidUniqueThread 0x0008 + +/* RTL_CRITICAL_SECTION */ +#define CsDebugInfo 0x0000 +#define CsLockCount 0x0008 +#define CsRecursionCount 0x000C +#define CsOwningThread 0x0010 +#define CsLockSemaphore 0x0018 +#define CsSpinCount 0x0020 + +/* RTL_CRITICAL_SECTION_DEBUG */ +#define CsType 0x0000 +#define CsCreatorBackTraceIndex 0x0002 +#define CsCriticalSection 0x0008 +#define CsProcessLocksList 0x0010 +#define CsEntryCount 0x0020 +#define CsContentionCount 0x0024 + +/* CONTEXT */ +#define CxP1Home 0x0000 +#define CxP2Home 0x0008 +#define CxP3Home 0x0010 +#define CxP4Home 0x0018 +#define CxP5Home 0x0020 +#define CxP6Home 0x0028 +#define CxContextFlags 0x0030 +#define CxMxCsr 0x0034 +#define CxSegCs 0x0038 +#define CxSegDs 0x003A +#define CxSegEs 0x003C +#define CxSegFs 0x003E +#define CxSegGs 0x0040 +#define CxSegSs 0x0042 +#define CxEFlags 0x0044 +#define CxDr0 0x0048 +#define CxDr1 0x0050 +#define CxDr2 0x0058 +#define CxDr3 0x0060 +#define CxDr6 0x0068 +#define CxDr7 0x0070 +#define CxRax 0x0078 +#define CxRcx 0x0080 +#define CxRdx 0x0088 +#define CxRbx 0x0090 +#define CxRsp 0x0098 +#define CxRbp 0x00A0 +#define CxRsi 0x00A8 +#define CxRdi 0x00B0 +#define CxR8 0x00B8 +#define CxR9 0x00C0 +#define CxR10 0x00C8 +#define CxR11 0x00D0 +#define CxR12 0x00D8 +#define CxR13 0x00E0 +#define CxR14 0x00E8 +#define CxR15 0x00F0 +#define CxRip 0x00F8 +#define CxFltSave 0x0100 +#define CxXmm0 0x01A0 +#define CxXmm1 0x01B0 +#define CxXmm2 0x01C0 +#define CxXmm3 0x01D0 +#define CxXmm4 0x01E0 +#define CxXmm5 0x01F0 +#define CxXmm6 0x0200 +#define CxXmm7 0x0210 +#define CxXmm8 0x0220 +#define CxXmm9 0x0230 +#define CxXmm10 0x0240 +#define CxXmm11 0x0250 +#define CxXmm12 0x0260 +#define CxXmm13 0x0270 +#define CxXmm14 0x0280 +#define CxXmm15 0x0290 +#define CxDebugControl 0x04A8 +#define CxLastBranchToRip 0x04B0 +#define CxLastBranchFromRip 0x04B8 +#define CxLastExceptionToRip 0x04C0 +#define CxLastExceptionFromRip 0x04C8 +#define CxVectorControl 0x04A0 +#define CxVectorRegister 0x0300 +#define CONTEXT_FRAME_LENGTH 0x04D0 + +/* DISPATCHER_CONTEXT */ +#define DcControlPc 0x0000 +#define DcImageBase 0x0008 +#define DcFunctionEntry 0x0010 +#define DcEstablisherFrame 0x0018 +#define DcTargetIp 0x0020 +#define DcContextRecord 0x0028 +#define DcLanguageHandler 0x0030 +#define DcHandlerData 0x0038 +#define DcHistoryTable 0x0040 +#define DcScopeIndex 0x0048 + +/* KDEVICE_QUEUE_ENTRY */ +#define DeDeviceListEntry 0x0000 +#define DeSortKey 0x0010 +#define DeInserted 0x0014 +#define DeviceQueueEntryLength 0x0018 + +/* KDPC */ +#define DpType 0x0000 +#define DpImportance 0x0001 +#define DpNumber 0x0002 +#define DpDpcListEntry 0x0008 +#define DpDeferredRoutine 0x0018 +#define DpDeferredContext 0x0020 +#define DpSystemArgument1 0x0028 +#define DpSystemArgument2 0x0030 +#define DpDpcData 0x0038 +#define DpcObjectLength 0x0040 + +/* KDEVICE_QUEUE */ +#define DvType 0x0000 +#define DvSize 0x0002 +#define DvDeviceListHead 0x0008 +#define DvSpinLock 0x0018 +#define DvBusy 0x0020 +#define DeviceQueueObjectLength 0x0028 + +/* Event Pair Object */ +#define EpType 0x0000 +#define EpSize 0x0002 +#define EpEventLow 0x0008 +#define EpEventHigh 0x0020 + +/* EPROCESS */ +#define EpDebugPort 0x0150 +#define EpVdmObjects 0x0208 + +/* EXCEPTION_RECORD */ +#define ErExceptionCode 0x00000 +#define ErExceptionFlags 0x00004 +#define ErExceptionRecord 0x00008 +#define ErExceptionAddress 0x00010 +#define ErNumberParameters 0x00018 +#define ErExceptionInformation 0x00020 +#define ExceptionRecordLength 0x000A0 +#define EXCEPTION_RECORD_LENGTH 0x000A0 + +/* KEVENT */ +#define EvType 0x00000 +#define EvSize 0x00002 +#define EvSignalState 0x00004 +#define EvWaitListHead 0x00008 +#define EventObjectLength 0x00018 + +/* KEXCEPTION_FRAME */ +#define ExP1Home 0x00000 +#define ExP2Home 0x00008 +#define ExP3Home 0x00010 +#define ExP4Home 0x00018 +#define ExP5 0x00020 +#define ExXmm6 0x00030 +#define ExXmm7 0x00040 +#define ExXmm8 0x00050 +#define ExXmm9 0x00060 +#define ExXmm10 0x00070 +#define ExXmm11 0x00080 +#define ExXmm12 0x00090 +#define ExXmm13 0x000A0 +#define ExXmm14 0x000B0 +#define ExXmm15 0x000C0 +#define ExMxCsr 0x000F0 +#define ExRbp 0x000F8 +#define ExRbx 0x00100 +#define ExRdi 0x00108 +#define ExRsi 0x00110 +#define ExR12 0x00118 +#define ExR13 0x00120 +#define ExR14 0x00128 +#define ExR15 0x00130 +#define ExReturn 0x00138 +#define CuInitialStack 0x00028 +#define CuTrapFrame 0x000D0 +#define CuCallbackStack 0x000D8 +#define CuOutputBuffer 0x000E0 +#define CuOutputLength 0x000E8 +#define KEXCEPTION_FRAME_LENGTH 0x00140 + +/* FAST_MUTEX */ +#define FmCount 0x00000 +#define FmOwner 0x00008 +#define FmContention 0x00010 +#define FmGate 0x00018 +#define FmOldIrql 0x00030 + +/* KINTERRUPT */ +#define InType 0x00000 +#define InSize 0x00002 +#define InInterruptListEntry 0x00008 +#define InServiceRoutine 0x00018 +#define InServiceContext 0x00030 +#define InSpinLock 0x00038 +#define InTickCount 0x00040 +#define InActualLock 0x00048 +#define InDispatchAddress 0x00050 +#define InVector 0x00058 +#define InIrql 0x0005C +#define InSynchronizeIrql 0x0005D +#define InFloatingSave 0x0005E +#define InConnected 0x0005F +#define InNumber 0x00060 +#define InShareVector 0x00061 +#define InMode 0x00064 +#define InServiceCount 0x0006C +#define InDispatchCount 0x00070 +#define InTrapFrame 0x00080 +#define InDispatchCode 0x00090 +#define InterruptObjectLength 0x000A0 + +/* IO_STATUS_BLOCK */ +#define IoStatus 0x00000 +#define IoPointer 0x00000 +#define IoInformation 0x00008 + +/* JUMP_BUFFER */ +#define JbFrame 0x00000 +#define JbRbx 0x00008 +#define JbRsp 0x00010 +#define JbRbp 0x00018 +#define JbRsi 0x00020 +#define JbRdi 0x00028 +#define JbR12 0x00030 +#define JbR13 0x00038 +#define JbR14 0x00040 +#define JbR15 0x00048 +#define JbRip 0x00050 +#define JbMxCsr 0x00058 +#define JbFpCsr 0x0005C +#define JbXmm6 0x00060 +#define JbXmm7 0x00070 +#define JbXmm8 0x00080 +#define JbXmm9 0x00090 +#define JbXmm10 0x000A0 +#define JbXmm11 0x000B0 +#define JbXmm12 0x000C0 +#define JbXmm13 0x000D0 +#define JbXmm14 0x000E0 +#define JbXmm15 0x000F0 + +/* KERNEL_STACK_CONTROL */ +#define KcPreviousBase 0x00228 +#define KcPreviousLimit 0x00230 +#define KcPreviousKernel 0x00238 +#define KcPreviousInitial 0x00240 +#define KERNEL_STACK_CONTROL_LENGTH 0x00250 +#define KERNEL_STACK_CONTROL_LARGE_STACK 0x00001 + +/* KGDT */ +#define KgdtBaseLow 0x00002 +#define KgdtBaseMiddle 0x00004 +#define KgdtBaseHigh 0x00007 +#define KgdtBaseUpper 0x00008 +#define KgdtLimitHigh 0x00006 +#define KgdtLimitLow 0x00000 +#define KGDT_LIMIT_ENCODE_MASK 0x03C00 + +/* KNODE */ +#define KnRight 0x00078 +#define KnLeft 0x0007C +#define KnPfnDereferenceSListHead 0x00040 +#define KnProcessorMask 0x00050 +#define KnColor 0x00058 +#define KnSeed 0x00059 +#define KnNodeNumber 0x0005A +#define KnFlags 0x0005B +#define knMmShiftedColor 0x0005C +#define KnFreeCount 0x00060 +#define KnPfnDeferredList 0x00070 +#define KNODE_SIZE 0x000C0 + +/* KSPIN_LOCK_QUEUE */ +#define LqNext 0x00000 +#define LqLock 0x00008 + +/* KLOCK_QUEUE_HANDLE */ +#define LqhNext 0x00000 +#define LqhLock 0x00008 +#define LqhOldIrql 0x00010 +#define LOCK_QUEUE_HEADER_SIZE 0x00010 + +/* LARGE_INTEGER */ +#define LiLowPart 0x00000 +#define LiHighPart 0x00004 + +/* LOADER_PARAMETER_BLOCK (relative to LoadOrderListHead) */ +#define LpbLoadOrderListHead 0x00000 +#define LpbMemoryDescriptorListHead 0x00010 +#define LpbKernelStack 0x00030 +#define LpbPrcb 0x00038 +#define LpbProcess 0x00040 +#define LpbThread 0x00048 +#define LpbI386 0x000B8 +#define LpbRegistryLength 0x00050 +#define LpbRegistryBase 0x00058 +#define LpbConfigurationRoot 0x00060 +#define LpbArcBootDeviceName 0x00068 +#define LpbArcHalDeviceName 0x00070 +#define LpbLoadOptions 0x00088 +#define PAGE_SIZE 0x01000 + +/* LIST_ENTRY */ +#define LsFlink 0x00000 +#define LsBlink 0x00008 + +/* KPRCB */ +#define PbMxCsr 0x00000 +#define PbNumber 0x00004 +#define PbInterruptRequest 0x00006 +#define PbIdleHalt 0x00007 +#define PbCurrentThread 0x00008 +#define PbNextThread 0x00010 +#define PbIdleThread 0x00018 +#define PbNestingLevel 0x00020 +#define PbRspBase 0x00028 +#define PbPrcbLock 0x00030 +#define PbSetMember 0x00038 +#define PbProcessorState 0x00040 +#define PbCpuType 0x005F0 +#define PbCpuID 0x005F1 +#define PbCpuStep 0x005F2 +#define PbHalReserved 0x005F8 +#define PbMinorVersion 0x00638 +#define PbMajorVersion 0x0063A +#define PbBuildType 0x0063C +#define PbCpuVendor 0x0063D +#define PbCoresPerPhysicalProcessor 0x0063E +#define PbLogicalProcessorsPerCore 0x0063F +#define PbApicMask 0x00640 +#define PbCFlushSize 0x00644 +#define PbAcpiReserved 0x00648 +#define PbInitialApicId 0x00650 +#define PbStride 0x00654 +#define PbLockQueue 0x00670 +#define PbPPLookasideList 0x00980 +#define PbPPNPagedLookasideList 0x00A80 +#define PbPPPagedLookasideList 0x01680 +#define PbPacketBarrier 0x02280 +#define PbDeferredReadyListHead 0x02288 +#define PbLookasideIrpFloat 0x022D8 +#define PbSystemCalls 0x022B8 +#define PbReadOperationCount 0x022DC +#define PbWriteOperationCount 0x022E0 +#define PbOtherOperationCount 0x022E4 +#define PbReadTransferCount 0x022E8 +#define PbWriteTransferCount 0x022F0 +#define PbOtherTransferCount 0x022F8 +#define PbContextSwitches 0x022BC +#define PbTargetSet 0x02300 +#define PbIpiFrozen 0x02308 +#define PbRequestMailbox 0x02380 +#define PbSenderSummary 0x03380 +#define PbDpcListHead 0x03400 +#define PbDpcLock 0x03410 +#define PbDpcQueueDepth 0x03418 +#define PbDpcCount 0x0341C +#define PbDpcStack 0x03440 +#define PbMaximumDpcQueueDepth 0x03450 +#define PbDpcRequestRate 0x03454 +#define PbMinimumDpcRate 0x03458 +#define PbDpcInterruptRequested 0x0345C +#define PbDpcThreadRequested 0x0345D +#define PbDpcRoutineActive 0x0345E +#define PbDpcThreadActive 0x0345F +#define PbTimerHand 0x03460 +#define PbTimerRequest 0x03460 +#define PbTickOffset 0x03468 +#define PbMasterOffset 0x0346C +#define PbDpcLastCount 0x03470 +#define PbQuantumEnd 0x03475 +#define PbDpcSetEventRequest 0x03478 +#define PbIdleSchedule 0x03477 +#define PbReadySummary 0x03518 +#define PbDispatcherReadyListHead 0x03580 +#define PbInterruptCount 0x03780 +#define PbKernelTime 0x03784 +#define PbUserTime 0x03788 +#define PbDpcTime 0x0378C +#define PbInterruptTime 0x03790 +#define PbAdjustDpcThreshold 0x03794 +#define PbSkipTick 0x03798 +#define PbPollSlot 0x0379A +#define PbParentNode 0x037C0 +#define PbMultiThreadProcessorSet 0x037C8 +#define PbMultiThreadSetMaster 0x037D0 +#define PbStartCycles 0x037D8 +#define PbPageColor 0x037E4 +#define PbNodeColor 0x037E8 +#define PbNodeShiftedColor 0x037EC +#define PbSecondaryColorMask 0x037F0 +#define PbSleeping 0x037F4 +#define PbCycleTime 0x037F8 +#define PbFastReadNoWait 0x022C0 +#define PbFastReadWait 0x022C4 +#define PbFastReadNotPossible 0x022C8 +#define PbCopyReadNoWait 0x022CC +#define PbCopyReadWait 0x022D0 +#define PbCopyReadNoWaitMiss 0x022D4 +#define PbAlignmentFixupCount 0x03998 +#define PbExceptionDispatchCount 0x0347C +#define PbVendorString 0x0399C +#define PbPowerState 0x03880 +#define ProcessorBlockLength 0x03B20 + +/* KPCR */ +#define PcGdt 0x00000 +#define PcTss 0x00008 +#define PcUserRsp 0x00010 +#define PcSelf 0x00018 +#define PcCurrentPrcb 0x00020 +#define PcLockArray 0x00028 +#define PcTeb 0x00030 +#define PcIdt 0x00038 +#define PcIrql 0x00050 +#define PcStallScaleFactor 0x00064 +#define PcHalReserved 0x000C0 +#define PcPrcb 0x00180 +#define PcMxCsr 0x00180 +#define PcNumber 0x00184 +#define PcInterruptRequest 0x00186 +#define PcIdleHalt 0x00187 +#define PcCurrentThread 0x00188 +#define PcNextThread 0x00190 +#define PcIdleThread 0x00198 +#define PcIpiFrozen 0x02488 +#define PcNestingLevel 0x001A0 +#define PcRspBase 0x001A8 +#define PcPrcbLock 0x001B0 +#define PcSetMember 0x001B8 +#define PcCr0 0x001C0 +#define PcCr2 0x001C8 +#define PcCr3 0x001D0 +#define PcCr4 0x001D8 +#define PcKernelDr0 0x001E0 +#define PcKernelDr1 0x001E8 +#define PcKernelDr2 0x001F0 +#define PcKernelDr3 0x001F8 +#define PcKernelDr7 0x00208 +#define PcGdtrLimit 0x00216 +#define PcGdtrBase 0x00218 +#define PcIdtrLimit 0x00226 +#define PcIdtrBase 0x00228 +#define PcTr 0x00230 +#define PcLdtr 0x00232 +#define PcDebugControl 0x00238 +#define PcLastBranchToRip 0x00240 +#define PcLastBranchFromRip 0x00248 +#define PcLastExceptionToRip 0x00250 +#define PcLastExceptionFromRip 0x00258 +#define PcCr8 0x00260 +#define PcCpuType 0x00770 +#define PcCpuID 0x00771 +#define PcCpuStep 0x00772 +#define PcCpuVendor 0x007BD +#define PcVirtualApicAssist 0x03C48 +#define CPU_AMD 0x00001 +#define CPU_INTEL 0x00002 +#define PcCFlushSize 0x007C4 +#define PcDeferredReadyListHead 0x02408 +#define PcSystemCalls 0x02438 +#define PcDpcRoutineActive 0x035DE +#define PcInterruptCount 0x03900 +#define PcDebuggerSavedIRQL 0x03919 +#define PcTickOffset 0x035E8 +#define PcMasterOffset 0x035EC +#define PcSkipTick 0x03918 +#define PcStartCycles 0x03958 +#define ProcessorControlRegisterLength 0x03CA0 + +/* PEB */ +#define PeKernelCallbackTable 0x00058 +#define ProcessEnvironmentBlockLength 0x00368 + +/* KPROFILE */ +#define PfType 0x00000 +#define PfSize 0x00002 +#define PfProfileListEntry 0x00008 +#define PfProcess 0x00018 +#define PfRangeBase 0x00020 +#define PfRangeLimit 0x00028 +#define PfBucketShift 0x00030 +#define PfBuffer 0x00038 +#define PfSegment 0x00040 +#define PfAffinity 0x00048 +#define PfSource 0x00050 +#define PfStarted 0x00052 +#define ProfileObjectLength 0x00058 + +/* PORT_MESSAGE */ +#define PmLength 0x00000 +#define PmZeroInit 0x00004 +#define PmClientId 0x00008 +#define PmProcess 0x00008 +#define PmThread 0x00010 +#define PmMessageId 0x00018 +#define PmClientViewSize 0x00020 +#define PortMessageLength 0x00028 + +/* KPROCESS */ +#define PrType 0x00000 +#define PrSize 0x00002 +#define PrSignalState 0x00004 +#define PrProfileListHead 0x00018 +#define PrDirectoryTableBase 0x00028 +#define PrIopmOffset 0x00038 +#define PrInstrumentationCallback 0x00068 +#define PrActiveProcessors 0x00040 +#define PrKernelTime 0x00048 +#define PrUserTime 0x0004C +#define PrReadyListHead 0x00050 +#define PrSwapListEntry 0x00060 +#define PrThreadListHead 0x00070 +#define PrProcessLock 0x00080 +#define PrAffinity 0x00088 +#define PrProcessFlags 0x00090 +#define PrBasePriority 0x00094 +#define PrQuantumReset 0x00095 +#define PrState 0x00096 +#define PrStackCount 0x000A0 +#define PrCycleTime 0x000B8 +#define KernelProcessObjectLength 0x000C0 +#define ExecutiveProcessObjectLength 0x003E8 + +/* KPROCESSOR_STATE */ +#define PsSpecialRegisters 0x00000 +#define PsCr0 0x00000 +#define PsCr2 0x00008 +#define PsCr3 0x00010 +#define PsCr4 0x00018 +#define PsKernelDr0 0x00020 +#define PsKernelDr1 0x00028 +#define PsKernelDr2 0x00030 +#define PsKernelDr3 0x00038 +#define PsKernelDr6 0x00040 +#define PsKernelDr7 0x00048 +#define PsGdtr 0x00056 +#define PsIdtr 0x00066 +#define PsTr 0x00070 +#define PsLdtr 0x00072 +#define PsMxCsr 0x00074 +#define PsContextFrame 0x000E0 +#define PsDebugControl 0x00078 +#define PsLastBranchToRip 0x00080 +#define PsLastBranchFromRip 0x00088 +#define PsLastExceptionToRip 0x00090 +#define PsLastExceptionFromRip 0x00098 +#define PsCr8 0x000A0 +#define ProcessorStateLength 0x005B0 + +/* Processor Start Block */ +#define PsbCompletionFlag 0x00004 +#define PsbGdt32 0x00008 +#define PsbIdt32 0x0000E +#define PsbGdt 0x00018 +#define PsbTiledCr3 0x00058 +#define PsbPmTarget 0x00060 +#define PsbLmTarget 0x00070 +#define PsbLmIdentityTarget 0x00066 +#define PsbSelfMap 0x00078 +#define PsbMsrPat 0x00080 +#define PsbMsrEFER 0x00088 +#define PsbProcessorState 0x00090 +#define ProcessorStartBlockLength 0x00640 + +/* KQUEUE */ +#define QuType 0x00000 +#define QuSize 0x00002 +#define QuSignalState 0x00004 +#define QuEntryListHead 0x00018 +#define QuCurrentCount 0x00028 +#define QuMaximumCount 0x0002C +#define QuThreadListHead 0x00030 +#define QueueObjectLength 0x00040 + +/* KSTART_FRAME */ +#define SfP1Home 0x00000 +#define SfP2Home 0x00008 +#define SfP3Home 0x00010 +#define SfP4Home 0x00018 +#define SfReturn 0x00028 +#define KSTART_FRAME_LENGTH 0x00030 + +/* KSPECIAL_REGISTERS */ +#define SrKernelDr0 0x00020 +#define SrKernelDr1 0x00028 +#define SrKernelDr2 0x00030 +#define SrKernelDr3 0x00038 +#define SrKernelDr6 0x00040 +#define SrKernelDr7 0x00048 +#define SrGdtr 0x00050 +#define SrIdtr 0x00060 +#define SrTr 0x00070 +#define SrMxCsr 0x00074 +#define SrMsrGsBase 0x000A8 +#define SrMsrGsSwap 0x000B0 +#define SrMsrStar 0x000B8 +#define SrMsrLStar 0x000C0 +#define SrMsrCStar 0x000C8 +#define SrMsrSyscallMask 0x000D0 + +/* STRING */ +#define StrLength 0x00000 +#define StrMaximumLength 0x00002 +#define StrBuffer 0x00008 + +/* KSWITCH_FRAME */ +#define SwP5Home 0x00020 +#define SwApcBypass 0x00028 +#define SwRbp 0x00030 +#define SwReturn 0x00038 +#define KSWITCH_FRAME_LENGTH 0x00040 + +/* TEB */ +#define TeCmTeb 0x00000 +#define TeStackBase 0x00008 +#define TeStackLimit 0x00010 +#define TeFiberData 0x00020 +#define TeSelf 0x00030 +#define TeEnvironmentPointer 0x00038 +#define TeClientId 0x00040 +#define TeActiveRpcHandle 0x00050 +#define TeThreadLocalStoragePointer 0x00058 +#define TeCountOfOwnedCriticalSections 0x0006C +#define TePeb 0x00060 +#define TeCsrClientThread 0x00070 +#define TeWOW32Reserved 0x00100 +#define TeSoftFpcr 0x0010C +#define TeExceptionCode 0x002C0 +#define TeActivationContextStackPointer 0x002C8 +#define TeGdiClientPID 0x007F0 +#define TeGdiClientTID 0x007F4 +#define TeGdiThreadLocalInfo 0x007F8 +#define TeglDispatchTable 0x009F0 +#define TeglReserved1 0x01138 +#define TeglReserved2 0x01220 +#define TeglSectionInfo 0x01228 +#define TeglSection 0x01230 +#define TeglTable 0x01238 +#define TeglCurrentRC 0x01240 +#define TeglContext 0x01248 +#define TeDeallocationStack 0x01478 +#define TeTlsSlots 0x01480 +#define TeTlsExpansionSlots 0x01780 +#define TeLastErrorValue 0x00068 +#define TeVdm 0x01690 +#define TeInstrumentation 0x016B8 +#define TeGdiBatchCount 0x01740 +#define TeGuaranteedStackBytes 0x01748 +#define TeFlsData 0x017C8 +#define TeProcessRundown 0x0180C +#define ThreadEnvironmentBlockLength 0x01828 +#define CmThreadEnvironmentBlockOffset 0x02000 + +/* TIME_FIELDS */ +#define TfSecond 0x0000A +#define TfMinute 0x00008 +#define TfHour 0x00006 +#define TfWeekday 0x0000E +#define TfDay 0x00004 +#define TfMonth 0x00002 +#define TfYear 0x00000 +#define TfMilliseconds 0x0000C + +/* KTHREAD */ +#define ThType 0x00000 +#define ThNpxIrql 0x00001 +#define ThSize 0x00002 +#define ThDebugActive 0x00003 +#define ThSignalState 0x00004 +#define ThCycleTime 0x00018 +#define ThInitialStack 0x00028 +#define ThStackLimit 0x00030 +#define ThKernelStack 0x00038 +#define ThThreadLock 0x00040 +#define ThApcState 0x00048 +#define ThNextProcessor 0x00074 +#define ThDeferredProcessor 0x00076 +#define ThAdjustReason 0x001E4 +#define ThAdjustIncrement 0x001E5 +#define ThApcQueueLock 0x00078 +#define ThWaitStatus 0x00080 +#define ThWaitBlockList 0x00088 +#define ThGateObject 0x00088 +#define ThWaitReason 0x00094 +#define ThPriority 0x00073 +#define ThSwapBusy 0x00095 +#define ThAlerted 0x00096 +#define ThWaitListEntry 0x00098 +#define ThSwapListEntry 0x00098 +#define ThQueue 0x000A8 +#define ThTeb 0x000B0 +#define ThTimer 0x000B8 +#define ThThreadFlags 0x000F4 +#define ThWaitBlock 0x000F8 +#define ThPreviousMode 0x00153 +#define ThResourceIndex 0x00183 +#define ThLargeStack 0x001B3 +#define ThContextSwitches 0x00124 +#define ThState 0x00154 +#define ThNpxState 0x00155 +#define ThWaitIrql 0x00156 +#define ThWaitMode 0x00157 +#define ThWaitTime 0x00184 +#define ThCombinedApcDisable 0x001B4 +#define ThKernelApcDisable 0x001B4 +#define ThSpecialApcDisable 0x001B6 +#define ThQueueListEntry 0x001B8 +#define ThTrapFrame 0x001C8 +#define ThFirstArgument 0x001D0 +#define ThCallbackStack 0x001D8 +#define ThCallbackDepth 0x001D8 +#define ThApcStateIndex 0x001E0 +#define ThIdealProcessor 0x00123 +#define ThBasePriority 0x001E1 +#define ThPriorityDecrement 0x001E2 +#define ThSaturation 0x001E7 +#define ThSystemCallNumber 0x001E8 +#define ThUserAffinity 0x001F0 +#define ThProcess 0x001F8 +#define ThAffinity 0x00200 +#define ThApcStatePointer 0x00208 +#define ThSavedApcState 0x00218 +#define ThFreezeCount 0x001EC +#define ThSuspendCount 0x00244 +#define ThUserIdealProcessor 0x00245 +#define ThCodePatchInProgress 0x00247 +#define ThWin32Thread 0x00248 +#define ThStackBase 0x00250 +#define ThSuspendApc 0x00258 +#define ThKernelTime 0x0025C +#define ThLegoData 0x002A0 +#define ThPowerState 0x002AB +#define ThUserTime 0x002AC +#define ThSuspendSemaphore 0x002B0 +#define ThSListFaultCount 0x002CC +#define ThMutantListHead 0x002E0 +#define ThThreadListEntry 0x002D0 +#define ThSListFaultAddress 0x002F0 +#define KernelThreadObjectLength 0x00330 +#define ExecutiveThreadObjectLength 0x00450 + +/* KTIMER */ +#define TiType 0x00000 +#define TiSize 0x00002 +#define TiInserted 0x00003 +#define TiSignalState 0x00004 +#define TiDueTime 0x00018 +#define TiTimerListEntry 0x00020 +#define TiDpc 0x00030 +#define TiPeriod 0x00038 +#define TimerObjectLength 0x00040 + +/* TIME */ +#define TmLowTime 0x00000 +#define TmHighTime 0x00004 + +/* KTIMER_TABLE */ +#define TtEntry 0x00000 +#define TtTime 0x00010 +#define TIMER_ENTRY_SIZE 0x00018 +#define TIMER_TABLE_SIZE 0x00200 + +/* KTRAP_FRAME */ +#define TrP1Home 0x0FFFFFF80 +#define TrP2Home 0x0FFFFFF88 +#define TrP3Home 0x0FFFFFF90 +#define TrP4Home 0x0FFFFFF98 +#define TrP5 0x0FFFFFFA0 +#define TrPreviousMode 0x0FFFFFFA8 +#define TrPreviousIrql 0x0FFFFFFA9 +#define TrFaultIndicator 0x0FFFFFFAA +#define TrExceptionActive 0x0FFFFFFAB +#define TrMxCsr 0x0FFFFFFAC +#define TrRax 0x0FFFFFFB0 +#define TrRcx 0x0FFFFFFB8 +#define TrRdx 0x0FFFFFFC0 +#define TrR8 0x0FFFFFFC8 +#define TrR9 0x0FFFFFFD0 +#define TrR10 0x0FFFFFFD8 +#define TrR11 0x0FFFFFFE0 +#define TrGsBase 0x0FFFFFFE8 +#define TrGsSwap 0x0FFFFFFE8 +#define TrXmm0 0x0FFFFFFF0 +#define TrXmm1 0x00000 +#define TrXmm2 0x00010 +#define TrXmm3 0x00020 +#define TrXmm4 0x00030 +#define TrXmm5 0x00040 +#define TrFaultAddress 0x00050 +#define TrTimeStampCKCL 0x00050 +#define TrDr0 0x00058 +#define TrDr1 0x00060 +#define TrDr2 0x00068 +#define TrDr3 0x00070 +#define TrDr6 0x00078 +#define TrDr7 0x00080 +#define TrDebugControl 0x00088 +#define TrLastBranchToRip 0x00090 +#define TrLastBranchFromRip 0x00098 +#define TrLastExceptionToRip 0x000A0 +#define TrLastExceptionFromRip 0x000A8 +#define TrLastBranchControl 0x00088 +#define TrLastBranchMSR 0x00090 +#define TrSegDs 0x000B0 +#define TrSegEs 0x000B2 +#define TrSegFs 0x000B4 +#define TrSegGs 0x000B6 +#define TrTrapFrame 0x000B8 +#define TrRbx 0x000C0 +#define TrRdi 0x000C8 +#define TrRsi 0x000D0 +#define TrRbp 0x000D8 +#define TrErrorCode 0x000E0 +#define TrTimeStampKlog 0x000E0 +#define TrRip 0x000E8 +#define TrSegCs 0x000F0 +#define TrLogging 0x000F3 +#define TrEFlags 0x000F8 +#define TrRsp 0x00100 +#define TrSegSs 0x00108 +#define TrCodePatchCycle 0x0010C +#define KTRAP_FRAME_LENGTH 0x00190 + +/* KTSS */ +#define TssRsp0 0x0004 +#define TssRsp1 0x000C +#define TssRsp2 0x0014 +#define TssPanicStack 0x0024 +#define TssMcaStack 0x002C +#define TssNmiStack 0x0034 +#define TssIoMapBase 0x0066 +#define TssLength 0x0068 + +/* SYSTEM_CONTEXT_SWITCH_INFORMATION (relative to FindAny) */ +#define TwFindAny 0x0000 +#define TwFindIdeal 0x0004 +#define TwFindLast 0x0008 +#define TwIdleAny 0x000C +#define TwIdleCurrent 0x0010 +#define TwIdleIdeal 0x0014 +#define TwIdleLast 0x0018 +#define TwPreemptAny 0x001C +#define TwPreemptCurrent 0x0020 +#define TwPreemptLast 0x0024 +#define TwSwitchToIdle 0x0028 + +/* KUSER_SHARED_DATA */ +#define UsTickCountMultiplier 0x00004 +#define UsInterruptTime 0x00008 +#define UsSystemTime 0x00014 +#define UsTimeZoneBias 0x00020 +#define UsImageNumberLow 0x0002C +#define UsImageNumberHigh 0x0002E +#define UsNtSystemRoot 0x00030 +#define UsMaxStackTraceDepth 0x00238 +#define UsCryptoExponent 0x0023C +#define UsTimeZoneId 0x00240 +#define UsLargePageMinimum 0x00244 +#define UsReserved2 0x00248 +#define UsNtProductType 0x00264 +#define UsProductTypeIsValid 0x00268 +#define UsNtMajorVersion 0x0026C +#define UsNtMinorVersion 0x00270 +#define UsProcessorFeatures 0x00274 +#define UsReserved1 0x002B4 +#define UsReserved3 0x002B8 +#define UsTimeSlip 0x002BC +#define UsAlternativeArchitecture 0x002C0 +#define UsSystemExpirationDate 0x002C8 +#define UsSuiteMask 0x002D0 +#define UsKdDebuggerEnabled 0x002D4 +#define UsActiveConsoleId 0x002D8 +#define UsDismountCount 0x002DC +#define UsComPlusPackage 0x002E0 +#define UsLastSystemRITEventTickCount 0x002E4 +#define UsNumberOfPhysicalPages 0x002E8 +#define UsSafeBootMode 0x002EC +#define UsTestRetInstruction 0x002F8 +#define UsSystemCall 0x00300 +#define UsSystemCallReturn 0x00304 +#define UsSystemCallPad 0x00308 +#define UsTickCount 0x00320 +#define UsTickCountQuad 0x00320 +#define UsWow64SharedInformation 0x00340 + +/* KWAIT_BLOCK */ +#define WbWaitListEntry 0x00000 +#define WbThread 0x00010 +#define WbObject 0x00018 +#define WbNextWaitBlock 0x00020 +#define WbWaitKey 0x00028 +#define WbWaitType 0x0002A + +/* Other stuff */ + +/* Thread Object */ +#define EeKernelEventPair 0x00000 +#define EtCid 0x00380 +#define KTHREAD_AUTO_ALIGNMENT_BIT 0x00000 +#define KTHREAD_CYCLE_CHARGE_PENDING_BIT 0x00004 +#define KTHREAD_GUI_THREAD_MASK 0x00100 +#define KTHREAD_CYCLE_CHARGE_PENDING_MASK 0x00010 +#define KI_SLIST_FAULT_COUNT_MAXIMUM 0x00400 +#define DEBUG_ACTIVE_CPU_THROTTLED 0x00020 +#define DEBUG_ACTIVE_CPU_THROTTLED_BIT 0x00005 + +/* Fiber */ +#define FbFiberData 0x00000 +#define FbExceptionList 0x00008 +#define FbStackBase 0x00010 +#define FbStackLimit 0x00018 +#define FbDeallocationStack 0x00020 +#define FbFiberContext 0x00030 +#define FbWx86Tib 0x00500 +#define FbActivationContextStackPointer 0x00508 +#define FbFlsData 0x00510 +#define FbGuaranteedStackBytes 0x00518 +#define FbTebFlags 0x0051C + +/* System Service Descriptor Table */ +#define NUMBER_SERVICE_TABLES 0x00002 +#define SERVICE_NUMBER_MASK 0x00FFF +#define SERVICE_TABLE_SHIFT 0x00007 +#define SERVICE_TABLE_MASK 0x00020 +#define SERVICE_TABLE_TEST 0x00020 +#define ThBase 0x00000 +#define ThLimit 0x00008 +#define SdBase 0x00000 +#define SdCount 0x00008 +#define SdLimit 0x00010 +#define SdNumber 0x00018 +#define SdLength 0x00020 + +/* Hal enlightenment structure definitions */ +#define HeEnlightenments 0x00000 +#define HeHypervisorConnected 0x00004 +#define HeEndOfInterrupt 0x00008 +#define HeApicWriteIcr 0x00010 +#define HeSpinCountMask 0x0001C +#define HeLongSpinWait 0x00020 + +/* Apc Record Structure */ +#define ArNormalRoutine 0x00000 +#define ArNormalContext 0x00008 +#define ArSystemArgument1 0x00010 +#define ArSystemArgument2 0x00018 +#define ApcRecordLength 0x00020 + +/* system IRQL and IDT vector conversion */ +#define MAXIMUM_IDTVECTOR 0x000FF +#define MAXIMUM_PRIMARY_VECTOR 0x000FF +#define PRIMARY_VECTOR_BASE 0x00030 +#define RPL_MASK 0x00003 +#define MODE_BIT 0x00000 +#define MODE_MASK 0x00001 + +/* Legacy Floating Status Bit Masks */ +#define FSW_INVALID_OPERATION 0x00001 +#define FSW_DENORMAL 0x00002 +#define FSW_ZERO_DIVIDE 0x00004 +#define FSW_OVERFLOW 0x00008 +#define FSW_UNDERFLOW 0x00010 +#define FSW_PRECISION 0x00020 +#define FSW_STACK_FAULT 0x00040 +#define FSW_ERROR_SUMMARY 0x00080 +#define FSW_CONDITION_CODE_0 0x00100 +#define FSW_CONDITION_CODE_1 0x00200 +#define FSW_CONDITION_CODE_2 0x00400 +#define FSW_CONDITION_CODE_3 0x04000 +#define FSW_ERROR_MASK 0x0003F + +/* Legacy Floating States */ +#define LEGACY_STATE_UNUSED 0x00000 +#define LEGACY_STATE_SWITCH 0x00001 + +/* MXCSR Floating Control/Status Bit Masks */ +#define XSW_INVALID_OPERATION 0x00001 +#define XSW_DENORMAL 0x00002 +#define XSW_ZERO_DIVIDE 0x00004 +#define XSW_OVERFLOW 0x00008 +#define XSW_UNDERFLOW 0x00010 +#define XSW_PRECISION 0x00020 +#define XSW_ERROR_MASK 0x0003F +#define XSW_ERROR_SHIFT 0x00007 +#define XCW_INVALID_OPERATION 0x00080 +#define XCW_DENORMAL 0x00100 +#define XCW_ZERO_DIVIDE 0x00200 +#define XCW_OVERFLOW 0x00400 +#define XCW_UNDERFLOW 0x00800 +#define XCW_PRECISION 0x01000 +#define XCW_ROUND_CONTROL 0x06000 +#define XCW_FLUSH_ZERO 0x08000 +#define INITIAL_FPCSR 0x0027F +#define INITIAL_MXCSR 0x01F80 + +/* CPU information structure */ +#define CpuEax 0x00000 +#define CpuEbx 0x00004 +#define CpuEcx 0x00008 +#define CpuEdx 0x0000C + +/* Usermode Callout User Frame */ +#define CkBuffer 0x00020 +#define CkLength 0x00028 +#define CkApiNumber 0x0002C +#define CkRsp 0x00048 +#define CkRip 0x00030 +#define CalloutFrameLength 0x00058 + +/* Machine Frame */ +#define MfRip 0x00000 +#define MfSegCs 0x00008 +#define MfEFlags 0x00010 +#define MfRsp 0x00018 +#define MfSegSs 0x00020 +#define MachineFrameLength 0x00028 + +/* DPC Stack Frame */ +#define DpRsp 0x00040 +#define DpRip 0x00028 + +/* Legacy Floating Save Area */ +#define LfControlWord 0x00000 +#define LfStatusWord 0x00002 +#define LfTagWord 0x00004 +#define LfErrorOpcode 0x00006 +#define LfErrorOffset 0x00008 +#define LfErrorSelector 0x0000C +#define LfDataOffset 0x00010 +#define LfDataSelector 0x00014 +#define LfMxCsr 0x00018 +#define LfMxCsr_Mask 0x0001C +#define LfFloatRegisters 0x00020 +#define LEGACY_SAVE_AREA_LENGTH 0x00200 + +/* Kernel Stack Control */ +#define KcCurrentBase 0x00200 +#define KcCurrentLimit 0x00208 +#define KcActualLimit 0x00220 +