[GENINC]
authorTimo Kreuzer <timo.kreuzer@reactos.org>
Sat, 26 Dec 2009 22:55:53 +0000 (22:55 +0000)
committerTimo Kreuzer <timo.kreuzer@reactos.org>
Sat, 26 Dec 2009 22:55:53 +0000 (22:55 +0000)
Lots of fixes and updates.

svn path=/trunk/; revision=44767

reactos/tools/geninc/data.c

index f3975e2..f7563b5 100644 (file)
@@ -27,7 +27,7 @@ typedef struct
 #define OFFSET(name, struct, member) {1, #name, FIELD_OFFSET(struct, member)}
 #define RELOFFSET(name, struct, member, to) {1, #name, FIELD_OFFSET(struct, member) - FIELD_OFFSET(struct, to)}
 #define SIZE(name, struct) {1, #name, sizeof(struct)}
 #define OFFSET(name, struct, member) {1, #name, FIELD_OFFSET(struct, member)}
 #define RELOFFSET(name, struct, member, to) {1, #name, FIELD_OFFSET(struct, member) - FIELD_OFFSET(struct, to)}
 #define SIZE(name, struct) {1, #name, sizeof(struct)}
-#define HEADER(x) {2, "/* " x " */", 0}
+#define HEADER(x) {2, x, 0}
 
 ASMGENDATA Table[] =
 {
 
 ASMGENDATA Table[] =
 {
@@ -90,6 +90,8 @@ ASMGENDATA Table[] =
 //    CONSTANT(PERF_PROFILE_FLAG),
 //    CONSTANT(PERF_SYSCALL_OFFSET),
 //    CONSTANT(PERF_SYSCALL_FLAG),
 //    CONSTANT(PERF_PROFILE_FLAG),
 //    CONSTANT(PERF_SYSCALL_OFFSET),
 //    CONSTANT(PERF_SYSCALL_FLAG),
+//    CONSTANT(PERF_SPINLOCK_OFFSET),
+//    CONSTANT(PERF_SPINLOCK_FLAG),
 //    CONSTANT(NTOS_YIELD_MACRO),
 
     HEADER("Process states"),
 //    CONSTANT(NTOS_YIELD_MACRO),
 
     HEADER("Process states"),
@@ -128,6 +130,7 @@ ASMGENDATA Table[] =
     CONSTANT(STATUS_INVALID_PARAMETER),
     CONSTANT(STATUS_INVALID_PARAMETER_1),
     CONSTANT(STATUS_INVALID_SYSTEM_SERVICE),
     CONSTANT(STATUS_INVALID_PARAMETER),
     CONSTANT(STATUS_INVALID_PARAMETER_1),
     CONSTANT(STATUS_INVALID_SYSTEM_SERVICE),
+//    CONSTANT(STATUS_INVALID_THREAD),
     CONSTANT(STATUS_INTEGER_DIVIDE_BY_ZERO),
     CONSTANT(STATUS_INTEGER_OVERFLOW),
     CONSTANT(STATUS_IN_PAGE_ERROR),
     CONSTANT(STATUS_INTEGER_DIVIDE_BY_ZERO),
     CONSTANT(STATUS_INTEGER_OVERFLOW),
     CONSTANT(STATUS_IN_PAGE_ERROR),
@@ -227,6 +230,27 @@ ASMGENDATA Table[] =
     {1, "SYNCH_LEVEL", (IPI_LEVEL - 2)},
     RAW("#endif"),
 
     {1, "SYNCH_LEVEL", (IPI_LEVEL - 2)},
     RAW("#endif"),
 
+    HEADER("Stack sizes"),
+    CONSTANT(KERNEL_STACK_SIZE),
+    CONSTANT(KERNEL_LARGE_STACK_SIZE),
+    CONSTANT(KERNEL_LARGE_STACK_COMMIT),
+//    CONSTANT(DOUBLE_FAULT_STACK_SIZE),
+#ifdef _M_AMD64
+    CONSTANT(KERNEL_MCA_EXCEPTION_STACK_SIZE),
+    CONSTANT(NMI_STACK_SIZE),
+#endif
+
+    HEADER("Thread flags"),
+//    CONSTANT(THREAD_FLAGS_CYCLE_PROFILING),
+//    CONSTANT(THREAD_FLAGS_CYCLE_PROFILING_LOCK_BIT),
+//    CONSTANT(THREAD_FLAGS_CYCLE_PROFILING_LOCK),
+//    CONSTANT(THREAD_FLAGS_COUNTER_PROFILING),
+//    CONSTANT(THREAD_FLAGS_COUNTER_PROFILING_LOCK_BIT),
+//    CONSTANT(THREAD_FLAGS_COUNTER_PROFILING_LOCK),
+//    CONSTANT(THREAD_FLAGS_CPU_THROTTLED),
+//    CONSTANT(THREAD_FLAGS_CPU_THROTTLED_BIT),
+//    CONSTANT(THREAD_FLAGS_ACCOUNTING_ANY),
+
     HEADER("Miscellaneous Definitions"),
 //    CONSTANT(BASE_PRIORITY_THRESHOLD),
 //    CONSTANT(EVENT_PAIR_INCREMENT),
     HEADER("Miscellaneous Definitions"),
 //    CONSTANT(BASE_PRIORITY_THRESHOLD),
 //    CONSTANT(EVENT_PAIR_INCREMENT),
@@ -254,6 +278,21 @@ ASMGENDATA Table[] =
 //    CONSTANT(MM_SHARED_USER_DATA_VA),
     CONSTANT(PAGE_SIZE),
 //    CONSTANT(KERNEL_STACK_CONTROL_LARGE_STACK),
 //    CONSTANT(MM_SHARED_USER_DATA_VA),
     CONSTANT(PAGE_SIZE),
 //    CONSTANT(KERNEL_STACK_CONTROL_LARGE_STACK),
+//    CONSTANT(KI_DPC_ALL_FLAGS),
+//    CONSTANT(DISPATCH_LENGTH),
+    CONSTANT(MAXIMUM_IDTVECTOR),
+//    CONSTANT(MAXIMUM_PRIMARY_VECTOR),
+    CONSTANT(PRIMARY_VECTOR_BASE),
+    CONSTANT(RPL_MASK),
+    CONSTANT(MODE_MASK),
+//    CONSTANT(KTHREAD_AUTO_ALIGNMENT_BIT),
+//    CONSTANT(KTHREAD_GUI_THREAD_MASK),
+//    CONSTANT(KI_SLIST_FAULT_COUNT_MAXIMUM),
+    CONSTANT(NUMBER_SERVICE_TABLES),
+    CONSTANT(SERVICE_NUMBER_MASK),
+    CONSTANT(SERVICE_TABLE_SHIFT),
+    CONSTANT(SERVICE_TABLE_MASK),
+    CONSTANT(SERVICE_TABLE_TEST),
 
 /* ARCHITECTURE SPECIFIC CONTSTANTS ******************************************/
 
 
 /* ARCHITECTURE SPECIFIC CONTSTANTS ******************************************/
 
@@ -283,7 +322,10 @@ ASMGENDATA Table[] =
     CONSTANT(CR4_PGE),
     CONSTANT(CR4_FXSR),
     CONSTANT(CR4_XMMEXCPT),
     CONSTANT(CR4_PGE),
     CONSTANT(CR4_FXSR),
     CONSTANT(CR4_XMMEXCPT),
-#ifdef _M_AMD64
+#if defined(_M_IX86)
+//    CONSTANT(CR4_PGE_V),
+//    CONSTANT(CR4_XSAVE),
+#elif defined(_M_AMD64)
     CONSTANT(CR4_CHANNELS),
 #endif
 
     CONSTANT(CR4_CHANNELS),
 #endif
 
@@ -294,6 +336,10 @@ ASMGENDATA Table[] =
     CONSTANT(KF_LARGE_PAGE),
     CONSTANT(KF_CMPXCHG8B),
     CONSTANT(KF_FAST_SYSCALL),
     CONSTANT(KF_LARGE_PAGE),
     CONSTANT(KF_CMPXCHG8B),
     CONSTANT(KF_FAST_SYSCALL),
+#ifdef _M_IX86
+    CONSTANT(KF_V86_VIS),
+//    CONSTANT(KF_XSTATE),
+#endif
 
     HEADER("Machine type definitions"),
     CONSTANT(MACHINE_TYPE_ISA),
 
     HEADER("Machine type definitions"),
     CONSTANT(MACHINE_TYPE_ISA),
@@ -318,6 +364,53 @@ ASMGENDATA Table[] =
     CONSTANT(KGDT_NMI_TSS),
     CONSTANT(KGDT_LDT),
 
     CONSTANT(KGDT_NMI_TSS),
     CONSTANT(KGDT_LDT),
 
+    CONSTANT(NPX_STATE_NOT_LOADED),
+    CONSTANT(NPX_STATE_LOADED),
+//    CONSTANT(NPX_MASK_LAZY),
+
+/*
+    HEADER("VDM constants"),
+    CONSTANT(VDM_INDEX_Invalid),
+    CONSTANT(VDM_INDEX_0F),
+    CONSTANT(VDM_INDEX_ESPrefix),
+    CONSTANT(VDM_INDEX_CSPrefix),
+    CONSTANT(VDM_INDEX_SSPrefix),
+    CONSTANT(VDM_INDEX_DSPrefix),
+    CONSTANT(VDM_INDEX_FSPrefix),
+    CONSTANT(VDM_INDEX_GSPrefix),
+    CONSTANT(VDM_INDEX_OPER32Prefix),
+    CONSTANT(VDM_INDEX_ADDR32Prefix),
+    CONSTANT(VDM_INDEX_INSB),
+    CONSTANT(VDM_INDEX_INSW),
+    CONSTANT(VDM_INDEX_OUTSB),
+    CONSTANT(VDM_INDEX_OUTSW),
+    CONSTANT(VDM_INDEX_PUSHF),
+    CONSTANT(VDM_INDEX_POPF),
+    CONSTANT(VDM_INDEX_INTnn),
+    CONSTANT(VDM_INDEX_INTO),
+    CONSTANT(VDM_INDEX_IRET),
+    CONSTANT(VDM_INDEX_NPX),
+    CONSTANT(VDM_INDEX_INBimm),
+    CONSTANT(VDM_INDEX_INWimm),
+    CONSTANT(VDM_INDEX_OUTBimm),
+    CONSTANT(VDM_INDEX_OUTWimm),
+    CONSTANT(VDM_INDEX_INB),
+    CONSTANT(VDM_INDEX_INW),
+    CONSTANT(VDM_INDEX_OUTB),
+    CONSTANT(VDM_INDEX_OUTW),
+    CONSTANT(VDM_INDEX_LOCKPrefix),
+    CONSTANT(VDM_INDEX_REPNEPrefix),
+    CONSTANT(VDM_INDEX_REPPrefix),
+    CONSTANT(VDM_INDEX_CLI),
+    CONSTANT(VDM_INDEX_STI),
+    CONSTANT(VDM_INDEX_HLT),
+    CONSTANT(MAX_VDM_INDEX),
+*/
+    CONSTANT(PF_XMMI_INSTRUCTIONS_AVAILABLE),
+    CONSTANT(EFLAG_SELECT),
+//    CONSTANT(IPI_FREEZE),
+//    CONSTANT(XSAVE_PRESENT),
+
 #elif defined(_M_AMD64)
 
     HEADER("Hypervisor Enlightenment Definitions"),
 #elif defined(_M_AMD64)
 
     HEADER("Hypervisor Enlightenment Definitions"),
@@ -368,16 +461,6 @@ ASMGENDATA Table[] =
     CONSTANT(MSR_DEBUG_CTL_LBR),
     CONSTANT(MSR_DEBUG_CRL_BTF),
 
     CONSTANT(MSR_DEBUG_CTL_LBR),
     CONSTANT(MSR_DEBUG_CRL_BTF),
 
-    HEADER("Stack sizes"),
-    CONSTANT(KERNEL_STACK_SIZE),
-    CONSTANT(KERNEL_LARGE_STACK_SIZE),
-    CONSTANT(KERNEL_LARGE_STACK_COMMIT),
-    CONSTANT(DOUBLE_FAULT_STACK_SIZE),
-#ifdef _M_AMD64
-    CONSTANT(KERNEL_MCA_EXCEPTION_STACK_SIZE),
-    CONSTANT(NMI_STACK_SIZE),
-#endif
-
 #endif
 
 #if 0
 #endif
 
 #if 0
@@ -403,9 +486,11 @@ ASMGENDATA Table[] =
 
 /* STRUCTURE OFFSETS *********************************************************/
 
 
 /* STRUCTURE OFFSETS *********************************************************/
 
-    HEADER("CLIENT_ID"),
-    OFFSET(CidUniqueProcess, CLIENT_ID, UniqueProcess),
-    OFFSET(CidUniqueThread, CLIENT_ID, UniqueThread),
+    HEADER("KAFFINITY_EX"),
+//    OFFSET(AfBitmap, KAFFINITY_EX, Bitmap),
+
+    HEADER("Aligned Affinity"),
+//    OFFSET(AfsCpuSet, ???, CpuSet),
 
     HEADER("KAPC"),
     OFFSET(ApType, KAPC, Type),
 
     HEADER("KAPC"),
     OFFSET(ApType, KAPC, Type),
@@ -430,6 +515,10 @@ ASMGENDATA Table[] =
     OFFSET(AsKernelApcPending, KAPC_STATE, KernelApcPending),
     OFFSET(AsUserApcPending, KAPC_STATE, UserApcPending),
 
     OFFSET(AsKernelApcPending, KAPC_STATE, KernelApcPending),
     OFFSET(AsUserApcPending, KAPC_STATE, UserApcPending),
 
+    HEADER("CLIENT_ID"),
+    OFFSET(CidUniqueProcess, CLIENT_ID, UniqueProcess),
+    OFFSET(CidUniqueThread, CLIENT_ID, UniqueThread),
+
     HEADER("RTL_CRITICAL_SECTION"),
     OFFSET(CsDebugInfo, RTL_CRITICAL_SECTION, DebugInfo),
     OFFSET(CsLockCount, RTL_CRITICAL_SECTION, LockCount),
     HEADER("RTL_CRITICAL_SECTION"),
     OFFSET(CsDebugInfo, RTL_CRITICAL_SECTION, DebugInfo),
     OFFSET(CsLockCount, RTL_CRITICAL_SECTION, LockCount),
@@ -530,12 +619,20 @@ ASMGENDATA Table[] =
     OFFSET(IoPointer, IO_STATUS_BLOCK, Pointer),
     OFFSET(IoInformation, IO_STATUS_BLOCK, Information),
 
     OFFSET(IoPointer, IO_STATUS_BLOCK, Pointer),
     OFFSET(IoInformation, IO_STATUS_BLOCK, Information),
 
+#ifdef _M_IX86
+//  Kernel Stack Control Structure Offset (relative to initial stack pointer) Definitions
+//    RELOFFSET(KcPreviousBase, KERNEL_STACK_CONTROL, PreviousBase, ???),
+//    RELOFFSET(KcPreviousLimit, KERNEL_STACK_CONTROL, PreviousBase, ???),
+//    RELOFFSET(KcPreviousKernel, KERNEL_STACK_CONTROL, PreviousBase, ???),
+//    RELOFFSET(KcPreviousInitial, KERNEL_STACK_CONTROL, PreviousBase, ???),
+#else
     HEADER("KERNEL_STACK_CONTROL"),
 //    OFFSET(KcPreviousBase, KERNEL_STACK_CONTROL, PreviousBase),
 //    OFFSET(KcPreviousLimit, KERNEL_STACK_CONTROL, PreviousLimit),
 //    OFFSET(KcPreviousKernel, KERNEL_STACK_CONTROL, PreviousKernel),
 //    OFFSET(KcPreviousInitial, KERNEL_STACK_CONTROL, PreviousInitial),
 //    SIZE(KERNEL_STACK_CONTROL_LENGTH, KERNEL_STACK_CONTROL),
     HEADER("KERNEL_STACK_CONTROL"),
 //    OFFSET(KcPreviousBase, KERNEL_STACK_CONTROL, PreviousBase),
 //    OFFSET(KcPreviousLimit, KERNEL_STACK_CONTROL, PreviousLimit),
 //    OFFSET(KcPreviousKernel, KERNEL_STACK_CONTROL, PreviousKernel),
 //    OFFSET(KcPreviousInitial, KERNEL_STACK_CONTROL, PreviousInitial),
 //    SIZE(KERNEL_STACK_CONTROL_LENGTH, KERNEL_STACK_CONTROL),
+#endif
 
     HEADER("KNODE"),
 //    OFFSET(KnRight, KNODE, Right),
 
     HEADER("KNODE"),
 //    OFFSET(KnRight, KNODE, Right),
@@ -564,7 +661,7 @@ ASMGENDATA Table[] =
     HEADER("LARGE_INTEGER"),
     OFFSET(LiLowPart, LARGE_INTEGER, LowPart),
     OFFSET(LiHighPart, LARGE_INTEGER, HighPart),
     HEADER("LARGE_INTEGER"),
     OFFSET(LiLowPart, LARGE_INTEGER, LowPart),
     OFFSET(LiHighPart, LARGE_INTEGER, HighPart),
-
+#if 0
     HEADER("LOADER_PARAMETER_BLOCK (rel. to LoadOrderListHead)"),
     RELOFFSET(LpbLoadOrderListHead, LOADER_PARAMETER_BLOCK, LoadOrderListHead, LoadOrderListHead),
     RELOFFSET(LpbMemoryDescriptorListHead, LOADER_PARAMETER_BLOCK, MemoryDescriptorListHead, LoadOrderListHead),
     HEADER("LOADER_PARAMETER_BLOCK (rel. to LoadOrderListHead)"),
     RELOFFSET(LpbLoadOrderListHead, LOADER_PARAMETER_BLOCK, LoadOrderListHead, LoadOrderListHead),
     RELOFFSET(LpbMemoryDescriptorListHead, LOADER_PARAMETER_BLOCK, MemoryDescriptorListHead, LoadOrderListHead),
@@ -579,6 +676,8 @@ ASMGENDATA Table[] =
     RELOFFSET(LpbArcBootDeviceName, LOADER_PARAMETER_BLOCK, ArcBootDeviceName, LoadOrderListHead),
     RELOFFSET(LpbArcHalDeviceName, LOADER_PARAMETER_BLOCK, ArcHalDeviceName, LoadOrderListHead),
     RELOFFSET(LpbLoadOptions, LOADER_PARAMETER_BLOCK, LoadOptions, LoadOrderListHead),
     RELOFFSET(LpbArcBootDeviceName, LOADER_PARAMETER_BLOCK, ArcBootDeviceName, LoadOrderListHead),
     RELOFFSET(LpbArcHalDeviceName, LOADER_PARAMETER_BLOCK, ArcHalDeviceName, LoadOrderListHead),
     RELOFFSET(LpbLoadOptions, LOADER_PARAMETER_BLOCK, LoadOptions, LoadOrderListHead),
+    RELOFFSET(LpbExtension, LOADER_PARAMETER_BLOCK, Extension, LoadOrderListHead),
+#endif
 
     HEADER("LIST_ENTRY"),
     OFFSET(LsFlink, LIST_ENTRY, Flink),
 
     HEADER("LIST_ENTRY"),
     OFFSET(LsFlink, LIST_ENTRY, Flink),
@@ -619,7 +718,16 @@ ASMGENDATA Table[] =
     OFFSET(PrSignalState, KPROCESS, Header.SignalState),
     OFFSET(PrProfileListHead, KPROCESS, ProfileListHead),
     OFFSET(PrDirectoryTableBase, KPROCESS, DirectoryTableBase),
     OFFSET(PrSignalState, KPROCESS, Header.SignalState),
     OFFSET(PrProfileListHead, KPROCESS, ProfileListHead),
     OFFSET(PrDirectoryTableBase, KPROCESS, DirectoryTableBase),
+#ifdef _M_IX86
+    OFFSET(PrLdtDescriptor, KPROCESS, LdtDescriptor),
+#endif
     OFFSET(PrIopmOffset, KPROCESS, IopmOffset),
     OFFSET(PrIopmOffset, KPROCESS, IopmOffset),
+#ifdef _M_IX86
+    OFFSET(PrInt21Descriptor, KPROCESS, Int21Descriptor),
+    OFFSET(PrVdmTrapcHandler, KPROCESS, VdmTrapcHandler),
+//    OFFSET(PrVdmObjects, KPROCESS, VdmObjects),
+    OFFSET(PrFlags, KPROCESS, Flags),
+#endif
 //    OFFSET(PrInstrumentationCallback, KPROCESS, InstrumentationCallback),
     OFFSET(PrActiveProcessors, KPROCESS, ActiveProcessors),
     OFFSET(PrKernelTime, KPROCESS, KernelTime),
 //    OFFSET(PrInstrumentationCallback, KPROCESS, InstrumentationCallback),
     OFFSET(PrActiveProcessors, KPROCESS, ActiveProcessors),
     OFFSET(PrKernelTime, KPROCESS, KernelTime),
@@ -711,47 +819,48 @@ ASMGENDATA Table[] =
     OFFSET(ThType, KTHREAD, DispatcherHeader.Type),
 //    OFFSET(ThNpxIrql, KTHREAD, NpxIrql),
     OFFSET(ThSize, KTHREAD, DispatcherHeader.Size),
     OFFSET(ThType, KTHREAD, DispatcherHeader.Type),
 //    OFFSET(ThNpxIrql, KTHREAD, NpxIrql),
     OFFSET(ThSize, KTHREAD, DispatcherHeader.Size),
+    OFFSET(ThLock, KTHREAD, DispatcherHeader.Lock),
     OFFSET(ThDebugActive, KTHREAD, DispatcherHeader.DebugActive),
     OFFSET(ThDebugActive, KTHREAD, DispatcherHeader.DebugActive),
+//    OFFSET(ThThreadControlFlags, KTHREAD, DispatcherHeader.ThreadControlFlags),
     OFFSET(ThSignalState, KTHREAD, DispatcherHeader.SignalState),
 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
     OFFSET(ThCycleTime, KTHREAD, CycleTime),
     OFFSET(ThSignalState, KTHREAD, DispatcherHeader.SignalState),
 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
     OFFSET(ThCycleTime, KTHREAD, CycleTime),
+    OFFSET(ThHighCycleTime, KTHREAD, HighCycleTime),
 #endif
     OFFSET(ThInitialStack, KTHREAD, InitialStack),
     OFFSET(ThStackLimit, KTHREAD, StackLimit),
     OFFSET(ThKernelStack, KTHREAD, KernelStack),
     OFFSET(ThThreadLock, KTHREAD, ThreadLock),
 #endif
     OFFSET(ThInitialStack, KTHREAD, InitialStack),
     OFFSET(ThStackLimit, KTHREAD, StackLimit),
     OFFSET(ThKernelStack, KTHREAD, KernelStack),
     OFFSET(ThThreadLock, KTHREAD, ThreadLock),
+//    OFFSET(ThRunning, KTHREAD, Running),
+    OFFSET(ThAlerted, KTHREAD, Alerted),
+//    OFFSET(ThMiscFlags, KTHREAD, MiscFlags),
     OFFSET(ThApcState, KTHREAD, ApcState),
     OFFSET(ThApcState, KTHREAD, ApcState),
+    OFFSET(ThPriority, KTHREAD, Priority),
+    OFFSET(ThSwapBusy, KTHREAD, SwapBusy),
     OFFSET(ThNextProcessor, KTHREAD, NextProcessor),
     OFFSET(ThDeferredProcessor, KTHREAD, DeferredProcessor),
     OFFSET(ThNextProcessor, KTHREAD, NextProcessor),
     OFFSET(ThDeferredProcessor, KTHREAD, DeferredProcessor),
-    OFFSET(ThAdjustReason, KTHREAD, AdjustReason),
-    OFFSET(ThAdjustIncrement, KTHREAD, AdjustIncrement),
     OFFSET(ThApcQueueLock, KTHREAD, ApcQueueLock),
     OFFSET(ThApcQueueLock, KTHREAD, ApcQueueLock),
+    OFFSET(ThContextSwitches, KTHREAD, ContextSwitches),
+    OFFSET(ThState, KTHREAD, State),
+    OFFSET(ThNpxState, KTHREAD, NpxState),
+    OFFSET(ThWaitIrql, KTHREAD, WaitIrql),
+    OFFSET(ThWaitMode, KTHREAD, WaitMode),
     OFFSET(ThWaitStatus, KTHREAD, WaitStatus),
     OFFSET(ThWaitBlockList, KTHREAD, WaitBlockList),
     OFFSET(ThGateObject, KTHREAD, GateObject),
     OFFSET(ThWaitStatus, KTHREAD, WaitStatus),
     OFFSET(ThWaitBlockList, KTHREAD, WaitBlockList),
     OFFSET(ThGateObject, KTHREAD, GateObject),
-    OFFSET(ThWaitReason, KTHREAD, WaitReason),
-    OFFSET(ThPriority, KTHREAD, Priority),
-    OFFSET(ThSwapBusy, KTHREAD, SwapBusy),
-    OFFSET(ThAlerted, KTHREAD, Alerted),
     OFFSET(ThWaitListEntry, KTHREAD, WaitListEntry),
     OFFSET(ThSwapListEntry, KTHREAD, SwapListEntry),
     OFFSET(ThQueue, KTHREAD, Queue),
     OFFSET(ThWaitListEntry, KTHREAD, WaitListEntry),
     OFFSET(ThSwapListEntry, KTHREAD, SwapListEntry),
     OFFSET(ThQueue, KTHREAD, Queue),
+    OFFSET(ThWaitTime, KTHREAD, WaitTime),
+    OFFSET(ThCombinedApcDisable, KTHREAD, CombinedApcDisable),
+    OFFSET(ThKernelApcDisable, KTHREAD, KernelApcDisable),
+    OFFSET(ThSpecialApcDisable, KTHREAD, SpecialApcDisable),
     OFFSET(ThTeb, KTHREAD, Teb),
     OFFSET(ThTimer, KTHREAD, Timer),
     OFFSET(ThThreadFlags, KTHREAD, ThreadFlags),
     OFFSET(ThTeb, KTHREAD, Teb),
     OFFSET(ThTimer, KTHREAD, Timer),
     OFFSET(ThThreadFlags, KTHREAD, ThreadFlags),
+    OFFSET(ThServiceTable, KTHREAD, ServiceTable),
     OFFSET(ThWaitBlock, KTHREAD, WaitBlock),
     OFFSET(ThWaitBlock, KTHREAD, WaitBlock),
-    OFFSET(ThPreviousMode, KTHREAD, PreviousMode),
     OFFSET(ThResourceIndex, KTHREAD, ResourceIndex),
     OFFSET(ThResourceIndex, KTHREAD, ResourceIndex),
-    OFFSET(ThLargeStack, KTHREAD, LargeStack),
-    OFFSET(ThContextSwitches, KTHREAD, ContextSwitches),
-    OFFSET(ThState, KTHREAD, State),
-    OFFSET(ThNpxState, KTHREAD, NpxState),
-    OFFSET(ThWaitIrql, KTHREAD, WaitIrql),
-    OFFSET(ThWaitMode, KTHREAD, WaitMode),
-    OFFSET(ThWaitTime, KTHREAD, WaitTime),
-    OFFSET(ThCombinedApcDisable, KTHREAD, CombinedApcDisable),
-    OFFSET(ThKernelApcDisable, KTHREAD, KernelApcDisable),
-    OFFSET(ThSpecialApcDisable, KTHREAD, SpecialApcDisable),
     OFFSET(ThQueueListEntry, KTHREAD, QueueListEntry),
     OFFSET(ThTrapFrame, KTHREAD, TrapFrame),
 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
     OFFSET(ThQueueListEntry, KTHREAD, QueueListEntry),
     OFFSET(ThTrapFrame, KTHREAD, TrapFrame),
 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
@@ -763,30 +872,35 @@ ASMGENDATA Table[] =
     OFFSET(ThIdealProcessor, KTHREAD, IdealProcessor),
     OFFSET(ThBasePriority, KTHREAD, BasePriority),
     OFFSET(ThPriorityDecrement, KTHREAD, PriorityDecrement),
     OFFSET(ThIdealProcessor, KTHREAD, IdealProcessor),
     OFFSET(ThBasePriority, KTHREAD, BasePriority),
     OFFSET(ThPriorityDecrement, KTHREAD, PriorityDecrement),
+    OFFSET(ThAdjustReason, KTHREAD, AdjustReason),
+    OFFSET(ThAdjustIncrement, KTHREAD, AdjustIncrement),
+    OFFSET(ThPreviousMode, KTHREAD, PreviousMode),
     OFFSET(ThSaturation, KTHREAD, Saturation),
 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
     OFFSET(ThSystemCallNumber, KTHREAD, SystemCallNumber),
 #endif
     OFFSET(ThSaturation, KTHREAD, Saturation),
 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
     OFFSET(ThSystemCallNumber, KTHREAD, SystemCallNumber),
 #endif
+    OFFSET(ThFreezeCount, KTHREAD, FreezeCount),
     OFFSET(ThUserAffinity, KTHREAD, UserAffinity),
     OFFSET(ThProcess, KTHREAD, Process),
     OFFSET(ThAffinity, KTHREAD, Affinity),
     OFFSET(ThUserAffinity, KTHREAD, UserAffinity),
     OFFSET(ThProcess, KTHREAD, Process),
     OFFSET(ThAffinity, KTHREAD, Affinity),
+    OFFSET(ThUserIdealProcessor, KTHREAD, UserIdealProcessor),
     OFFSET(ThApcStatePointer, KTHREAD, ApcStatePointer),
     OFFSET(ThSavedApcState, KTHREAD, SavedApcState),
     OFFSET(ThApcStatePointer, KTHREAD, ApcStatePointer),
     OFFSET(ThSavedApcState, KTHREAD, SavedApcState),
-    OFFSET(ThFreezeCount, KTHREAD, FreezeCount),
+    OFFSET(ThWaitReason, KTHREAD, WaitReason),
     OFFSET(ThSuspendCount, KTHREAD, SuspendCount),
     OFFSET(ThSuspendCount, KTHREAD, SuspendCount),
-    OFFSET(ThUserIdealProcessor, KTHREAD, UserIdealProcessor),
 //    OFFSET(ThCodePatchInProgress, KTHREAD, CodePatchInProgress),
     OFFSET(ThWin32Thread, KTHREAD, Win32Thread),
     OFFSET(ThStackBase, KTHREAD, StackBase),
     OFFSET(ThSuspendApc, KTHREAD, SuspendApc),
 //    OFFSET(ThCodePatchInProgress, KTHREAD, CodePatchInProgress),
     OFFSET(ThWin32Thread, KTHREAD, Win32Thread),
     OFFSET(ThStackBase, KTHREAD, StackBase),
     OFFSET(ThSuspendApc, KTHREAD, SuspendApc),
+    OFFSET(ThPowerState, KTHREAD, PowerState),
     OFFSET(ThKernelTime, KTHREAD, KernelTime),
     OFFSET(ThLegoData, KTHREAD, LegoData),
     OFFSET(ThKernelTime, KTHREAD, KernelTime),
     OFFSET(ThLegoData, KTHREAD, LegoData),
-    OFFSET(ThPowerState, KTHREAD, PowerState),
+    OFFSET(ThLargeStack, KTHREAD, LargeStack),
     OFFSET(ThUserTime, KTHREAD, UserTime),
     OFFSET(ThSuspendSemaphore, KTHREAD, SuspendSemaphore),
     OFFSET(ThSListFaultCount, KTHREAD, SListFaultCount),
     OFFSET(ThUserTime, KTHREAD, UserTime),
     OFFSET(ThSuspendSemaphore, KTHREAD, SuspendSemaphore),
     OFFSET(ThSListFaultCount, KTHREAD, SListFaultCount),
-    OFFSET(ThMutantListHead, KTHREAD, MutantListHead),
     OFFSET(ThThreadListEntry, KTHREAD, ThreadListEntry),
     OFFSET(ThThreadListEntry, KTHREAD, ThreadListEntry),
+    OFFSET(ThMutantListHead, KTHREAD, MutantListHead),
     OFFSET(ThSListFaultAddress, KTHREAD, SListFaultAddress),
     SIZE(KernelThreadObjectLength, KTHREAD),
     SIZE(ExecutiveThreadObjectLength, ETHREAD),
     OFFSET(ThSListFaultAddress, KTHREAD, SListFaultAddress),
     SIZE(KernelThreadObjectLength, KTHREAD),
     SIZE(ExecutiveThreadObjectLength, ETHREAD),
@@ -852,6 +966,7 @@ ASMGENDATA Table[] =
     OFFSET(UsLastSystemRITEventTickCount, KUSER_SHARED_DATA, LastSystemRITEventTickCount),
     OFFSET(UsNumberOfPhysicalPages, KUSER_SHARED_DATA, NumberOfPhysicalPages),
     OFFSET(UsSafeBootMode, KUSER_SHARED_DATA, SafeBootMode),
     OFFSET(UsLastSystemRITEventTickCount, KUSER_SHARED_DATA, LastSystemRITEventTickCount),
     OFFSET(UsNumberOfPhysicalPages, KUSER_SHARED_DATA, NumberOfPhysicalPages),
     OFFSET(UsSafeBootMode, KUSER_SHARED_DATA, SafeBootMode),
+//    OFFSET(UsTscQpcData, KUSER_SHARED_DATA, TscQpcData),
     OFFSET(UsTestRetInstruction, KUSER_SHARED_DATA, TestRetInstruction),
     OFFSET(UsSystemCall, KUSER_SHARED_DATA, SystemCall),
     OFFSET(UsSystemCallReturn, KUSER_SHARED_DATA, SystemCallReturn),
     OFFSET(UsTestRetInstruction, KUSER_SHARED_DATA, TestRetInstruction),
     OFFSET(UsSystemCall, KUSER_SHARED_DATA, SystemCall),
     OFFSET(UsSystemCallReturn, KUSER_SHARED_DATA, SystemCallReturn),
@@ -870,14 +985,114 @@ ASMGENDATA Table[] =
 
 #if defined(_M_IX86)
 
 
 #if defined(_M_IX86)
 
+    HEADER("CONTEXT"),
+    OFFSET(CsContextFlags, CONTEXT, ContextFlags),
+    OFFSET(CsDr0, CONTEXT, Dr0),
+    OFFSET(CsDr1, CONTEXT, Dr1),
+    OFFSET(CsDr2, CONTEXT, Dr2),
+    OFFSET(CsDr3, CONTEXT, Dr3),
+    OFFSET(CsDr6, CONTEXT, Dr6),
+    OFFSET(CsDr7, CONTEXT, Dr7),
+    OFFSET(CsFloatSave, CONTEXT, FloatSave),
+    OFFSET(CsSegGs, CONTEXT, SegGs),
+    OFFSET(CsSegFs, CONTEXT, SegFs),
+    OFFSET(CsSegEs, CONTEXT, SegEs),
+    OFFSET(CsSegDs, CONTEXT, SegDs),
+    OFFSET(CsEdi, CONTEXT, Edi),
+    OFFSET(CsEsi, CONTEXT, Esi),
+    OFFSET(CsEbx, CONTEXT, Ebx),
+    OFFSET(CsEdx, CONTEXT, Edx),
+    OFFSET(CsEcx, CONTEXT, Ecx),
+    OFFSET(CsEax, CONTEXT, Eax),
+    OFFSET(CsEbp, CONTEXT, Ebp),
+    OFFSET(CsEip, CONTEXT, Eip),
+    OFFSET(CsSegCs, CONTEXT, SegCs),
+    OFFSET(CsEflags, CONTEXT, EFlags),
+    OFFSET(CsEsp, CONTEXT, Esp),
+    OFFSET(CsSegSs, CONTEXT, SegSs),
+    OFFSET(CsExtendedRegisters, CONTEXT, ExtendedRegisters),
+    SIZE(ContextFrameLength, CONTEXT),
+    SIZE(CONTEXT_LENGTH, CONTEXT),
+
+    HEADER("KGDTENTRY"),
+    OFFSET(KgdtBaseLow, KGDTENTRY, BaseLow),
+    OFFSET(KgdtBaseMid, KGDTENTRY, HighWord.Bytes.BaseMid),
+    OFFSET(KgdtBaseHi, KGDTENTRY, HighWord.Bytes.BaseHi),
+    OFFSET(KgdtLimitHi, KGDTENTRY, HighWord.Bytes.Flags2),
+    OFFSET(KgdtLimitLow, KGDTENTRY, LimitLow),
+
+    HEADER("KTRAP_FRAME"),
+    OFFSET(TsExceptionList, KTRAP_FRAME, ExceptionList),
+    OFFSET(TsPreviousPreviousMode, KTRAP_FRAME, PreviousPreviousMode),
+    OFFSET(TsSegGs, KTRAP_FRAME, SegGs),
+    OFFSET(TsSegFs, KTRAP_FRAME, SegFs),
+    OFFSET(TsSegEs, KTRAP_FRAME, SegEs),
+    OFFSET(TsSegDs, KTRAP_FRAME, SegDs),
+    OFFSET(TsEdi, KTRAP_FRAME, Edi),
+    OFFSET(TsEsi, KTRAP_FRAME, Esi),
+    OFFSET(TsEbp, KTRAP_FRAME, Ebp),
+    OFFSET(TsEbx, KTRAP_FRAME, Ebx),
+    OFFSET(TsEdx, KTRAP_FRAME, Edx),
+    OFFSET(TsEcx, KTRAP_FRAME, Ecx),
+    OFFSET(TsEax, KTRAP_FRAME, Eax),
+    OFFSET(TsErrCode, KTRAP_FRAME, ErrCode),
+    OFFSET(TsEip, KTRAP_FRAME, Eip),
+    OFFSET(TsSegCs, KTRAP_FRAME, SegCs),
+    OFFSET(TsEflags, KTRAP_FRAME, EFlags),
+    OFFSET(TsHardwareEsp, KTRAP_FRAME, HardwareEsp),
+    OFFSET(TsHardwareSegSs, KTRAP_FRAME, HardwareSegSs),
+    OFFSET(TsTempSegCs, KTRAP_FRAME, TempSegCs),
+//    OFFSET(TsLogging, KTRAP_FRAME, Logging),
+    OFFSET(TsTempEsp, KTRAP_FRAME, TempEsp),
+    OFFSET(TsDbgEbp, KTRAP_FRAME, DbgEbp),
+    OFFSET(TsDbgEip, KTRAP_FRAME, DbgEip),
+    OFFSET(TsDbgArgMark, KTRAP_FRAME, DbgArgMark),
+    OFFSET(TsDbgArgPointer, KTRAP_FRAME, DbgArgPointer),
+    OFFSET(TsDr0, KTRAP_FRAME, Dr0),
+    OFFSET(TsDr1, KTRAP_FRAME, Dr1),
+    OFFSET(TsDr2, KTRAP_FRAME, Dr2),
+    OFFSET(TsDr3, KTRAP_FRAME, Dr3),
+    OFFSET(TsDr6, KTRAP_FRAME, Dr6),
+    OFFSET(TsDr7, KTRAP_FRAME, Dr7),
+    OFFSET(TsV86Es, KTRAP_FRAME, V86Es),
+    OFFSET(TsV86Ds, KTRAP_FRAME, V86Ds),
+    OFFSET(TsV86Fs, KTRAP_FRAME, V86Fs),
+    OFFSET(TsV86Gs, KTRAP_FRAME, V86Gs),
+    SIZE(KTRAP_FRAME_LENGTH, KTRAP_FRAME),
+    CONSTANT(KTRAP_FRAME_ALIGN),
+    CONSTANT(FRAME_EDITED),
+
+    HEADER("KTSS"),
+    OFFSET(TssEsp0, KTSS, Esp0),
+    OFFSET(TssCR3, KTSS, CR3),
+    OFFSET(TssEip, KTSS, Eip),
+    OFFSET(TssEFlags, KTSS, EFlags),
+    OFFSET(TssEax, KTSS, Eax),
+    OFFSET(TssEbx, KTSS, Ebx),
+    OFFSET(TssEcx, KTSS, Ecx),
+    OFFSET(TssEdx, KTSS, Edx),
+    OFFSET(TssEsp, KTSS, Esp),
+    OFFSET(TssEbp, KTSS, Ebp),
+    OFFSET(TssEsi, KTSS, Esi),
+    OFFSET(TssEdi, KTSS, Edi),
+    OFFSET(TssEs, KTSS, Es),
+    OFFSET(TssCs, KTSS, Cs),
+    OFFSET(TssSs, KTSS, Ss),
+    OFFSET(TssDs, KTSS, Ds),
+    OFFSET(TssFs, KTSS, Fs),
+    OFFSET(TssGs, KTSS, Gs),
+    OFFSET(TssLDT, KTSS, LDT),
+    OFFSET(TssIoMapBase, KTSS, IoMapBase),
+    OFFSET(TssIoMaps, KTSS, IoMaps),
+    SIZE(TssLength, KTSS),
 
 #elif defined(_M_AMD64)
 
     HEADER("Argument Home Address"),
 
 #elif defined(_M_AMD64)
 
     HEADER("Argument Home Address"),
-    OFFSET(P1Home, CONTEXT, Member),
-    OFFSET(P2Home, CONTEXT, Member),
-    OFFSET(P3Home, CONTEXT, Member),
-    OFFSET(P4Home, CONTEXT, Member),
+    OFFSET(P1Home, CONTEXT, P1Home),
+    OFFSET(P2Home, CONTEXT, P1Home),
+    OFFSET(P3Home, CONTEXT, P1Home),
+    OFFSET(P4Home, CONTEXT, P1Home),
 
     HEADER("CONTEXT"),
     OFFSET(CxP1Home, CONTEXT, P1Home),
 
     HEADER("CONTEXT"),
     OFFSET(CxP1Home, CONTEXT, P1Home),
@@ -1042,85 +1257,85 @@ ASMGENDATA Table[] =
     OFFSET(PbHalReserved, KPRCB, HalReserved),
     OFFSET(PbMinorVersion, KPRCB, MinorVersion),
     OFFSET(PbMajorVersion, KPRCB, MajorVersion),
     OFFSET(PbHalReserved, KPRCB, HalReserved),
     OFFSET(PbMinorVersion, KPRCB, MinorVersion),
     OFFSET(PbMajorVersion, KPRCB, MajorVersion),
-    OFFSET(PbBuildType, KPRCB, Member),
-    OFFSET(PbCpuVendor, KPRCB, Member),
-    OFFSET(PbCoresPerPhysicalProcessor, KPRCB, Member),
-    OFFSET(PbLogicalProcessorsPerCore, KPRCB, Member),
-    OFFSET(PbApicMask, KPRCB, Member),
-    OFFSET(PbCFlushSize, KPRCB, Member),
-    OFFSET(PbAcpiReserved, KPRCB, Member),
-    OFFSET(PbInitialApicId, KPRCB, Member),
-    OFFSET(PbStride, KPRCB, Member),
-    OFFSET(PbLockQueue, KPRCB, Member),
-    OFFSET(PbPPLookasideList, KPRCB, Member),
-    OFFSET(PbPPNPagedLookasideList, KPRCB, Member),
-    OFFSET(PbPPPagedLookasideList, KPRCB, Member),
-    OFFSET(PbPacketBarrier, KPRCB, Member),
-    OFFSET(PbDeferredReadyListHead, KPRCB, Member),
-    OFFSET(PbLookasideIrpFloat, KPRCB, Member),
-    OFFSET(PbSystemCalls, KPRCB, Member),
-    OFFSET(PbReadOperationCount, KPRCB, Member),
-    OFFSET(PbWriteOperationCount, KPRCB, Member),
-    OFFSET(PbOtherOperationCount, KPRCB, Member),
-    OFFSET(PbReadTransferCount, KPRCB, Member),
-    OFFSET(PbWriteTransferCount, KPRCB, Member),
-    OFFSET(PbOtherTransferCount, KPRCB, Member),
-    OFFSET(PbContextSwitches, KPRCB, Member),
-    OFFSET(PbTargetSet, KPRCB, Member),
-    OFFSET(PbIpiFrozen, KPRCB, Member),
-    OFFSET(PbRequestMailbox, KPRCB, Member),
-    OFFSET(PbSenderSummary, KPRCB, Member),
-    OFFSET(PbDpcListHead, KPRCB, Member),
-    OFFSET(PbDpcLock, KPRCB, Member),
-    OFFSET(PbDpcQueueDepth, KPRCB, Member),
-    OFFSET(PbDpcCount, KPRCB, Member),
-    OFFSET(PbDpcStack, KPRCB, Member),
-    OFFSET(PbMaximumDpcQueueDepth, KPRCB, Member),
-    OFFSET(PbDpcRequestRate, KPRCB, Member),
-    OFFSET(PbMinimumDpcRate, KPRCB, Member),
-    OFFSET(PbDpcInterruptRequested, KPRCB, Member),
-    OFFSET(PbDpcThreadRequested, KPRCB, Member),
-    OFFSET(PbDpcRoutineActive, KPRCB, Member),
-    OFFSET(PbDpcThreadActive, KPRCB, Member),
-    OFFSET(PbTimerHand, KPRCB, Member),
-    OFFSET(PbTimerRequest, KPRCB, Member),
-    OFFSET(PbTickOffset, KPRCB, Member),
-    OFFSET(PbMasterOffset, KPRCB, Member),
-    OFFSET(PbDpcLastCount, KPRCB, Member),
-    OFFSET(PbQuantumEnd, KPRCB, Member),
-    OFFSET(PbDpcSetEventRequest, KPRCB, Member),
-    OFFSET(PbIdleSchedule, KPRCB, Member),
-    OFFSET(PbReadySummary, KPRCB, Member),
-    OFFSET(PbDispatcherReadyListHead, KPRCB, Member),
-    OFFSET(PbInterruptCount, KPRCB, Member),
-    OFFSET(PbKernelTime, KPRCB, Member),
-    OFFSET(PbUserTime, KPRCB, Member),
-    OFFSET(PbDpcTime, KPRCB, Member),
-    OFFSET(PbInterruptTime, KPRCB, Member),
-    OFFSET(PbAdjustDpcThreshold, KPRCB, Member),
-    OFFSET(PbSkipTick, KPRCB, Member),
-    OFFSET(PbPollSlot, KPRCB, Member),
-    OFFSET(PbParentNode, KPRCB, Member),
-    OFFSET(PbMultiThreadProcessorSet, KPRCB, Member),
-    OFFSET(PbMultiThreadSetMaster, KPRCB, Member),
-    OFFSET(PbStartCycles, KPRCB, Member),
-    OFFSET(PbPageColor, KPRCB, Member),
-    OFFSET(PbNodeColor, KPRCB, Member),
-    OFFSET(PbNodeShiftedColor, KPRCB, Member),
-    OFFSET(PbSecondaryColorMask, KPRCB, Member),
-    OFFSET(PbSleeping, KPRCB, Member),
-    OFFSET(PbCycleTime, KPRCB, Member),
-    OFFSET(PbFastReadNoWait, KPRCB, Member),
-    OFFSET(PbFastReadWait, KPRCB, Member),
-    OFFSET(PbFastReadNotPossible, KPRCB, Member),
-    OFFSET(PbCopyReadNoWait, KPRCB, Member),
-    OFFSET(PbCopyReadWait, KPRCB, Member),
-    OFFSET(PbCopyReadNoWaitMiss, KPRCB, Member),
-    OFFSET(PbAlignmentFixupCount, KPRCB, Member),
-    OFFSET(PbExceptionDispatchCount, KPRCB, Member),
-    OFFSET(PbVendorString, KPRCB, Member),
-    OFFSET(PbPowerState, KPRCB, Member),
-    OFFSET(ProcessorBlockLength, KPRCB, Member),
+    OFFSET(PbBuildType, KPRCB, BuildType),
+    OFFSET(PbCpuVendor, KPRCB, CpuVendor),
+    OFFSET(PbCoresPerPhysicalProcessor, KPRCB, CoresPerPhysicalProcessor),
+    OFFSET(PbLogicalProcessorsPerCore, KPRCB, LogicalProcessorsPerCore),
+    OFFSET(PbApicMask, KPRCB, ApicMask),
+    OFFSET(PbCFlushSize, KPRCB, CFlushSize),
+    OFFSET(PbAcpiReserved, KPRCB, AcpiReserved),
+    OFFSET(PbInitialApicId, KPRCB, InitialApicId),
+    OFFSET(PbStride, KPRCB, Stride),
+    OFFSET(PbLockQueue, KPRCB, LockQueue),
+    OFFSET(PbPPLookasideList, KPRCB, PPLookasideList),
+    OFFSET(PbPPNPagedLookasideList, KPRCB, PPNPagedLookasideList),
+    OFFSET(PbPPPagedLookasideList, KPRCB, PPPagedLookasideList),
+    OFFSET(PbPacketBarrier, KPRCB, PacketBarrier),
+    OFFSET(PbDeferredReadyListHead, KPRCB, DeferredReadyListHead),
+    OFFSET(PbLookasideIrpFloat, KPRCB, LookasideIrpFloat),
+    OFFSET(PbSystemCalls, KPRCB, SystemCalls),
+    OFFSET(PbReadOperationCount, KPRCB, ReadOperationCount),
+    OFFSET(PbWriteOperationCount, KPRCB, WriteOperationCount),
+    OFFSET(PbOtherOperationCount, KPRCB, OtherOperationCount),
+    OFFSET(PbReadTransferCount, KPRCB, ReadTransferCount),
+    OFFSET(PbWriteTransferCount, KPRCB, WriteTransferCount),
+    OFFSET(PbOtherTransferCount, KPRCB, OtherTransferCount),
+    OFFSET(PbContextSwitches, KPRCB, ContextSwitches),
+    OFFSET(PbTargetSet, KPRCB, TargetSet),
+    OFFSET(PbIpiFrozen, KPRCB, IpiFrozen),
+    OFFSET(PbRequestMailbox, KPRCB, RequestMailbox),
+    OFFSET(PbSenderSummary, KPRCB, SenderSummary),
+    OFFSET(PbDpcListHead, KPRCB, DpcListHead),
+    OFFSET(PbDpcLock, KPRCB, DpcLock),
+    OFFSET(PbDpcQueueDepth, KPRCB, DpcQueueDepth),
+    OFFSET(PbDpcCount, KPRCB, DpcCount),
+    OFFSET(PbDpcStack, KPRCB, DpcStack),
+    OFFSET(PbMaximumDpcQueueDepth, KPRCB, MaximumDpcQueueDepth),
+    OFFSET(PbDpcRequestRate, KPRCB, DpcRequestRate),
+    OFFSET(PbMinimumDpcRate, KPRCB, MinimumDpcRate),
+    OFFSET(PbDpcInterruptRequested, KPRCB, DpcInterruptRequested),
+    OFFSET(PbDpcThreadRequested, KPRCB, DpcThreadRequested),
+    OFFSET(PbDpcRoutineActive, KPRCB, DpcRoutineActive),
+    OFFSET(PbDpcThreadActive, KPRCB, DpcThreadActive),
+    OFFSET(PbTimerHand, KPRCB, TimerHand),
+    OFFSET(PbTimerRequest, KPRCB, TimerRequest),
+    OFFSET(PbTickOffset, KPRCB, TickOffset),
+    OFFSET(PbMasterOffset, KPRCB, MasterOffset),
+    OFFSET(PbDpcLastCount, KPRCB, DpcLastCount),
+    OFFSET(PbQuantumEnd, KPRCB, QuantumEnd),
+    OFFSET(PbDpcSetEventRequest, KPRCB, DpcSetEventRequest),
+    OFFSET(PbIdleSchedule, KPRCB, IdleSchedule),
+    OFFSET(PbReadySummary, KPRCB, ReadySummary),
+    OFFSET(PbDispatcherReadyListHead, KPRCB, DispatcherReadyListHead),
+    OFFSET(PbInterruptCount, KPRCB, InterruptCount),
+    OFFSET(PbKernelTime, KPRCB, KernelTime),
+    OFFSET(PbUserTime, KPRCB, UserTime),
+    OFFSET(PbDpcTime, KPRCB, DpcTime),
+    OFFSET(PbInterruptTime, KPRCB, InterruptTime),
+    OFFSET(PbAdjustDpcThreshold, KPRCB, AdjustDpcThreshold),
+    OFFSET(PbSkipTick, KPRCB, SkipTick),
+    OFFSET(PbPollSlot, KPRCB, PollSlot),
+    OFFSET(PbParentNode, KPRCB, ParentNode),
+    OFFSET(PbMultiThreadProcessorSet, KPRCB, MultiThreadProcessorSet),
+    OFFSET(PbMultiThreadSetMaster, KPRCB, MultiThreadSetMaster),
+    OFFSET(PbStartCycles, KPRCB, StartCycles),
+    OFFSET(PbPageColor, KPRCB, PageColor),
+    OFFSET(PbNodeColor, KPRCB, NodeColor),
+    OFFSET(PbNodeShiftedColor, KPRCB,NodeShiftedColor),
+    OFFSET(PbSecondaryColorMask, KPRCB, SecondaryColorMask),
+    OFFSET(PbSleeping, KPRCB, Sleeping),
+    OFFSET(PbCycleTime, KPRCB, CycleTime),
+    OFFSET(PbFastReadNoWait, KPRCB, FastReadNoWait),
+    OFFSET(PbFastReadWait, KPRCB, FastReadWait),
+    OFFSET(PbFastReadNotPossible, KPRCB, FastReadNotPossible),
+    OFFSET(PbCopyReadNoWait, KPRCB, CopyReadNoWait),
+    OFFSET(PbCopyReadWait, KPRCB, CopyReadWait),
+    OFFSET(PbCopyReadNoWaitMiss, KPRCB, CopyReadNoWaitMiss),
+    OFFSET(PbAlignmentFixupCount, KPRCB, AlignmentFixupCount),
+    OFFSET(PbExceptionDispatchCount, KPRCB, ExceptionDispatchCount),
+    OFFSET(PbVendorString, KPRCB, VendorString),
+    OFFSET(PbPowerState, KPRCB, PowerState),
+    SIZE(ProcessorBlockLength, KPRCB),
 
     HEADER("KPCR"),
     OFFSET(PcGdt, KPCR, Gdt),
 
     HEADER("KPCR"),
     OFFSET(PcGdt, KPCR, Gdt),
@@ -1237,11 +1452,17 @@ ASMGENDATA Table[] =
     OFFSET(SrMsrCStar, KSPECIAL_REGISTERS, MsrCStar),
     OFFSET(SrMsrSyscallMask, KSPECIAL_REGISTERS, MsrSyscallMask),
 
     OFFSET(SrMsrCStar, KSPECIAL_REGISTERS, MsrCStar),
     OFFSET(SrMsrSyscallMask, KSPECIAL_REGISTERS, MsrSyscallMask),
 
+    HEADER("KSYSTEM_TIME"),
+    OFFSET(StLowTime, KSYSTEM_TIME, LowTime),
+    OFFSET(StHigh1Time, KSYSTEM_TIME, High1Time),
+    OFFSET(StHigh2Time, KSYSTEM_TIME, High2Time),
+
     HEADER("KSWITCH_FRAME"),
     OFFSET(SwP5Home, KSWITCH_FRAME, P5Home),
     OFFSET(SwApcBypass, KSWITCH_FRAME, ApcBypass),
     OFFSET(SwRbp, KSWITCH_FRAME, Rbp),
     OFFSET(SwReturn, KSWITCH_FRAME, Return),
     HEADER("KSWITCH_FRAME"),
     OFFSET(SwP5Home, KSWITCH_FRAME, P5Home),
     OFFSET(SwApcBypass, KSWITCH_FRAME, ApcBypass),
     OFFSET(SwRbp, KSWITCH_FRAME, Rbp),
     OFFSET(SwReturn, KSWITCH_FRAME, Return),
+    SIZE(SwitchFrameLength, KSWITCH_FRAME),
     SIZE(KSWITCH_FRAME_LENGTH, KSWITCH_FRAME),
 
     HEADER("KTRAP_FRAME"),
     SIZE(KSWITCH_FRAME_LENGTH, KSWITCH_FRAME),
 
     HEADER("KTRAP_FRAME"),
@@ -1310,6 +1531,7 @@ ASMGENDATA Table[] =
     OFFSET(TtTime, KTIMER_TABLE, Time),
     SIZE(TIMER_ENTRY_SIZE, KTIMER_ENTRY),
     SIZE(TIMER_TABLE_SIZE, KTIMER_TABLE),
     OFFSET(TtTime, KTIMER_TABLE, Time),
     SIZE(TIMER_ENTRY_SIZE, KTIMER_ENTRY),
     SIZE(TIMER_TABLE_SIZE, KTIMER_TABLE),
+    SIZE(KTIMER_TABLE_SIZE, KTIMER_TABLE),
 
     HEADER("KTSS"),
     OFFSET(TssRsp0, TYPE, Rsp0),
 
     HEADER("KTSS"),
     OFFSET(TssRsp0, TYPE, Rsp0),