#include "kxalpha.h" // // Pointer size in bytes // #define SizeofPointer 0x8 // // Process State Enumerated Type Values // #define ProcessInMemory 0x0 #define ProcessOutOfMemory 0x1 #define ProcessInTransition 0x2 // // Thread State Enumerated Type Values // #define Initialized 0x0 #define Ready 0x1 #define Running 0x2 #define Standby 0x3 #define Terminated 0x4 #define Waiting 0x5 // // Wait Reason and Wait Type Enumerated Type Values // #define WrExecutive 0x0 #define WrEventPair 0xe #define WaitAny 0x1 #define WaitAll 0x0 // // Apc State Structure Offset Definitions // #define AsApcListHead 0x0 #define AsProcess 0x20 #define AsKernelApcInProgress 0x28 #define AsKernelApcPending 0x29 #define AsUserApcPending 0x2a // // Bug Check Code Definitions // #define APC_INDEX_MISMATCH 0x1 #define ATTEMPTED_SWITCH_FROM_DPC 0xb8 #define DATA_BUS_ERROR 0x2e #define DATA_COHERENCY_EXCEPTION 0x55 #define HAL1_INITIALIZATION_FAILED 0x61 #define INSTRUCTION_BUS_ERROR 0x2f #define INSTRUCTION_COHERENCY_EXCEPTION 0x56 #define INTERRUPT_EXCEPTION_NOT_HANDLED 0x3d #define INTERRUPT_UNWIND_ATTEMPTED 0x3c #define INVALID_AFFINITY_SET 0x3 #define INVALID_DATA_ACCESS_TRAP 0x4 #define IRQL_GT_ZERO_AT_SYSTEM_SERVICE 0x4a #define IRQL_NOT_LESS_OR_EQUAL 0xa #define KMODE_EXCEPTION_NOT_HANDLED 0x1e #define NMI_HARDWARE_FAILURE 0x80 #define NO_USER_MODE_CONTEXT 0xe #define PAGE_FAULT_WITH_INTERRUPTS_OFF 0x49 #define PANIC_STACK_SWITCH 0x2b #define SPIN_LOCK_INIT_FAILURE 0x81 #define SYSTEM_EXIT_OWNED_MUTEX 0x39 #define SYSTEM_SERVICE_EXCEPTION 0x3b #define SYSTEM_UNWIND_PREVIOUS_USER 0x3a #define TRAP_CAUSE_UNKNOWN 0x12 #define UNEXPECTED_KERNEL_MODE_TRAP 0x7f // // Breakpoint type definitions // #define DBG_STATUS_CONTROL_C 0x1 // // Client Id Structure Offset Definitions // #define CidUniqueProcess 0x0 #define CidUniqueThread 0x8 // // Critical Section Structure Offset Definitions // #define CsDebugInfo 0x0 #define CsLockCount 0x8 #define CsRecursionCount 0xc #define CsOwningThread 0x10 #define CsLockSemaphore 0x18 #define CsSpinCount 0x20 // // Critical Section Debug Information Structure Offset Definitions // #define CsType 0x0 #define CsCreatorBackTraceIndex 0x2 #define CsCriticalSection 0x8 #define CsProcessLocksList 0x10 #define CsEntryCount 0x20 #define CsContentionCount 0x24 // // Dispatcher Context Structure Offset Definitions // #define DcControlPc 0x0 #define DcFunctionEntry 0x8 #define DcEstablisherFrame 0x10 #define DcContextRecord 0x18 // // Exception Record Offset, Flag, and Enumerated Type Definitions // #define EXCEPTION_NONCONTINUABLE 0x1 #define EXCEPTION_UNWINDING 0x2 #define EXCEPTION_EXIT_UNWIND 0x4 #define EXCEPTION_STACK_INVALID 0x8 #define EXCEPTION_NESTED_CALL 0x10 #define EXCEPTION_TARGET_UNWIND 0x20 #define EXCEPTION_COLLIDED_UNWIND 0x40 #define EXCEPTION_UNWIND 0x66 #define EXCEPTION_EXECUTE_HANDLER 0x1 #define EXCEPTION_CONTINUE_SEARCH 0x0 #define EXCEPTION_CONTINUE_EXECUTION 0xffffffff #define ExceptionContinueExecution 0x0 #define ExceptionContinueSearch 0x1 #define ExceptionNestedException 0x2 #define ExceptionCollidedUnwind 0x3 #define ErExceptionCode 0x0 #define ErExceptionFlags 0x4 #define ErExceptionRecord 0x8 #define ErExceptionAddress 0x10 #define ErNumberParameters 0x18 #define ErExceptionInformation 0x20 #define ExceptionRecordLength 0xa0 // // Fast Mutex Structure Offset Definitions // #define FmCount 0x0 #define FmOwner 0x8 #define FmContention 0x10 #define FmEvent 0x18 #define FmOldIrql 0x30 // // Interrupt Priority Request Level Definitions // #define APC_LEVEL 0x1 #define DISPATCH_LEVEL 0x2 #define IPI_LEVEL 0x6 #define POWER_LEVEL 0x7 #define PROFILE_LEVEL 0x3 #define HIGH_LEVEL 0x7 #define SYNCH_LEVEL 0x5 // // Large Integer Structure Offset Definitions // #define LiLowPart 0x0 #define LiHighPart 0x4 // // List Entry Structure Offset Definitions // #define LsFlink 0x0 #define LsBlink 0x8 // // String Structure Offset Definitions // #define StrLength 0x0 #define StrMaximumLength 0x2 #define StrBuffer 0x8 // // Time Structure Offset Definitions // #define TmLowTime 0x0 #define TmHighTime 0x4 // // Thread Switch Counter Offset Definitions // #define TwFindAny 0x0 #define TwFindIdeal 0x4 #define TwFindLast 0x8 #define TwIdleAny 0xc #define TwIdleCurrent 0x10 #define TwIdleIdeal 0x14 #define TwIdleLast 0x18 #define TwPreemptAny 0x1c #define TwPreemptCurrent 0x20 #define TwPreemptLast 0x24 #define TwSwitchToIdle 0x28 // // Status Code Definitions // #define STATUS_ALPHA_ARITHMETIC_EXCEPTION 0xc0000092 #define STATUS_ALPHA_BAD_VIRTUAL_ADDRESS 0xc0000005 #define STATUS_ALPHA_FLOATING_NOT_IMPLEMENTED 0xc000014a #define STATUS_ALPHA_GENTRAP 0xc00000aa #define STATUS_ALPHA_MACHINE_CHECK 0xdfff002e #define STATUS_ACCESS_VIOLATION 0xc0000005 #define STATUS_ARRAY_BOUNDS_EXCEEDED 0xc000008c #define STATUS_BAD_COMPRESSION_BUFFER 0xc0000242 #define STATUS_BREAKPOINT 0x80000003 #define STATUS_DATATYPE_MISALIGNMENT 0x80000002 #define STATUS_FLOAT_DENORMAL_OPERAND 0xc000008d #define STATUS_FLOAT_DIVIDE_BY_ZERO 0xc000008e #define STATUS_FLOAT_INEXACT_RESULT 0xc000008f #define STATUS_FLOAT_INVALID_OPERATION 0xc0000090 #define STATUS_FLOAT_OVERFLOW 0xc0000091 #define STATUS_FLOAT_STACK_CHECK 0xc0000092 #define STATUS_FLOAT_UNDERFLOW 0xc0000093 #define STATUS_FLOAT_MULTIPLE_FAULTS 0xc00002b4 #define STATUS_FLOAT_MULTIPLE_TRAPS 0xc00002b5 #define STATUS_GUARD_PAGE_VIOLATION 0x80000001 #define STATUS_ILLEGAL_FLOAT_CONTEXT 0xc000014a #define STATUS_ILLEGAL_INSTRUCTION 0xc000001d #define STATUS_INSTRUCTION_MISALIGNMENT 0xc00000aa #define STATUS_INVALID_HANDLE 0xc0000008 #define STATUS_INVALID_LOCK_SEQUENCE 0xc000001e #define STATUS_INVALID_OWNER 0xc000005a #define STATUS_INVALID_PARAMETER_1 0xc00000ef #define STATUS_INVALID_SYSTEM_SERVICE 0xc000001c #define STATUS_INTEGER_DIVIDE_BY_ZERO 0xc0000094 #define STATUS_INTEGER_OVERFLOW 0xc0000095 #define STATUS_IN_PAGE_ERROR 0xc0000006 #define STATUS_KERNEL_APC 0x100 #define STATUS_LONGJUMP 0x80000026 #define STATUS_NO_CALLBACK_ACTIVE 0xc0000258 #define STATUS_NO_EVENT_PAIR 0xc000014e #define STATUS_PRIVILEGED_INSTRUCTION 0xc0000096 #define STATUS_SINGLE_STEP 0x80000004 #define STATUS_STACK_OVERFLOW 0xc00000fd #define STATUS_SUCCESS 0x0 #define STATUS_THREAD_IS_TERMINATING 0xc000004b #define STATUS_TIMEOUT 0x102 #define STATUS_UNWIND 0xc0000027 #define STATUS_WAKE_SYSTEM_DEBUGGER 0x80000007 // // APC Object Structure Offset Definitions // #define ApType 0x0 #define ApSize 0x2 #define ApThread 0x8 #define ApApcListEntry 0x10 #define ApKernelRoutine 0x20 #define ApRundownRoutine 0x28 #define ApNormalRoutine 0x30 #define ApNormalContext 0x38 #define ApSystemArgument1 0x40 #define ApSystemArgument2 0x48 #define ApApcStateIndex 0x50 #define ApApcMode 0x51 #define ApInserted 0x52 #define ApcObjectLength 0x58 // // DPC object Structure Offset Definitions // #define DpType 0x0 #define DpNumber 0x2 #define DpImportance 0x3 #define DpDpcListEntry 0x8 #define DpDeferredRoutine 0x18 #define DpDeferredContext 0x20 #define DpSystemArgument1 0x28 #define DpSystemArgument2 0x30 #define DpLock 0x38 #define DpcObjectLength 0x40 // // Device Queue Object Structure Offset Definitions // #define DvType 0x0 #define DvSize 0x2 #define DvDeviceListHead 0x8 #define DvSpinLock 0x18 #define DvBusy 0x20 #define DeviceQueueObjectLength 0x28 // // Device Queue Entry Structure Offset Definitions // #define DeDeviceListEntry 0x0 #define DeSortKey 0x10 #define DeInserted 0x14 #define DeviceQueueEntryLength 0x18 // // Event Object Structure Offset Definitions // #define EvType 0x0 #define EvSize 0x2 #define EvSignalState 0x4 #define EvWaitListHead 0x8 #define EventObjectLength 0x18 // // Event Pair Object Structure Offset Definitions // #define EpType 0x0 #define EpSize 0x2 #define EpEventLow 0x8 #define EpEventHigh 0x20 // // Interrupt Object Structure Offset Definitions // #define InLevelSensitive 0x0 #define InLatched 0x1 #define InType 0x0 #define InSize 0x2 #define InInterruptListEntry 0x8 #define InServiceRoutine 0x18 #define InServiceContext 0x20 #define InSpinLock 0x28 #define InTickCount 0x30 #define InActualLock 0x38 #define InDispatchAddress 0x40 #define InVector 0x48 #define InIrql 0x4c #define InSynchronizeIrql 0x4d #define InFloatingSave 0x4e #define InConnected 0x4f #define InNumber 0x50 #define InMode 0x54 #define InShareVector 0x51 #define InDispatchCount 0x5c #define InDispatchCode 0x60 #define InServiceCount 0x58 #define InterruptObjectLength 0x70 // // Process Object Structure Offset Definitions // #define PrType 0x0 #define PrSize 0x2 #define PrSignalState 0x4 #define PrProfileListHead 0x18 #define PrDirectoryTableBase 0x28 #define PrActiveProcessors 0x38 #define PrRunOnProcessors 0x3c #define PrProcessSequence 0x40 #define PrProcessAsn 0x48 #define PrKernelTime 0x4c #define PrUserTime 0x50 #define PrReadyListHead 0x58 #define PrSwapListEntry 0x68 #define PrThreadListHead 0x78 #define PrProcessLock 0x88 #define PrAffinity 0x90 #define PrStackCount 0x94 #define PrBasePriority 0x96 #define PrThreadQuantum 0x97 #define PrAutoAlignment 0x98 #define PrState 0x99 #define ProcessObjectLength 0xb0 #define ExtendedProcessObjectLength 0x420 // // Profile Object Structure Offset Definitions // #define PfType 0x0 #define PfSize 0x2 #define PfProfileListEntry 0x8 #define PfProcess 0x18 #define PfRangeBase 0x20 #define PfRangeLimit 0x28 #define PfBucketShift 0x30 #define PfBuffer 0x38 #define PfSegment 0x40 #define PfAffinity 0x44 #define PfSource 0x48 #define PfStarted 0x4a #define ProfileObjectLength 0x50 // // Queue Object Structure Offset Definitions // #define QuType 0x0 #define QuSize 0x2 #define QuSignalState 0x4 #define QuEntryListHead 0x18 #define QuCurrentCount 0x28 #define QuMaximumCount 0x2c #define QuThreadListHead 0x30 #define QueueObjectLength 0x40 // // Thread Object Structure Offset Definitions // #define EeKernelEventPair 0x0 #define EtCid 0x370 #define EtPerformanceCountLow 0x3ac #define EtPerformanceCountHigh 0x404 #define EtEthreadLength 0x430 #define ThType 0x0 #define ThSize 0x2 #define ThSignalState 0x4 #define ThMutantListHead 0x18 #define ThInitialStack 0x28 #define ThStackLimit 0x30 #define ThTeb 0x38 #define ThTlsArray 0x40 #define ThKernelStack 0x48 #define ThDebugActive 0x50 #define ThState 0x51 #define ThAlerted 0x52 #define ThIopl 0x54 #define ThNpxState 0x55 #define ThSaturation 0x56 #define ThPriority 0x57 #define ThApcState 0x58 #define ThContextSwitches 0x88 #define ThWaitStatus 0x90 #define ThWaitIrql 0x98 #define ThWaitMode 0x99 #define ThWaitNext 0x9a #define ThWaitReason 0x9b #define ThWaitBlockList 0xa0 #define ThWaitListEntry 0xa8 #define ThWaitTime 0xb8 #define ThBasePriority 0xbc #define ThDecrementCount 0xbd #define ThPriorityDecrement 0xbe #define ThQuantum 0xbf #define ThWaitBlock 0xc0 #define ThKernelApcDisable 0x188 #define ThUserAffinity 0x18c #define ThSystemAffinityActive 0x190 #define ThServiceTable 0x198 #define ThQueue 0x1a0 #define ThApcQueueLock 0x1a8 #define ThTimer 0x1b0 #define ThQueueListEntry 0x1f0 #define ThAffinity 0x204 #define ThPreempted 0x208 #define ThProcessReadyQueue 0x209 #define ThKernelStackResident 0x20a #define ThNextProcessor 0x20b #define ThCallbackStack 0x210 #define ThWin32Thread 0x218 #define ThTrapFrame 0x220 #define ThApcStatePointer 0x228 #define ThPreviousMode 0x238 #define ThEnableStackSwap 0x239 #define ThLargeStack 0x23a #define ThKernelTime 0x23c #define ThUserTime 0x240 #define ThSavedApcState 0x248 #define ThAlertable 0x278 #define ThApcStateIndex 0x279 #define ThApcQueueable 0x27a #define ThAutoAlignment 0x27b #define ThStackBase 0x280 #define ThSuspendApc 0x288 #define ThSuspendSemaphore 0x2e0 #define ThThreadListEntry 0x300 #define ThFreezeCount 0x310 #define ThSuspendCount 0x311 #define ThIdealProcessor 0x312 #define ThDisableBoost 0x313 #define ThSoftAffinity 0x200 #define ThreadObjectLength 0x320 #define ExtendedThreadObjectLength 0x430 #define EVENT_WAIT_BLOCK_OFFSET 0x120 // // Timer object Structure Offset Definitions // #define TiType 0x0 #define TiSize 0x2 #define TiInserted 0x3 #define TiSignalState 0x4 #define TiDueTime 0x18 #define TiTimerListEntry 0x20 #define TiDpc 0x30 #define TiPeriod 0x38 #define TimerObjectLength 0x40 #define TIMER_TABLE_SIZE 0x80 // // Wait Block Structure Offset Definitions // #define WbWaitListEntry 0x0 #define WbThread 0x10 #define WbObject 0x18 #define WbNextWaitBlock 0x20 #define WbWaitKey 0x28 #define WbWaitType 0x2a // // Fiber Structure Offset Definitions // #define FbFiberData 0x0 #define FbExceptionList 0x8 #define FbStackBase 0x10 #define FbStackLimit 0x18 #define FbDeallocationStack 0x20 #define FbFiberContext 0x28 #define FbWx86Tib 0x258 // // Process Environment Block Structure Offset Definitions // #define PeKernelCallbackTable 0x58 // // System Service Descriptor Table Structure Definitions // #define NUMBER_SERVICE_TABLES 0x4 #define SERVICE_NUMBER_MASK 0xfff #define SERVICE_TABLE_SHIFT 0x7 #define SERVICE_TABLE_MASK 0x60 #define SERVICE_TABLE_TEST 0x20 #define SdBase 0x0 #define SdCount 0x8 #define SdLimit 0x10 #define SdNumber 0x18 // // Thread Environment Block Structure Offset Definitions // #define TeStackBase 0x8 #define TeStackLimit 0x10 #define TeFiberData 0x20 #define TeEnvironmentPointer 0x38 #define TeClientId 0x40 #define TeActiveRpcHandle 0x50 #define TeThreadLocalStoragePointer 0x58 #define TeCountOfOwnedCriticalSections 0x6c #define TePeb 0x60 #define TeCsrClientThread 0x70 #define TeWOW32Reserved 0x100 #define TeSoftFpcr 0x10c #define TeGdiClientPID 0x7f0 #define TeGdiClientTID 0x7f4 #define TeGdiThreadLocalInfo 0x7f8 #define TeglDispatchTable 0x9f0 #define TeglReserved1 0x1138 #define TeglReserved2 0x1220 #define TeglSectionInfo 0x1228 #define TeglSection 0x1230 #define TeglTable 0x1238 #define TeglCurrentRC 0x1240 #define TeglContext 0x1248 #define TeDeallocationStack 0x1478 #define TeTlsSlots 0x1480 #define TeVdm 0x1690 #define TeGdiBatchCount 0x1740 #define TeInstrumentation 0x16b8 #define ThreadEnvironmentBlockLength 0x17a8 // // Lock Queue Structure Offset Definitions // #define LOCK_QUEUE_WAIT 0x1 #define LOCK_QUEUE_OWNER 0x2 #define LOCK_QUEUE_HEADER_SIZE 0x10 #define LockQueueDispatcherLock 0x0 #define LockQueueContextSwapLock 0x1 #define LqNext 0x0 #define LqLock 0x8 #define LqhNext 0x0 #define LqhLock 0x8 #define LqhOldIrql 0x10 // // Processor Control Registers Structure Offset Definitions // #define PCR_MINOR_VERSION 0x1 #define PCR_MAJOR_VERSION 0x1 #define PcMinorVersion 0x0 #define PcMajorVersion 0x4 #define PcPalBaseAddress 0x8 #define PcPalMajorVersion 0x10 #define PcPalMinorVersion 0x14 #define PcPalSequenceVersion 0x18 #define PcPalMajorSpecification 0x1c #define PcPalMinorSpecification 0x20 #define PcFirmwareRestartAddress 0x28 #define PcRestartBlock 0x30 #define PcPalReserved 0x38 #define PcPalAlignmentFixupCount 0xc30 #define PcPanicStack 0xc38 #define PcProcessorType 0xc40 #define PcProcessorRevision 0xc44 #define PcPhysicalAddressBits 0xc48 #define PcMaximumAddressSpaceNumber 0xc4c #define PcPageSize 0xc50 #define PcFirstLevelDcacheSize 0xc54 #define PcFirstLevelDcacheFillSize 0xc58 #define PcFirstLevelIcacheSize 0xc5c #define PcFirstLevelIcacheFillSize 0xc60 #define PcFirmwareRevisionId 0xc64 #define PcSystemType 0xc68 #define PcSystemVariant 0xc70 #define PcSystemRevision 0xc74 #define PcSystemSerialNumber 0xc78 #define PcCycleClockPeriod 0xc88 #define PcSecondLevelCacheSize 0xc8c #define PcSecondLevelCacheFillSize 0xc90 #define PcThirdLevelCacheSize 0xc94 #define PcThirdLevelCacheFillSize 0xc98 #define PcFourthLevelCacheSize 0xc9c #define PcFourthLevelCacheFillSize 0xca0 #define PcPrcb 0xca8 #define PcNumber 0xcb0 #define PcSetMember 0xcb4 #define PcHalReserved 0xcb8 #define PcIrqlTable 0xeb8 #define PcIrqlMask 0xed8 #define PcInterruptRoutine 0x10e8 #define PcReservedVectors 0x18e8 #define PcMachineCheckError 0x18f8 #define PcDpcStack 0x1900 #define PcNotMember 0x18ec #define PcCurrentPid 0x190c #define PcSystemServiceDispatchStart 0x1918 #define PcSystemServiceDispatchEnd 0x1920 #define PcIdleThread 0x1928 #define ProcessorControlRegisterLength 0x1930 #define SharedUserData 0xffffffffff000000 #define UsTickCountLow 0x0 #define UsTickCountMultiplier 0x4 #define UsInterruptTime 0x8 #define UsSystemTime 0x14 // // Processor Block Structure Offset Definitions // #define PRCB_MINOR_VERSION 0x1 #define PRCB_MAJOR_VERSION 0x2 #define PbMinorVersion 0x0 #define PbMajorVersion 0x2 #define PbCurrentThread 0x8 #define PbNextThread 0x10 #define PbIdleThread 0x18 #define PbNumber 0x20 #define PbBuildType 0x22 #define PbSetMember 0x24 #define PbRestartBlock 0x28 #define PbInterruptCount 0x30 #define PbDpcTime 0x34 #define PbInterruptTime 0x38 #define PbKernelTime 0x3c #define PbUserTime 0x40 #define PbQuantumEndDpc 0x48 #define PbIpiFrozen 0xa0 #define PbIpiCounts 0x348 #define PbProcessorState 0xa8 #define PbAlignmentFixupCount 0x378 #define PbContextSwitches 0x37c #define PbDcacheFlushCount 0x380 #define PbExceptionDispatchCount 0x384 #define PbFirstLevelTbFills 0x388 #define PbFloatingEmulationCount 0x38c #define PbIcacheFlushCount 0x390 #define PbSecondLevelTbFills 0x394 #define PbSystemCalls 0x398 #define PbLockQueue 0x5e0 #define PbPacketBarrier 0x77c #define PbCurrentPacket 0x780 #define PbTargetSet 0x798 #define PbWorkerRoutine 0x7a0 #define PbRequestSummary 0x7d8 #define PbDpcListHead 0x880 #define PbDpcLock 0x890 #define PbDpcCount 0x898 #define PbLastDpcCount 0x2d8 #define PbQuantumEnd 0x89c #define PbStartCount 0x878 #define PbSoftwareInterrupts 0x2e0 #define PbInterruptTrapFrame 0x2e8 #define PbDpcRoutineActive 0x8a0 #define PbDpcQueueDepth 0x8a4 #define PbDpcRequestRate 0x874 #define PbDpcBypassCount 0x2dc #define PbApcBypassCount 0x2f0 #define PbDispatchInterruptCount 0x2f4 #define PbDebugDpcTime 0x2f8 #define PbDpcInterruptRequested 0x818 #define PbMaximumDpcQueueDepth 0x868 #define PbMinimumDpcRate 0x86c #define PbAdjustDpcThreshold 0x870 #define PbPowerState 0x8b0 #define ProcessorBlockLength 0x940 // // Processor Power State Offset Definitions // #define PpIdleFunction 0x0 // // Immediate Interprocessor Command Definitions // #define IPI_APC 0x1 #define IPI_DPC 0x2 #define IPI_FREEZE 0x4 #define IPI_PACKET_READY 0x8 // // Interprocessor Interrupt Count Structure Offset Definitions // #define IcFreeze 0x0 #define IcPacket 0x4 #define IcDPC 0x8 #define IcAPC 0xc #define IcFlushSingleTb 0x10 #define IcFlushEntireTb 0x18 #define IcChangeColor 0x20 #define IcSweepDcache 0x24 #define IcSweepIcache 0x28 #define IcSweepIcacheRange 0x2c #define IcFlushIoBuffers 0x30 // // LPC Structure Offset Definitions // #define PmLength 0x0 #define PmClientId 0x8 #define PmProcess 0x8 #define PmThread 0x10 #define PmMessageId 0x18 #define PmClientViewSize 0x20 #define PortMessageLength 0x28 // // Client Id Structure Offset Definitions // #define CidUniqueProcess 0x0 #define CidUniqueThread 0x8 // // Context Frame Offset and Flag Definitions // #define CONTEXT_FULL 0x20007 #define CONTEXT_CONTROL 0x20001 #define CONTEXT_FLOATING_POINT 0x20002 #define CONTEXT_INTEGER 0x20004 #define CxFltF0 0x0 #define CxFltF1 0x8 #define CxFltF2 0x10 #define CxFltF3 0x18 #define CxFltF4 0x20 #define CxFltF5 0x28 #define CxFltF6 0x30 #define CxFltF7 0x38 #define CxFltF8 0x40 #define CxFltF9 0x48 #define CxFltF10 0x50 #define CxFltF11 0x58 #define CxFltF12 0x60 #define CxFltF13 0x68 #define CxFltF14 0x70 #define CxFltF15 0x78 #define CxFltF16 0x80 #define CxFltF17 0x88 #define CxFltF18 0x90 #define CxFltF19 0x98 #define CxFltF20 0xa0 #define CxFltF21 0xa8 #define CxFltF22 0xb0 #define CxFltF23 0xb8 #define CxFltF24 0xc0 #define CxFltF25 0xc8 #define CxFltF26 0xd0 #define CxFltF27 0xd8 #define CxFltF28 0xe0 #define CxFltF29 0xe8 #define CxFltF30 0xf0 #define CxFltF31 0xf8 #define CxIntV0 0x100 #define CxIntT0 0x108 #define CxIntT1 0x110 #define CxIntT2 0x118 #define CxIntT3 0x120 #define CxIntT4 0x128 #define CxIntT5 0x130 #define CxIntT6 0x138 #define CxIntT7 0x140 #define CxIntS0 0x148 #define CxIntS1 0x150 #define CxIntS2 0x158 #define CxIntS3 0x160 #define CxIntS4 0x168 #define CxIntS5 0x170 #define CxIntFp 0x178 #define CxIntA0 0x180 #define CxIntA1 0x188 #define CxIntA2 0x190 #define CxIntA3 0x198 #define CxIntA4 0x1a0 #define CxIntA5 0x1a8 #define CxIntT8 0x1b0 #define CxIntT9 0x1b8 #define CxIntT10 0x1c0 #define CxIntT11 0x1c8 #define CxIntRa 0x1d0 #define CxIntT12 0x1d8 #define CxIntAt 0x1e0 #define CxIntGp 0x1e8 #define CxIntSp 0x1f0 #define CxIntZero 0x1f8 #define CxFpcr 0x200 #define CxSoftFpcr 0x208 #define CxFir 0x210 #define CxPsr 0x218 #define CxContextFlags 0x21c #define ContextFrameLength 0x230 // // Exception Frame Offset Definitions and Length // #define ExFltF2 0x8 #define ExFltF3 0x10 #define ExFltF4 0x18 #define ExFltF5 0x20 #define ExFltF6 0x28 #define ExFltF7 0x30 #define ExFltF8 0x38 #define ExFltF9 0x40 #define ExIntS0 0x48 #define ExIntS1 0x50 #define ExIntS2 0x58 #define ExIntS3 0x60 #define ExIntS4 0x68 #define ExIntS5 0x70 #define ExIntFp 0x78 #define ExPsr 0x88 #define ExSwapReturn 0x80 #define ExIntRa 0x0 #define ExceptionFrameLength 0xa0 // // Jump Offset Definitions and Length // #define JbFp 0x0 #define JbPc 0x8 #define JbSeb 0x10 #define JbType 0x18 #define JbFltF2 0x20 #define JbFltF3 0x28 #define JbFltF4 0x30 #define JbFltF5 0x38 #define JbFltF6 0x40 #define JbFltF7 0x48 #define JbFltF8 0x50 #define JbFltF9 0x58 #define JbIntS0 0x60 #define JbIntS1 0x68 #define JbIntS2 0x70 #define JbIntS3 0x78 #define JbIntS4 0x80 #define JbIntS5 0x88 #define JbIntS6 0x90 #define JbIntSp 0x98 #define JbFir 0xa0 // // Trap Frame Offset Definitions and Length // #define TrFltF0 0x178 #define TrFltF1 0x188 #define TrFltF10 0x190 #define TrFltF11 0x198 #define TrFltF12 0x1a0 #define TrFltF13 0x1a8 #define TrFltF14 0x1b0 #define TrFltF15 0x1b8 #define TrFltF16 0x1c0 #define TrFltF17 0x1c8 #define TrFltF18 0x1d0 #define TrFltF19 0x1d8 #define TrFltF20 0x1e0 #define TrFltF21 0x1e8 #define TrFltF22 0x1f0 #define TrFltF23 0x1f8 #define TrFltF24 0x200 #define TrFltF25 0x208 #define TrFltF26 0x210 #define TrFltF27 0x218 #define TrFltF28 0x220 #define TrFltF29 0x228 #define TrFltF30 0x230 #define TrIntV0 0xf0 #define TrIntT0 0xf8 #define TrIntT1 0x100 #define TrIntT2 0x108 #define TrIntT3 0x110 #define TrIntT4 0x118 #define TrIntT5 0x120 #define TrIntT6 0x128 #define TrIntT7 0x130 #define TrIntFp 0x18 #define TrIntA0 0x20 #define TrIntA1 0x28 #define TrIntA2 0x30 #define TrIntA3 0x38 #define TrIntA4 0x168 #define TrIntA5 0x170 #define TrIntT8 0x138 #define TrIntT9 0x140 #define TrIntT10 0x148 #define TrIntT11 0x150 #define TrIntT12 0x158 #define TrIntAt 0x160 #define TrIntGp 0x48 #define TrIntSp 0x0 #define TrFpcr 0x180 #define TrPsr 0x10 #define TrFir 0x8 #define TrExceptionRecord 0x50 #define TrOldIrql 0x238 #define TrPreviousMode 0x23c #define TrIntRa 0x40 #define TrTrapFrame 0x240 #define TrapFrameLength 0x260 // // Firmware frame offset defintions and length // #define FW_EXC_MCHK 0xdec0 #define FW_EXC_ARITH 0xdec1 #define FW_EXC_INTERRUPT 0xdec2 #define FW_EXC_DFAULT 0xdec3 #define FW_EXC_ITBMISS 0xdec4 #define FW_EXC_ITBACV 0xdec5 #define FW_EXC_NDTBMISS 0xdec6 #define FW_EXC_PDTBMISS 0xdec7 #define FW_EXC_UNALIGNED 0xdec8 #define FW_EXC_OPCDEC 0xdec9 #define FW_EXC_FEN 0xdeca #define FW_EXC_HALT 0xdecb #define FW_EXC_BPT 0xdecc #define FW_EXC_GENTRAP 0xdecd #define FW_EXC_HALT_INTERRUPT 0xdece #define FwType 0x0 #define FwParam1 0x8 #define FwParam2 0x10 #define FwParam3 0x18 #define FwParam4 0x20 #define FwParam5 0x28 #define FwPsr 0x30 #define FwMmcsr 0x38 #define FwVa 0x40 #define FwFir 0x48 #define FwIntV0 0x50 #define FwIntT0 0x58 #define FwIntT1 0x60 #define FwIntT2 0x68 #define FwIntT3 0x70 #define FwIntT4 0x78 #define FwIntT5 0x80 #define FwIntT6 0x88 #define FwIntT7 0x90 #define FwIntS0 0x98 #define FwIntS1 0xa0 #define FwIntS2 0xa8 #define FwIntS3 0xb0 #define FwIntS4 0xb8 #define FwIntS5 0xc0 #define FwIntFp 0xc8 #define FwIntA0 0xd0 #define FwIntA1 0xd8 #define FwIntA2 0xe0 #define FwIntA3 0xe8 #define FwIntA4 0xf0 #define FwIntA5 0xf8 #define FwIntT8 0x100 #define FwIntT9 0x108 #define FwIntT10 0x110 #define FwIntT11 0x118 #define FwIntRa 0x120 #define FwIntT12 0x128 #define FwIntAt 0x130 #define FwIntGp 0x138 #define FwIntSp 0x140 #define FwIntZero 0x148 #define FwFltF0 0x150 #define FwFltF1 0x158 #define FwFltF2 0x160 #define FwFltF3 0x168 #define FwFltF4 0x170 #define FwFltF5 0x178 #define FwFltF6 0x180 #define FwFltF7 0x188 #define FwFltF8 0x190 #define FwFltF9 0x198 #define FwFltF10 0x1a0 #define FwFltF11 0x1a8 #define FwFltF12 0x1b0 #define FwFltF13 0x1b8 #define FwFltF14 0x1c0 #define FwFltF15 0x1c8 #define FwFltF16 0x1d0 #define FwFltF17 0x1d8 #define FwFltF18 0x1e0 #define FwFltF19 0x1e8 #define FwFltF20 0x1f0 #define FwFltF21 0x1f8 #define FwFltF22 0x200 #define FwFltF23 0x208 #define FwFltF24 0x210 #define FwFltF25 0x218 #define FwFltF26 0x220 #define FwFltF27 0x228 #define FwFltF28 0x230 #define FwFltF29 0x238 #define FwFltF30 0x240 #define FwFltF31 0x248 #define FirmwareFrameLength 0x250 // // Usermode callout frame definitions // #define CuF2 0x0 #define CuF3 0x8 #define CuF4 0x10 #define CuF5 0x18 #define CuF6 0x20 #define CuF7 0x28 #define CuF8 0x30 #define CuF9 0x38 #define CuS0 0x40 #define CuS1 0x48 #define CuS2 0x50 #define CuS3 0x58 #define CuS4 0x60 #define CuS5 0x68 #define CuFP 0x70 #define CuCbStk 0x78 #define CuInStk 0x80 #define CuTrFr 0x88 #define CuTrFir 0x90 #define CuRa 0x98 #define CuA0 0xa0 #define CuA1 0xa8 #define CuFrameLength 0xb0 // // Usermode callout user frame definitions // #define CkBuffer 0x0 #define CkLength 0x8 #define CkApiNumber 0xc #define CkSp 0x18 #define CkRa 0x20 // // KFLOATING_SAVE definitions // #define KfsFpcr 0x0 #define KfsSoftFpcr 0x8 #define KfsReserved1 0x10 #define KfsReserved2 0x14 #define KfsReserved3 0x18 #define KfsReserved4 0x1c // // Loader Parameter Block Offset Definitions // #define LpbLoadOrderListHead 0x0 #define LpbMemoryDescriptorListHead 0x10 #define LpbKernelStack 0x30 #define LpbPrcb 0x38 #define LpbProcess 0x40 #define LpbThread 0x48 #define LpbRegistryLength 0x50 #define LpbRegistryBase 0x58 #define LpbDpcStack 0xb8 #define LpbFirstLevelDcacheSize 0xc0 #define LpbFirstLevelDcacheFillSize 0xc4 #define LpbFirstLevelIcacheSize 0xc8 #define LpbFirstLevelIcacheFillSize 0xcc #define LpbGpBase 0xd0 #define LpbPanicStack 0xd8 #define LpbPcrPage 0xe0 #define LpbPdrPage 0xe4 #define LpbSecondLevelDcacheSize 0xe8 #define LpbSecondLevelDcacheFillSize 0xec #define LpbSecondLevelIcacheSize 0xf0 #define LpbSecondLevelIcacheFillSize 0xf4 #define LpbPhysicalAddressBits 0xf8 #define LpbMaximumAddressSpaceNumber 0xfc #define LpbSystemSerialNumber 0x100 #define LpbSystemType 0x110 #define LpbSystemVariant 0x118 #define LpbSystemRevision 0x11c #define LpbProcessorType 0x120 #define LpbProcessorRevision 0x124 #define LpbCycleClockPeriod 0x128 #define LpbPageSize 0x12c #define LpbRestartBlock 0x130 #define LpbFirmwareRestartAddress 0x138 #define LpbFirmwareRevisionId 0x140 #define LpbPalBaseAddress 0x148 // // Restart Block Structure Definitions // #define RbSignature 0x0 #define RbLength 0x4 #define RbVersion 0x8 #define RbRevision 0xa #define RbNextRestartBlock 0xc #define RbRestartAddress 0x10 #define RbBootMasterId 0x14 #define RbProcessorId 0x18 #define RbBootStatus 0x1c #define RbCheckSum 0x20 #define RbSaveAreaLength 0x24 #define RbSaveArea 0x28 #define RbHaltReason 0x28 #define RbLogoutFrame 0x2c #define RbPalBase 0x30 #define RbIntV0 0x38 #define RbIntT0 0x40 #define RbIntT1 0x48 #define RbIntT2 0x50 #define RbIntT3 0x58 #define RbIntT4 0x60 #define RbIntT5 0x68 #define RbIntT6 0x70 #define RbIntT7 0x78 #define RbIntS0 0x80 #define RbIntS1 0x88 #define RbIntS2 0x90 #define RbIntS3 0x98 #define RbIntS4 0xa0 #define RbIntS5 0xa8 #define RbIntFp 0xb0 #define RbIntA0 0xb8 #define RbIntA1 0xc0 #define RbIntA2 0xc8 #define RbIntA3 0xd0 #define RbIntA4 0xd8 #define RbIntA5 0xe0 #define RbIntT8 0xe8 #define RbIntT9 0xf0 #define RbIntT10 0xf8 #define RbIntT11 0x100 #define RbIntRa 0x108 #define RbIntT12 0x110 #define RbIntAT 0x118 #define RbIntGp 0x120 #define RbIntSp 0x128 #define RbIntZero 0x130 #define RbFpcr 0x138 #define RbFltF0 0x140 #define RbFltF1 0x148 #define RbFltF2 0x150 #define RbFltF3 0x158 #define RbFltF4 0x160 #define RbFltF5 0x168 #define RbFltF6 0x170 #define RbFltF7 0x178 #define RbFltF8 0x180 #define RbFltF9 0x188 #define RbFltF10 0x190 #define RbFltF11 0x198 #define RbFltF12 0x1a0 #define RbFltF13 0x1a8 #define RbFltF14 0x1b0 #define RbFltF15 0x1b8 #define RbFltF16 0x1c0 #define RbFltF17 0x1c8 #define RbFltF18 0x1d0 #define RbFltF19 0x1d8 #define RbFltF20 0x1e0 #define RbFltF21 0x1e8 #define RbFltF22 0x1f0 #define RbFltF23 0x1f8 #define RbFltF24 0x200 #define RbFltF25 0x208 #define RbFltF26 0x210 #define RbFltF27 0x218 #define RbFltF28 0x220 #define RbFltF29 0x228 #define RbFltF30 0x230 #define RbFltF31 0x238 #define RbAsn 0x240 #define RbGeneralEntry 0x244 #define RbIksp 0x248 #define RbInterruptEntry 0x24c #define RbKgp 0x250 #define RbMces 0x254 #define RbMemMgmtEntry 0x258 #define RbPanicEntry 0x25c #define RbPcr 0x260 #define RbPdr 0x264 #define RbPsr 0x268 #define RbReiRestartAddress 0x26c #define RbSirr 0x270 #define RbSyscallEntry 0x274 #define RbTeb 0x278 #define RbThread 0x27c #define RbPerProcessorState 0x280 // // Address Space Layout Definitions // #define KSEG0_BASE 0xffffffff80000000 #define KSEG2_BASE 0xffffffffc0000000 #define SYSTEM_BASE 0xfffffe0200000000 #define PDE_BASE 0xfffffe01807fe000 #define PTE_BASE 0xfffffe0000000000 #define PDE64_BASE 0xfffffe0180600000 #define PTE64_BASE 0xfffffe0000000000 // // Page Table and Directory Entry Definitions // #define PAGE_SIZE 0x2000 #define PAGE_SHIFT 0xd #define PDI_SHIFT 0x17 #define PTI_SHIFT 0xd // // Breakpoint Definitions // #define USER_BREAKPOINT 0x0 #define KERNEL_BREAKPOINT 0x1 #define BREAKIN_BREAKPOINT 0x19 #define DEBUG_PRINT_BREAKPOINT 0x14 #define DEBUG_PROMPT_BREAKPOINT 0x15 #define DEBUG_STOP_BREAKPOINT 0x16 #define DEBUG_LOAD_SYMBOLS_BREAKPOINT 0x17 #define DEBUG_UNLOAD_SYMBOLS_BREAKPOINT 0x18 // // Trap Code Definitions // #define GENTRAP_INTEGER_OVERFLOW 0xffffffff #define GENTRAP_INTEGER_DIVIDE_BY_ZERO 0xfffffffe #define GENTRAP_FLOATING_OVERFLOW 0xfffffffd #define GENTRAP_FLOATING_DIVIDE_BY_ZERO 0xfffffffc #define GENTRAP_FLOATING_UNDERFLOW 0xfffffffb #define GENTRAP_FLOATING_INVALID_OPERAND 0xfffffffa #define GENTRAP_FLOATING_INEXACT_RESULT 0xfffffff9 // // Miscellaneous Definitions // #define Executive 0x0 #define KernelMode 0x0 #define FALSE 0x0 #define TRUE 0x1 #define BASE_PRIORITY_THRESHOLD 0x8 #define EVENT_PAIR_INCREMENT 0x1 #define LOW_REALTIME_PRIORITY 0x10 #define MM_USER_PROBE_ADDRESS 0x000003ffffff0000 #define KERNEL_STACK_SIZE 0x6000 #define KERNEL_LARGE_STACK_COMMIT 0x6000 #define SET_LOW_WAIT_HIGH 0xfffffffe #define SET_HIGH_WAIT_LOW 0xffffffff #define CLOCK_QUANTUM_DECREMENT 0x3 #define READY_SKIP_QUANTUM 0x2 #define THREAD_QUANTUM 0x6 #define WAIT_QUANTUM_DECREMENT 0x1 #define ROUND_TRIP_DECREMENT_COUNT 0x10 #define PROCESSOR_ALPHA_21064 0x5248 #define PROCESSOR_ALPHA_21164 0x52ac #define PROCESSOR_ALPHA_21066 0x524a #define PROCESSOR_ALPHA_21068 0x524c #define PROCESSOR_ALPHA_21164PC 0x52ad #define PROCESSOR_ALPHA_21264 0x5310 #define PTE_VALID_MASK 0x1 #define PTE_VALID 0x0 #define PTE_FOW_MASK 0x4 #define PTE_FOW 0x2 #define PTE_GLOBAL_MASK 0x10 #define PTE_GLOBAL 0x4 #define PTE_GH_MASK 0x60 #define PTE_GH 0x5 #define PTE_KRE_MASK 0x100 #define PTE_KRE 0x8 #define PTE_URE_MASK 0x200 #define PTE_URE 0x9 #define PTE_KWE_MASK 0x1000 #define PTE_KWE 0xc #define PTE_UWE_MASK 0x2000 #define PTE_UWE 0xd #define PTE_WRITE_MASK 0x10000 #define PTE_WRITE 0x10 #define PTE_COPY_ON_WRITE_MASK 0x20000 #define PTE_COPY_ON_WRITE 0x11 #define PTE_SOFTWARE_MASK 0xfffc0000 #define PTE_SOFTWARE 0x12 #define PTE_PFN_MASK 0xffffffff00000000 #define PTE_PFN 0x20 #define PSR_MODE_MASK 0x1 #define PSR_MODE 0x0 #define PSR_USER_MODE 0x1 #define PSR_IE_MASK 0x2 #define PSR_IE 0x1 #define PSR_IRQL_MASK 0x1c #define PSR_IRQL 0x2 #define IE_SFW_MASK 0x3 #define IE_SFW 0x0 #define IE_HDW_MASK 0xfc #define IE_HDW 0x2 #define MCHK_CORRECTABLE_MASK 0x1 #define MCHK_CORRECTABLE 0x0 #define MCHK_RETRYABLE_MASK 0x2 #define MCHK_RETRYABLE 0x1 #define MCES_MCK_MASK 0x1 #define MCES_MCK 0x0 #define MCES_SCE_MASK 0x2 #define MCES_SCE 0x1 #define MCES_PCE_MASK 0x4 #define MCES_PCE 0x2 #define MCES_DPC_MASK 0x8 #define MCES_DPC 0x3 #define MCES_DSC_MASK 0x10 #define MCES_DSC 0x4 #define MCES_DMCK_MASK 0x20 #define MCES_DMCK 0x5 #define EXCSUM_SWC_MASK 0x1 #define EXCSUM_SWC 0x0 #define EXCSUM_INV_MASK 0x2 #define EXCSUM_INV 0x1 #define EXCSUM_DZE_MASK 0x4 #define EXCSUM_DZE 0x2 #define EXCSUM_OVF_MASK 0x8 #define EXCSUM_OVF 0x3 #define EXCSUM_UNF_MASK 0x10 #define EXCSUM_UNF 0x4 #define EXCSUM_INE_MASK 0x20 #define EXCSUM_INE 0x5 #define EXCSUM_IOV_MASK 0x40 #define EXCSUM_IOV 0x6 // // Call PAL Mnemonics // // begin callpal #define bpt 0x80 #define callsys 0x83 #define imb 0x86 #define gentrap 0xaa #define rdteb 0xab #define kbpt 0xac #define callkd 0xad #define rdteb64 0xae #define halt 0x0 #define restart 0x1 #define draina 0x2 #define reboot 0x3 #define initpal 0x4 #define wrentry 0x5 #define swpirql 0x6 #define rdirql 0x7 #define di 0x8 #define ei 0x9 #define swppal 0xa #define ssir 0xc #define csir 0xd #define rfe 0xe #define retsys 0xf #define swpctx 0x10 #define swpprocess 0x11 #define rdmces 0x12 #define wrmces 0x13 #define tbia 0x14 #define tbis 0x15 #define tbisasn 0x17 #define dtbis 0x16 #define rdksp 0x18 #define swpksp 0x19 #define rdpsr 0x1a #define rdpcr 0x1c #define rdthread 0x1e #define tbim 0x20 #define tbimasn 0x21 #define tbim64 0x22 #define tbis64 0x23 #define ealnfix 0x24 #define dalnfix 0x25 #define rdcounters 0x30 #define rdstate 0x31 #define wrperfmon 0x32 #define cp_sleep 0x39 #define initpcr 0x38 // end callpal // // Bios Argument Structure Definitions // #define BaEax 0x0 #define BaEbx 0x4 #define BaEcx 0x8 #define BaEdx 0xc #define BaEsi 0x10 #define BaEdi 0x14 #define BaEbp 0x18 #define BiosArgumentLength 0x1c // // Define Vendor Callback Read/Write Error Frame Operation Types // #define ReadFrame 0x1 #define WriteFrame 0x2 // // Define Vendor Callback Vector Base Address // #define SYSTEM_VECTOR_BASE 0xffffffff806fe028 // // Define Vendor Callback Offsets // #define VnCallBiosRoutine 0x38 #define VnReadWriteErrorFrameRoutine 0x98 #define VnVideoDisplayInitializeRoutine 0x10 // // Define Firmware Callback Vector Base Address // #define FIRMWARE_VECTOR_BASE 0xffffffff806fe020 // // Define Firmware Callback Offsets // #define FwGetEnvironmentRoutine 0x78 #define FwSetEnvironmentRoutine 0x7c