Add ksamd64.h. This is a temporary solution until it's autogenerated. Note to self...
authorTimo Kreuzer <timo.kreuzer@reactos.org>
Mon, 28 Dec 2009 20:03:17 +0000 (20:03 +0000)
committerTimo Kreuzer <timo.kreuzer@reactos.org>
Mon, 28 Dec 2009 20:03:17 +0000 (20:03 +0000)
svn path=/branches/ros-amd64-bringup/; revision=44798

reactos/include/ndk/amd64/ksamd64.h [new file with mode: 0644]

diff --git a/reactos/include/ndk/amd64/ksamd64.h b/reactos/include/ndk/amd64/ksamd64.h
new file mode 100644 (file)
index 0000000..36a2268
--- /dev/null
@@ -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
+