43#define CP15_MIDR 15, 0, 0, 0, 0
44#define CP15_CTR 15, 0, 0, 0, 1
45#define CP15_TCMTR 15, 0, 0, 0, 2
46#define CP15_TLBTR 15, 0, 0, 0, 3
47#define CP15_MPIDR 15, 0, 0, 0, 5
48#define CP15_PFR0 15, 0, 0, 1, 0
49#define CP15_PFR1 15, 0, 0, 1, 1
50#define CP15_DFR0 15, 0, 0, 1, 2
51#define CP15_AFR0 15, 0, 0, 1, 3
52#define CP15_MMFR0 15, 0, 0, 1, 4
53#define CP15_MMFR1 15, 0, 0, 1, 5
54#define CP15_MMFR2 15, 0, 0, 1, 6
55#define CP15_MMFR3 15, 0, 0, 1, 7
56#define CP15_ISAR0 15, 0, 0, 2, 0
57#define CP15_ISAR1 15, 0, 0, 2, 1
58#define CP15_ISAR2 15, 0, 0, 2, 2
59#define CP15_ISAR3 15, 0, 0, 2, 3
60#define CP15_ISAR4 15, 0, 0, 2, 4
61#define CP15_ISAR5 15, 0, 0, 2, 5
62#define CP15_ISAR6 15, 0, 0, 2, 6
63#define CP15_ISAR7 15, 0, 0, 2, 7
64#define CP15_SCTLR 15, 0, 1, 0, 0
65#define CP15_ACTLR 15, 0, 1, 0, 1
66#define CP15_CPACR 15, 0, 1, 0, 2
67#define CP15_SCR 15, 0, 1, 1, 0
68#define CP15_SDER 15, 0, 1, 1, 1
69#define CP15_NSACR 15, 0, 1, 1, 2
70#define CP15_TTBR0 15, 0, 2, 0, 0
71#define CP15_TTBR1 15, 0, 2, 0, 1
72#define CP15_TTBCR 15, 0, 2, 0, 2
73#define CP15_DACR 15, 0, 3, 0, 0
74#define CP15_DFSR 15, 0, 5, 0, 0
75#define CP15_IFSR 15, 0, 5, 0, 1
76#define CP15_DFAR 15, 0, 6, 0, 0
77#define CP15_IFAR 15, 0, 6, 0, 2
78#define CP15_ICIALLUIS 15, 0, 7, 1, 0
79#define CP15_BPIALLIS 15, 0, 7, 1, 6
80#define CP15_ICIALLU 15, 0, 7, 5, 0
81#define CP15_ICIMVAU 15, 0, 7, 5, 1
82#define CP15_BPIALL 15, 0, 7, 5, 6
83#define CP15_BPIMVA 15, 0, 7, 5, 7
84#define CP15_DCIMVAC 15, 0, 7, 6, 1
85#define CP15_DCISW 15, 0, 7, 6, 2
86#define CP15_DCCMVAC 15, 0, 7, 10, 1
87#define CP15_DCCSW 15, 0, 7, 10, 2
88#define CP15_DCCMVAU 15, 0, 7, 11, 1
89#define CP15_DCCIMVAC 15, 0, 7, 14, 1
90#define CP15_DCCISW 15, 0, 7, 14, 2
91#define CP15_PAR 15, 0, 7, 4, 0
92#define CP15_ATS1CPR 15, 0, 7, 8, 0
93#define CP15_ATS1CPW 15, 0, 7, 8, 1
94#define CP15_ATS1CUR 15, 0, 7, 8, 2
95#define CP15_ATS1CUW 15, 0, 7, 8, 3
96#define CP15_ISB 15, 0, 7, 5, 4
97#define CP15_DSB 15, 0, 7, 10, 4
98#define CP15_DMB 15, 0, 7, 10, 5
99#define CP15_TLBIALLIS 15, 0, 8, 3, 0
100#define CP15_TLBIMVAIS 15, 0, 8, 3, 1
101#define CP15_TLBIASIDIS 15, 0, 8, 3, 2
102#define CP15_TLBIMVAAIS 15, 0, 8, 3, 3
103#define CP15_ITLBIALL 15, 0, 8, 5, 0
104#define CP15_ITLBIMVA 15, 0, 8, 5, 1
105#define CP15_ITLBIASID 15, 0, 8, 5, 2
106#define CP15_DTLBIALL 15, 0, 8, 6, 0
107#define CP15_DTLBIMVA 15, 0, 8, 6, 1
108#define CP15_DTLBIASID 15, 0, 8, 6, 2
109#define CP15_TLBIALL 15, 0, 8, 7, 0
110#define CP15_TLBIMVA 15, 0, 8, 7, 1
111#define CP15_TLBIASID 15, 0, 8, 7, 2
112#define CP15_TLBIMVAA 15, 0, 8, 7, 3
113#define CP15_PMCR 15, 0, 9, 12, 0
114#define CP15_PMCNTENSET 15, 0, 9, 12, 1
115#define CP15_PMCNTENCLR 15, 0, 9, 12, 2
116#define CP15_PMOVSR 15, 0, 9, 12, 3
117#define CP15_PSWINC 15, 0, 9, 12, 4
118#define CP15_PMSELR 15, 0, 9, 12, 5
119#define CP15_PMCCNTR 15, 0, 9, 13, 0
120#define CP15_PMXEVTYPER 15, 0, 9, 13, 1
121#define CP15_PMXEVCNTR 15, 0, 9, 13, 2
122#define CP15_PMUSERENR 15, 0, 9, 14, 0
123#define CP15_PMINTENSET 15, 0, 9, 14, 1
124#define CP15_PMINTENCLR 15, 0, 9, 14, 2
125#define CP15_PRRR 15, 0, 10, 2, 0
126#define CP15_NMRR 15, 0, 10, 2, 1
127#define CP15_VBAR 15, 0, 12, 0, 0
128#define CP15_MVBAR 15, 0, 12, 0, 1
129#define CP15_ISR 15, 0, 12, 1, 0
130#define CP15_CONTEXTIDR 15, 0, 13, 0, 1
131#define CP15_TPIDRURW 15, 0, 13, 0, 2
132#define CP15_TPIDRURO 15, 0, 13, 0, 3
133#define CP15_TPIDRPRW 15, 0, 13, 0, 4
134#define CP15_CCSIDR 15, 1, 0, 0, 0
135#define CP15_CLIDR 15, 1, 0, 0, 1
136#define CP15_AIDR 15, 1, 0, 0, 7
137#define CP15_CSSELR 15, 2, 0, 0, 0
138#define CP14_DBGDIDR 14, 0, 0, 0, 0
139#define CP14_DBGWFAR 14, 0, 0, 6, 0
140#define CP14_DBGVCR 14, 0, 0, 7, 0
141#define CP14_DBGECR 14, 0, 0, 9, 0
142#define CP14_DBGDSCCR 14, 0, 0, 10, 0
143#define CP14_DBGDSMCR 14, 0, 0, 11, 0
144#define CP14_DBGDTRRX 14, 0, 0, 0, 2
145#define CP14_DBGPCSR 14, 0, 0, 1, 2
146#define CP14_DBGITR 14, 0, 0, 1, 2
147#define CP14_DBGDSCR 14, 0, 0, 2, 2
148#define CP14_DBGDTRTX 14, 0, 0, 3, 2
149#define CP14_DBGDRCR 14, 0, 0, 4, 2
150#define CP14_DBGCIDSR 14, 0, 0, 9, 2
151#define CP14_DBGBVR0 14, 0, 0, 0, 4
152#define CP14_DBGBVR1 14, 0, 0, 1, 4
153#define CP14_DBGBVR2 14, 0, 0, 2, 4
154#define CP14_DBGBVR3 14, 0, 0, 3, 4
155#define CP14_DBGBVR4 14, 0, 0, 4, 4
156#define CP14_DBGBVR5 14, 0, 0, 5, 4
157#define CP14_DBGBVR6 14, 0, 0, 6, 4
158#define CP14_DBGBVR7 14, 0, 0, 7, 4
159#define CP14_DBGBCR0 14, 0, 0, 0, 5
160#define CP14_DBGBCR1 14, 0, 0, 1, 5
161#define CP14_DBGBCR2 14, 0, 0, 2, 5
162#define CP14_DBGBCR3 14, 0, 0, 3, 5
163#define CP14_DBGBCR4 14, 0, 0, 4, 5
164#define CP14_DBGBCR5 14, 0, 0, 5, 5
165#define CP14_DBGBCR6 14, 0, 0, 6, 5
166#define CP14_DBGBCR7 14, 0, 0, 7, 5
167#define CP14_DBGWVR0 14, 0, 0, 0, 6
168#define CP14_DBGWVR1 14, 0, 0, 1, 6
169#define CP14_DBGWVR2 14, 0, 0, 2, 6
170#define CP14_DBGWVR3 14, 0, 0, 3, 6
171#define CP14_DBGWCR0 14, 0, 0, 0, 7
172#define CP14_DBGWCR1 14, 0, 0, 1, 7
173#define CP14_DBGWCR2 14, 0, 0, 2, 7
174#define CP14_DBGWCR3 14, 0, 0, 3, 7
175#define CPVFP_FPSID 10, 7, 0, 0, 0
176#define CPVFP_FPSCR 10, 7, 1, 0, 0
177#define CPVFP_MVFR1 10, 7, 6, 0, 0
178#define CPVFP_MVFR0 10, 7, 7, 0, 0
179#define CPVFP_FPEXC 10, 7, 8, 0, 0
180#define CP15_TTBRx_PD_MASK 0xffffc000
186#define CPSRM_USER 0x10
187#define CPSRM_FIQ 0x11
188#define CPSRM_INT 0x12
189#define CPSRM_SVC 0x13
190#define CPSRM_ABT 0x17
191#define CPSRM_UDF 0x1b
192#define CPSRM_SYS 0x1f
193#define CPSRM_MASK 0x1f
194#define SYSCALL_PSR 0x30
196#define CPSRF_N 0x80000000
197#define CPSRF_Z 0x40000000
198#define CPSRF_C 0x20000000
199#define CPSRF_V 0x10000000
200#define CPSRF_Q 0x08000000
201#define CPSR_IT_MASK 0x600fc00
203#define FPSCRF_N 0x80000000
204#define FPSCRF_Z 0x40000000
205#define FPSCRF_C 0x20000000
206#define FPSCRF_V 0x10000000
207#define FPSCRF_QC 0x08000000
209#define FPSCRM_AHP 0x4000000
210#define FPSCRM_DN 0x2000000
211#define FPSCRM_FZ 0x1000000
212#define FPSCRM_RMODE_MASK 0xc00000
213#define FPSCRM_RMODE_RN 0x0
214#define FPSCRM_RMODE_RP 0x400000
215#define FPSCRM_RMODE_RM 0x800000
216#define FPSCRM_RMODE_RZ 0xc00000
217#define FPSCRM_DEPRECATED 0x370000
219#define FPSCR_IDE 0x8000
220#define FPSCR_IXE 0x1000
221#define FPSCR_UFE 0x800
222#define FPSCR_OFE 0x400
223#define FPSCR_DZE 0x200
224#define FPSCR_IOE 0x100
225#define FPSCR_IDC 0x80
226#define FPSCR_IXC 0x10
232#define CPSRC_INT 0x80
233#define CPSRC_ABORT 0x100
234#define CPSRC_THUMB 0x20
236#define SWFS_PAGE_FAULT 0x10
237#define SWFS_ALIGN_FAULT 0x20
238#define SWFS_HWERR_FAULT 0x40
239#define SWFS_DEBUG_FAULT 0x80
240#define SWFS_EXECUTE 0x8
241#define SWFS_WRITE 0x1
243#define CP14_DBGDSCR_MOE_MASK 0x3c
244#define CP14_DBGDSCR_MOE_SHIFT 0x2
245#define CP14_DBGDSCR_MOE_HALT 0x0
246#define CP14_DBGDSCR_MOE_BP 0x1
247#define CP14_DBGDSCR_MOE_WPASYNC 0x2
248#define CP14_DBGDSCR_MOE_BKPT 0x3
249#define CP14_DBGDSCR_MOE_EXTERNAL 0x4
250#define CP14_DBGDSCR_MOE_VECTOR 0x5
251#define CP14_DBGDSCR_MOE_WPSYNC 0xa
253#define CP15_PMCR_DP 0x20
254#define CP15_PMCR_X 0x10
255#define CP15_PMCR_CLKCNT_DIV 0x8
256#define CP15_PMCR_CLKCNT_RST 0x4
257#define CP15_PMCR_CNT_RST 0x2
258#define CP15_PMCR_ENABLE 0x1
263#define C1_MMU_CONTROL 0x01
264#define C1_ALIGNMENT_CONTROL 0x02
265#define C1_DCACHE_CONTROL 0x04
266#define C1_ICACHE_CONTROL 0x1000
267#define C1_VECTOR_CONTROL 0x2000
275#define IPI_PACKET_READY 6
276#define IPI_SYNCH_REQUEST 16
281#define PRCB_MINOR_VERSION 1
282#define PRCB_MAJOR_VERSION 1
283#define PRCB_BUILD_DEBUG 1
284#define PRCB_BUILD_UNIPROCESSOR 2
289#define LDT_ENTRY ULONG
294#define INITIAL_STALL_COUNT 100
295#define MM_HAL_VA_START 0xFFC00000
296#define MM_HAL_VA_END 0xFFFFFFFF
301#define KSEG0_BASE 0x80000000
306#define SYNCH_LEVEL DISPATCH_LEVEL
311#define DOUBLE_FAULT_STACK_SIZE 0x3000
316#define NUMBER_POOL_LOOKASIDE_LISTS 32
379#ifndef NTOS_MODE_USER
746#if (NTDDI_VERSION < NTDDI_LONGHORN)
747#define GENERAL_LOOKASIDE_POOL PP_LOOKASIDE_LIST
847#if (NTDDI_VERSION >= NTDDI_WIN8)
882#if (NTDDI_VERSION >= NTDDI_LONGHORN)
930#if (NTDDI_VERSION >= NTDDI_WIN8)
1020#if (NTDDI_VERSION < NTDDI_WIN8)
1110#define KeGetCurrentIrql() KeGetPcr()->CurrentIrql
1111#define _KeGetCurrentThread() KeGetCurrentPrcb()->CurrentThread
1112#define _KeGetPreviousMode() KeGetCurrentPrcb()->CurrentThread->PreviousMode
1113#define _KeIsExecutingDpc() (KeGetCurrentPrcb()->DpcRoutineActive != 0)
1114#define KeGetCurrentThread() _KeGetCurrentThread()
1115#define KeGetPreviousMode() _KeGetPreviousMode()
unsigned long long UINT64
struct _KSPECIAL_REGISTERS * PKSPECIAL_REGISTERS
struct _KTRAP_FRAME KTRAP_FRAME
struct _KDESCRIPTOR * PKDESCRIPTOR
struct _KPROCESSOR_STATE * PKPROCESSOR_STATE
struct _KSTART_FRAME KSTART_FRAME
struct _KSWITCH_FRAME KSWITCH_FRAME
struct _DISPATCHER_CONTEXT * PDISPATCHER_CONTEXT
KEXCEPTION_FRAME KCALLOUT_FRAME
struct _KEXCEPTION_FRAME * PKEXCEPTION_FRAME
FORCEINLINE struct _KPRCB * KeGetCurrentPrcb(VOID)
struct _DISPATCHER_CONTEXT DISPATCHER_CONTEXT
struct _KDESCRIPTOR KDESCRIPTOR
struct _MACHINE_FRAME MACHINE_FRAME
struct _KSWITCH_FRAME * PKSWITCH_FRAME
struct _UCALLOUT_FRAME * PUCALLOUT_FRAME
KEXCEPTION_FRAME * PKCALLOUT_FRAME
struct _MACHINE_FRAME * PMACHINE_FRAME
struct _KSTART_FRAME * PKSTART_FRAME
struct _KEXCEPTION_FRAME KEXCEPTION_FRAME
struct _KTRAP_FRAME * PKTRAP_FRAME
struct _KSPECIAL_REGISTERS KSPECIAL_REGISTERS
union _CPU_INFO * PCPU_INFO
struct _KPROCESSOR_STATE KPROCESSOR_STATE
struct _UCALLOUT_FRAME UCALLOUT_FRAME
union _ARM_DOMAIN_REGISTER ARM_DOMAIN_REGISTER
union _ARM_CACHE_REGISTER * PARM_CACHE_REGISTER
union _ARM_LOCKDOWN_REGISTER * PARM_LOCKDOWN_REGISTER
struct _KARM_VFP_STATE KARM_VFP_STATE
struct _KARM_ARCH_STATE KARM_ARCH_STATE
struct _KARM_MINI_STACK KARM_MINI_STACK
struct _KARM_MINI_STACK * PKARM_MINI_STACK
union _ARM_TTB_REGISTER ARM_TTB_REGISTER
struct _KARM_VFP_STATE * PKARM_VFP_STATE
union _ARM_ID_CODE_REGISTER ARM_ID_CODE_REGISTER
union _ARM_CONTROL_REGISTER ARM_CONTROL_REGISTER
union _ARM_LOCKDOWN_REGISTER ARM_LOCKDOWN_REGISTER
union _ARM_CACHE_REGISTER ARM_CACHE_REGISTER
enum _ARM_DOMAINS ARM_DOMAINS
struct _KARM_ARCH_STATE * PKARM_ARCH_STATE
union _ARM_STATUS_REGISTER ARM_STATUS_REGISTER
union _ARM_CONTROL_REGISTER * PARM_CONTROL_REGISTER
union _ARM_ID_CODE_REGISTER * PARM_ID_CODE_REGISTER
#define DECLSPEC_ALIGN(x)
PVOID NonVolatileRegisters
ULONG Cp15_Cr9_PmUserEnable
ULONG Cp15_Cr9_PmCycleCounter
ULONG Cp15_Cr2_TtbControl
ULONG Cp15_Cr10_PrimaryMemoryRemap
ULONG Cp15_Cr9_PmCountEnableSet
ULONG Cp15_Cr9_PmEventCounter[31]
ULONG Cp15_Cr9_PmInterruptSelect
ULONG Cp15_Cr9_PmOverflowStatus
ULONG Cp15_Cr10_NormalMemoryRemap
ULONG Cp15_Cr1_AuxControl
ULONG Cp15_Cr13_ContextId
ULONG Cp15_Cr9_PmEventType[31]
struct _KARM_VFP_STATE * Link
ULONG SecondLevelCacheSize
UCHAR SecondLevelCacheAssociativity
struct _KPRCB * CurrentPrcb
USHORT SoftwareInterruptPending
struct _KSPIN_LOCK_QUEUE * LockArray
UCHAR GroupSchedulingOverQuota
UCHAR CoresPerPhysicalProcessor
ULONG SharedReadyQueueMask
KARM_MINI_STACK PanicMiniStack
ULONG CcCopyReadNoWaitMiss
KARM_MINI_STACK UdfMiniStack
ULONG CcLostDelayedWrites
KSPIN_LOCK_QUEUE LockQueue[LockQueueMaximumLock]
PROCESSOR_POWER_STATE PowerState
KARM_MINI_STACK IrqMiniStack
SYNCH_COUNTERS SynchCounters
GENERAL_LOOKASIDE_POOL PPPagedLookasideList[NUMBER_POOL_LOOKASIDE_LISTS]
struct _REQUEST_MAILBOX * Mailbox
UCHAR ProcessorVendorString[2]
LONG AffinitizedSelectionMask
ULONG64 AffinitizedCycles
LONG MaximumDpcQueueDepth
ULONG CcPinReadNoWaitMiss
ULONG DpcNormalProcessingActive
GENERAL_LOOKASIDE_POOL PPNxPagedLookasideList[32]
ULONG SharedReadyQueueOffset
ULONG CachedResidentAvailable
ULONG CcPinMappedDataCount
ULONG CcMdlReadNoWaitMiss
SINGLE_LIST_ENTRY AbSelfIoBoostsList
ULONG DpcNormalLocalInterrupt
GENERAL_LOOKASIDE_POOL PPNPagedLookasideList[NUMBER_POOL_LOOKASIDE_LISTS]
PP_LOOKASIDE_LIST PPLookasideList[16]
ULONG CcMapDataNoWaitMiss
LONG MmMappedWriteIoCount
ULONG KeExceptionDispatchCount
ULONG CcFastMdlReadNoWait
LARGE_INTEGER IoReadTransferCount
LONG MmMappedPagesWriteCount
LONG MmCacheTransitionCount
ULONG DpcNormalProcessingRequested
ULONG CcFastReadResourceMiss
LARGE_INTEGER IoOtherTransferCount
LONG IoReadOperationCount
ULONG DpcNormalThreadSignal
UINT64 CacheProcessorMask[5]
LONG IoWriteOperationCount
LONG IoOtherOperationCount
struct _KNODE * ParentNode
struct _KSHARED_READY_QUEUE * SharedReadyQueue
UCHAR DpcInterruptRequested
KSPIN_LOCK_QUEUE DECLSPEC_ALIGN(128) LockQueue[17]
ULONG DpcNormalDpcPresent
UINT64 CycleCounterFrequency
UCHAR LogicalProcessorsPerCore
KENTROPY_TIMING_STATE EntropyTimingState
KPROCESSOR_STATE ProcessorState
SINGLE_LIST_ENTRY AbPropagateBoostsList
LONG MmDirtyPagesWriteCount
LIST_ENTRY DispatcherReadyListHead[32]
ULONG CcFastMdlReadNotPossible
KARM_MINI_STACK AbtMiniStack
LARGE_INTEGER IoWriteTransferCount
ULONG CcLazyWriteHotSpots
ULONG DpcNormalTimerExpiration
ULONG KeAlignmentFixupCount
ULONG CcFastReadNotPossible
SINGLE_LIST_ENTRY DeferredReadyListHead
KARM_MINI_STACK FiqMiniStack
ULONG CcFastMdlReadResourceMiss
SLIST_HEADER InterruptObjectPool
KARM_ARCH_STATE ArchState
KSPECIAL_REGISTERS SpecialRegisters
BOOLEAN DebugRegistersValid
BOOLEAN ContextFromKFramesUnwound
MACHINE_FRAME MachineFrame
#define FIELD_OFFSET(t, f)
ULONG RoundRobinReplacementEnabled
ULONG AlignmentFaultsEnabled
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG _In_ LONG x2
_Reserved_ PVOID Reserved