From edd63ea0b7726a2400c27ff131198e0002385db2 Mon Sep 17 00:00:00 2001 From: Timo Kreuzer Date: Sat, 26 Dec 2009 22:55:53 +0000 Subject: [PATCH] [GENINC] Lots of fixes and updates. svn path=/trunk/; revision=44767 --- reactos/tools/geninc/data.c | 462 ++++++++++++++++++++++++++---------- 1 file changed, 342 insertions(+), 120 deletions(-) diff --git a/reactos/tools/geninc/data.c b/reactos/tools/geninc/data.c index f3975e21941..f7563b514e2 100644 --- a/reactos/tools/geninc/data.c +++ b/reactos/tools/geninc/data.c @@ -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 HEADER(x) {2, "/* " x " */", 0} +#define HEADER(x) {2, x, 0} ASMGENDATA Table[] = { @@ -90,6 +90,8 @@ ASMGENDATA Table[] = // 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"), @@ -128,6 +130,7 @@ ASMGENDATA Table[] = 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), @@ -227,6 +230,27 @@ ASMGENDATA Table[] = {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), @@ -254,6 +278,21 @@ ASMGENDATA Table[] = // 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 ******************************************/ @@ -283,7 +322,10 @@ ASMGENDATA Table[] = 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 @@ -294,6 +336,10 @@ ASMGENDATA Table[] = 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), @@ -318,6 +364,53 @@ ASMGENDATA Table[] = 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"), @@ -368,16 +461,6 @@ ASMGENDATA Table[] = 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 @@ -403,9 +486,11 @@ ASMGENDATA Table[] = /* 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), @@ -430,6 +515,10 @@ ASMGENDATA Table[] = 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), @@ -530,12 +619,20 @@ ASMGENDATA Table[] = 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), +#endif 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), - +#if 0 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(LpbExtension, LOADER_PARAMETER_BLOCK, Extension, LoadOrderListHead), +#endif 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), +#ifdef _M_IX86 + OFFSET(PrLdtDescriptor, KPROCESS, LdtDescriptor), +#endif 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), @@ -711,47 +819,48 @@ ASMGENDATA Table[] = 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(ThThreadControlFlags, KTHREAD, DispatcherHeader.ThreadControlFlags), 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), +// OFFSET(ThRunning, KTHREAD, Running), + OFFSET(ThAlerted, KTHREAD, Alerted), +// OFFSET(ThMiscFlags, KTHREAD, MiscFlags), OFFSET(ThApcState, KTHREAD, ApcState), + OFFSET(ThPriority, KTHREAD, Priority), + OFFSET(ThSwapBusy, KTHREAD, SwapBusy), OFFSET(ThNextProcessor, KTHREAD, NextProcessor), OFFSET(ThDeferredProcessor, KTHREAD, DeferredProcessor), - OFFSET(ThAdjustReason, KTHREAD, AdjustReason), - OFFSET(ThAdjustIncrement, KTHREAD, AdjustIncrement), 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(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(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(ThServiceTable, KTHREAD, ServiceTable), OFFSET(ThWaitBlock, KTHREAD, WaitBlock), - OFFSET(ThPreviousMode, KTHREAD, PreviousMode), 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) @@ -763,30 +872,35 @@ ASMGENDATA Table[] = 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(ThFreezeCount, KTHREAD, FreezeCount), 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(ThFreezeCount, KTHREAD, FreezeCount), + OFFSET(ThWaitReason, KTHREAD, WaitReason), 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(ThPowerState, KTHREAD, PowerState), 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(ThMutantListHead, KTHREAD, MutantListHead), OFFSET(ThThreadListEntry, KTHREAD, ThreadListEntry), + OFFSET(ThMutantListHead, KTHREAD, MutantListHead), 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(UsTscQpcData, KUSER_SHARED_DATA, TscQpcData), 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) + 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"), - 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), @@ -1042,85 +1257,85 @@ ASMGENDATA Table[] = 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), @@ -1237,11 +1452,17 @@ ASMGENDATA Table[] = 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), + SIZE(SwitchFrameLength, KSWITCH_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), + SIZE(KTIMER_TABLE_SIZE, KTIMER_TABLE), HEADER("KTSS"), OFFSET(TssRsp0, TYPE, Rsp0), -- 2.17.1