20 #ifndef _AMD64_KETYPES_H 21 #define _AMD64_KETYPES_H 32 #define PCR ((volatile KPCR * const)__readgsqword(FIELD_OFFSET(KPCR, Self))) 52 #define MACHINE_TYPE_ISA 0x0000 53 #define MACHINE_TYPE_EISA 0x0001 54 #define MACHINE_TYPE_MCA 0x0002 59 #define I386_TASK_GATE 0x5 61 #define I386_ACTIVE_TSS 0xB 62 #define I386_CALL_GATE 0xC 63 #define I386_INTERRUPT_GATE 0xE 64 #define I386_TRAP_GATE 0xF 69 #define RPL_MASK 0x0003 70 #define MODE_MASK 0x0001 71 #define KGDT64_NULL 0x0000 72 #define KGDT64_R0_CODE 0x0010 73 #define KGDT64_R0_DATA 0x0018 74 #define KGDT64_R3_CMCODE 0x0020 75 #define KGDT64_R3_DATA 0x0028 76 #define KGDT64_R3_CODE 0x0030 77 #define KGDT64_SYS_TSS 0x0040 78 #define KGDT64_R3_CMTEB 0x0050 79 #define KGDT64_R0_LDT 0x0060 92 #define CR4_FXSR 0x200 93 #define CR4_XMMEXCPT 0x400 94 #define CR4_CHANNELS 0x800 95 #define CR4_XSAVE 0x40000 100 #define DR7_LEGAL 0xFFFF0355 101 #define DR7_ACTIVE 0x00000355 102 #define DR7_TRACE_BRANCH 0x00000200 103 #define DR7_LAST_BRANCH 0x00000100 108 #define DEBUG_ACTIVE_DR7 0x0001 109 #define DEBUG_ACTIVE_INSTRUMENTED 0x0002 110 #define DEBUG_ACTIVE_DBG_INSTRUMENTED 0x0003 111 #define DEBUG_ACTIVE_MINIMAL_THREAD 0x0004 112 #define DEBUG_ACTIVE_PRIMARY_THREAD 0x0080 113 #define DEBUG_ACTIVE_PRIMARY_THREAD_BIT 0x0007 114 #define DEBUG_ACTIVE_PRIMARY_THREAD_LOCK_BIT 0x001F 115 #define DEBUG_ACTIVE_SCHEDULED_THREAD 0x0040 116 #define DEBUG_ACTIVE_SCHEDULED_THREAD_BIT 0x0006 117 #define DEBUG_ACTIVE_SCHEDULED_THREAD_LOCK_BIT 0x001E 118 #define DEBUG_ACTIVE_SCHEDULED_THREAD_LOCK 0x40000000 123 #define EFLAGS_CF 0x01L 124 #define EFLAGS_ZF 0x40L 125 #define EFLAGS_TF 0x100L 126 #define EFLAGS_INTERRUPT_MASK 0x200L 127 #define EFLAGS_DF 0x400L 128 #define EFLAGS_NESTED_TASK 0x4000L 129 #define EFLAGS_V86_MASK 0x20000 130 #define EFLAGS_ALIGN_CHECK 0x40000 131 #define EFLAGS_VIF 0x80000 132 #define EFLAGS_VIP 0x100000 133 #define EFLAGS_USER_SANITIZE 0x3F4DD7 134 #define EFLAG_SIGN 0x8000 135 #define EFLAG_ZERO 0x4000 136 #define EFLAGS_TF_MASK 0x0100 137 #define EFLAGS_TF_SHIFT 0x0008 138 #define EFLAGS_ID_MASK 0x200000 139 #define EFLAGS_IF_MASK 0x0200 140 #define EFLAGS_IF_SHIFT 0x0009 145 #define XSW_INVALID_OPERATION 0x0001 146 #define XSW_DENORMAL 0x0002 147 #define XSW_ZERO_DIVIDE 0x0004 148 #define XSW_OVERFLOW 0x0008 149 #define XSW_UNDERFLOW 0x0010 150 #define XSW_PRECISION 0x0020 151 #define XCW_INVALID_OPERATION 0x0080 152 #define XCW_DENORMAL 0x0100 153 #define XCW_ZERO_DIVIDE 0x0200 154 #define XCW_OVERFLOW 0x0400 155 #define XCW_UNDERFLOW 0x0800 156 #define XCW_PRECISION 0x1000 157 #define XCW_ROUND_CONTROL 0x6000 158 #define XCW_FLUSH_ZERO 0x8000 159 #define XSW_ERROR_MASK 0x003F 160 #define XSW_ERROR_SHIFT 7 165 #define FSW_INVALID_OPERATION 0x0001 166 #define FSW_DENORMAL 0x0002 167 #define FSW_ZERO_DIVIDE 0x0004 168 #define FSW_OVERFLOW 0x0008 169 #define FSW_UNDERFLOW 0x0010 170 #define FSW_PRECISION 0x0020 171 #define FSW_STACK_FAULT 0x0040 172 #define FSW_ERROR_SUMMARY 0x0080 173 #define FSW_CONDITION_CODE_0 0x0100 174 #define FSW_CONDITION_CODE_1 0x0200 175 #define FSW_CONDITION_CODE_2 0x0400 176 #define FSW_CONDITION_CODE_3 0x4000 177 #define FSW_ERROR_MASK 0x003F 182 #define MSR_EFER 0xC0000080 183 #define MSR_STAR 0xC0000081 184 #define MSR_LSTAR 0xC0000082 185 #define MSR_CSTAR 0xC0000083 186 #define MSR_SYSCALL_MASK 0xC0000084 187 #define MSR_FS_BASE 0xC0000100 188 #define MSR_GS_BASE 0xC0000101 189 #define MSR_GS_SWAP 0xC0000102 190 #define MSR_MCG_STATUS 0x017A 191 #define MSR_AMD_ACCESS 0x9C5A203A 192 #define MSR_IA32_MISC_ENABLE 0x01A0 193 #define MSR_LAST_BRANCH_FROM 0x01DB 194 #define MSR_LAST_BRANCH_TO 0x01DC 195 #define MSR_LAST_EXCEPTION_FROM 0x01DD 196 #define MSR_LAST_EXCEPTION_TO 0x01DE 211 #define MSR_SCE 0x0001 212 #define MSR_LME 0x0100 213 #define MSR_LMA 0x0400 214 #define MSR_NXE 0x0800 215 #define MSR_PAT 0x0277 216 #define MSR_DEBUG_CTL 0x01D9 221 #define MSR_XD_ENABLE_MASK 0xFFFFFFFB 226 #define MSR_DEBUG_CTL_LBR 0x0001 227 #define MSR_DEBUG_CTL_BTF 0x0002 235 #define IPI_PACKET_READY 8 236 #define IPI_SYNCH_REQUEST 16 241 #define PRCB_MAJOR_VERSION 1 242 #define PRCB_BUILD_DEBUG 1 243 #define PRCB_BUILD_UNIPROCESSOR 2 248 #define KEXCEPTION_ACTIVE_INTERRUPT_FRAME 0x0000 249 #define KEXCEPTION_ACTIVE_EXCEPTION_FRAME 0x0001 250 #define KEXCEPTION_ACTIVE_SERVICE_FRAME 0x0002 255 #define INITIAL_STALL_COUNT 100 256 #define MM_HAL_VA_START 0xFFFFFFFFFFC00000ULL 257 #define MM_HAL_VA_END 0xFFFFFFFFFFFFFFFFULL 258 #define APIC_BASE 0xFFFFFFFFFFFE0000ULL 263 #define IO_ACCESS_MAP_NONE 0 264 #define IOPM_OFFSET FIELD_OFFSET(KTSS, IoMaps[0].IoMap) 265 #define KiComputeIopmOffset(MapNumber) \ 266 (MapNumber == IO_ACCESS_MAP_NONE) ? \ 267 (USHORT)(sizeof(KTSS)) : \ 268 (USHORT)(FIELD_OFFSET(KTSS, IoMaps[MapNumber-1].IoMap)) 273 #define KSEG0_BASE 0xfffff80000000000ULL 278 #define SYNCH_LEVEL 12 280 #define NMI_STACK_SIZE 0x2000 281 #define ISR_STACK_SIZE 0x6000 286 #define NUMBER_POOL_LOOKASIDE_LISTS 32 395 #ifndef _LDT_ENTRY_DEFINED 396 #define _LDT_ENTRY_DEFINED 437 #define KGDTENTRY KGDTENTRY64 438 #define PKGDTENTRY PKGDTENTRY64 479 #define KIDTENTRY KIDTENTRY64 480 #define PKIDTENTRY PKIDTENTRY64 489 #ifndef NTOS_MODE_USER 534 #if (NTDDI_VERSION < NTDDI_LONGHORN) 535 #define GENERAL_LOOKASIDE_POOL PP_LOOKASIDE_LIST 558 #if (NTDDI_VERSION >= NTDDI_LONGHORN) 569 #if (NTDDI_VERSION >= NTDDI_LONGHORN) 582 #if (NTDDI_VERSION >= NTDDI_LONGHORN) 601 #if (NTDDI_VERSION >= NTDDI_LONGHORN) 609 #if (NTDDI_VERSION >= NTDDI_LONGHORN) 616 #if (NTDDI_VERSION >= NTDDI_LONGHORN) 632 #if (NTDDI_VERSION < NTDDI_LONGHORN) 638 #if (NTDDI_VERSION < NTDDI_LONGHORN) 646 #if (NTDDI_VERSION >= NTDDI_LONGHORN) 666 #if (NTDDI_VERSION < NTDDI_LONGHORN) 678 #if (NTDDI_VERSION >= NTDDI_LONGHORN) 700 #if (NTDDI_VERSION >= NTDDI_LONGHORN) 707 #if (NTDDI_VERSION >= NTDDI_LONGHORN) 711 #if (NTDDI_VERSION >= NTDDI_LONGHORN) 723 #if (NTDDI_VERSION >= NTDDI_LONGHORN) 728 #if (NTDDI_VERSION >= NTDDI_LONGHORN) 741 #if (NTDDI_VERSION >= NTDDI_LONGHORN) 754 #if (NTDDI_VERSION >= NTDDI_LONGHORN) 763 #if (NTDDI_VERSION >= NTDDI_LONGHORN) 836 ULONG KeFirstLevelTbFills;
837 ULONG KeFloatingEmulationCount;
839 ULONG KeSecondLevelTbFills;
921 #define PKTSS PKTSS64 933 #if (NTDDI_VERSION >= NTDDI_WIN8) 949 #if (NTDDI_VERSION < NTDDI_WIN8) 954 #if (NTDDI_VERSION >= NTDDI_WIN8) 1051 #define PROCESSOR_START_FLAG_FORCE_ENABLE_NX 0x0001
UCHAR LmIdentityTarget[6]
struct _REQUEST_MAILBOX * PREQUEST_MAILBOX
GENERAL_LOOKASIDE_POOL PPNPagedLookasideList[NUMBER_POOL_LOOKASIDE_LISTS]
ULONG CcFastReadResourceMiss
struct _KGDTENTRY64::@2284::@2286::@2288 Bytes
union _KIDTENTRY64 KIDTENTRY64
struct _KUSER_EXCEPTION_STACK * PKUSER_EXCEPTION_STACK
struct _UNWIND_HISTORY_TABLE * HistoryTable
LONG IoWriteOperationCount
UCHAR LogicalProcessorsPerPhysicalProcessor
struct _KSWITCH_FRAME * PKSWITCH_FRAME
union _KGDTENTRY64 * GdtBase
LONG MmMappedPagesWriteCount
ULONG CcPinReadNoWaitMiss
UCHAR SecondLevelCacheAssociativity
struct _UCALLOUT_FRAME * PUCALLOUT_FRAME
union _CPU_INFO * PCPU_INFO
FORCEINLINE struct _KPRCB * KeGetCurrentPrcb(VOID)
LARGE_INTEGER IoWriteTransferCount
PROCESSOR_POWER_STATE PowerState
SLIST_HEADER InterruptObjectPool
struct _KREQUEST_PACKET * PKREQUEST_PACKET
KSPECIAL_REGISTERS SpecialRegisters
KEXCEPTION_FRAME * PKCALLOUT_FRAME
ULONG CcPinMappedDataCount
ULONG CachedResidentAvailable
ULONG64 LastExceptionFromRip
ULONG NTSYSAPI KeIcacheFlushCount
struct _KTHREAD * NextThread
KEXCEPTION_FRAME KCALLOUT_FRAME
SLIST_HEADER HypercallPageList
struct _MACHINE_FRAME * PMACHINE_FRAME
ULONG CcFastMdlReadResourceMiss
struct _KEXCEPTION_FRAME KEXCEPTION_FRAME
MACHINE_FRAME MachineFrame
LARGE_INTEGER UpdateSignature
PP_LOOKASIDE_LIST PPLookasideList[16]
struct _KTRAP_FRAME KTRAP_FRAME
struct _KDESCRIPTOR * PKDESCRIPTOR
struct _KPROCESSOR_STATE * PKPROCESSOR_STATE
struct _KPROCESSOR_START_BLOCK KPROCESSOR_START_BLOCK
ULONG KeAlignmentFixupCount
EXCEPTION_RECORD ExceptionRecord
struct _KEXCEPTION_FRAME * PKEXCEPTION_FRAME
struct _KSWITCH_FRAME KSWITCH_FRAME
struct _KSPECIAL_REGISTERS * PKSPECIAL_REGISTERS
LONG MmMappedWriteIoCount
struct _KTHREAD * CurrentThread
LONG IoReadOperationCount
struct _KPRCB * CurrentPrcb
ULONG SecondLevelCacheSize
struct _DISPATCHER_CONTEXT * PDISPATCHER_CONTEXT
LONG MmCacheTransitionCount
struct _KPRCB * MultiThreadSetMaster
struct _KPROCESSOR_START_BLOCK * SelfMap
KPROCESSOR_STATE ProcessorState
ULONG64 LastExceptionToRip
UINT64 LastExceptionFromRip
EXCEPTION_ROUTINE * PEXCEPTION_ROUTINE
ULONG CcFastReadNotPossible
UINT64 PackageProcessorSet
UCHAR CoresPerPhysicalProcessor
struct _UCALLOUT_FRAME UCALLOUT_FRAME
struct _KNODE * ParentNode
ULONG CcFastMdlReadNotPossible
ULONG CcMdlReadNoWaitMiss
struct _KIDT_ACCESS * PKIDT_ACCESS
UINT64 CacheProcessorMask[5]
struct _RUNTIME_FUNCTION * FunctionEntry
union _KGDTENTRY64 * PKGDTENTRY64
LARGE_INTEGER IoOtherTransferCount
KPROCESSOR_STATE ProcessorState
LONG IoOtherOperationCount
PEXCEPTION_ROUTINE LanguageHandler
ULONG CcFastMdlReadNoWait
UCHAR DpcInterruptRequested
struct _DISPATCHER_CONTEXT DISPATCHER_CONTEXT
struct _KSPECIAL_REGISTERS KSPECIAL_REGISTERS
struct _KREQUEST_PACKET KREQUEST_PACKET
struct _KDESCRIPTOR KDESCRIPTOR
struct _KGDTENTRY64::@2284::@2286::@2289 Bits
LARGE_INTEGER IoReadTransferCount
struct _KTHREAD * IdleThread
union _KIDTENTRY64 * IdtBase
SINGLE_LIST_ENTRY DeferredReadyListHead
struct _KSTART_FRAME KSTART_FRAME
struct _KIDT_ACCESS KIDT_ACCESS
ULONG64 LastBranchFromRip
struct _KiIoAccessMap KIIO_ACCESS_MAP
#define NUMBER_POOL_LOOKASIDE_LISTS
UINT64 MultiThreadProcessorSet
ULONG KeExceptionDispatchCount
#define FIELD_OFFSET(t, f)
KREQUEST_PACKET RequestPacket
struct _KUSER_EXCEPTION_STACK KUSER_EXCEPTION_STACK
union _KIDTENTRY64 * PKIDTENTRY64
MACHINE_FRAME MachineFrame
ULONG CcMapDataNoWaitMiss
struct _REQUEST_MAILBOX REQUEST_MAILBOX
LIST_ENTRY DispatcherReadyListHead[32]
UCHAR LogicalProcessorsPerCore
struct _KPROCESSOR_START_BLOCK * PKPROCESSOR_START_BLOCK
union _KGDTENTRY64 KGDTENTRY64
ULONG NTSYSAPI KeDcacheFlushCount
PVOID HypercallPageVirtual
KSPIN_LOCK_QUEUE LockQueue[LockQueueMaximumLock]
struct _KSTART_FRAME * PKSTART_FRAME
struct _KTRAP_FRAME * PKTRAP_FRAME
struct _MACHINE_FRAME MACHINE_FRAME
unsigned long long UINT64
LONG MaximumDpcQueueDepth
ULONG CcLazyWriteHotSpots
LONG MmDirtyPagesWriteCount
REQUEST_MAILBOX RequestMailbox[64]
struct _KPROCESSOR_STATE KPROCESSOR_STATE
ULONG CcLostDelayedWrites
PKSPIN_LOCK_QUEUE LockArray
UINT64 LastExceptionToRip
ULONG CcCopyReadNoWaitMiss
GENERAL_LOOKASIDE_POOL PPPagedLookasideList[NUMBER_POOL_LOOKASIDE_LISTS]