32#define SYNCH_LEVEL DISPATCH_LEVEL
46#define CP15_MIDR 15, 0, 0, 0, 0
47#define CP15_CTR 15, 0, 0, 0, 1
48#define CP15_TCMTR 15, 0, 0, 0, 2
49#define CP15_TLBTR 15, 0, 0, 0, 3
50#define CP15_MPIDR 15, 0, 0, 0, 5
51#define CP15_PFR0 15, 0, 0, 1, 0
52#define CP15_PFR1 15, 0, 0, 1, 1
53#define CP15_DFR0 15, 0, 0, 1, 2
54#define CP15_AFR0 15, 0, 0, 1, 3
55#define CP15_MMFR0 15, 0, 0, 1, 4
56#define CP15_MMFR1 15, 0, 0, 1, 5
57#define CP15_MMFR2 15, 0, 0, 1, 6
58#define CP15_MMFR3 15, 0, 0, 1, 7
59#define CP15_ISAR0 15, 0, 0, 2, 0
60#define CP15_ISAR1 15, 0, 0, 2, 1
61#define CP15_ISAR2 15, 0, 0, 2, 2
62#define CP15_ISAR3 15, 0, 0, 2, 3
63#define CP15_ISAR4 15, 0, 0, 2, 4
64#define CP15_ISAR5 15, 0, 0, 2, 5
65#define CP15_ISAR6 15, 0, 0, 2, 6
66#define CP15_ISAR7 15, 0, 0, 2, 7
67#define CP15_SCTLR 15, 0, 1, 0, 0
68#define CP15_ACTLR 15, 0, 1, 0, 1
69#define CP15_CPACR 15, 0, 1, 0, 2
70#define CP15_SCR 15, 0, 1, 1, 0
71#define CP15_SDER 15, 0, 1, 1, 1
72#define CP15_NSACR 15, 0, 1, 1, 2
73#define CP15_TTBR0 15, 0, 2, 0, 0
74#define CP15_TTBR1 15, 0, 2, 0, 1
75#define CP15_TTBCR 15, 0, 2, 0, 2
76#define CP15_DACR 15, 0, 3, 0, 0
77#define CP15_DFSR 15, 0, 5, 0, 0
78#define CP15_IFSR 15, 0, 5, 0, 1
79#define CP15_DFAR 15, 0, 6, 0, 0
80#define CP15_IFAR 15, 0, 6, 0, 2
81#define CP15_ICIALLUIS 15, 0, 7, 1, 0
82#define CP15_BPIALLIS 15, 0, 7, 1, 6
83#define CP15_ICIALLU 15, 0, 7, 5, 0
84#define CP15_ICIMVAU 15, 0, 7, 5, 1
85#define CP15_BPIALL 15, 0, 7, 5, 6
86#define CP15_BPIMVA 15, 0, 7, 5, 7
87#define CP15_DCIMVAC 15, 0, 7, 6, 1
88#define CP15_DCISW 15, 0, 7, 6, 2
89#define CP15_DCCMVAC 15, 0, 7, 10, 1
90#define CP15_DCCSW 15, 0, 7, 10, 2
91#define CP15_DCCMVAU 15, 0, 7, 11, 1
92#define CP15_DCCIMVAC 15, 0, 7, 14, 1
93#define CP15_DCCISW 15, 0, 7, 14, 2
94#define CP15_PAR 15, 0, 7, 4, 0
95#define CP15_ATS1CPR 15, 0, 7, 8, 0
96#define CP15_ATS1CPW 15, 0, 7, 8, 1
97#define CP15_ATS1CUR 15, 0, 7, 8, 2
98#define CP15_ATS1CUW 15, 0, 7, 8, 3
99#define CP15_ISB 15, 0, 7, 5, 4
100#define CP15_DSB 15, 0, 7, 10, 4
101#define CP15_DMB 15, 0, 7, 10, 5
102#define CP15_TLBIALLIS 15, 0, 8, 3, 0
103#define CP15_TLBIMVAIS 15, 0, 8, 3, 1
104#define CP15_TLBIASIDIS 15, 0, 8, 3, 2
105#define CP15_TLBIMVAAIS 15, 0, 8, 3, 3
106#define CP15_ITLBIALL 15, 0, 8, 5, 0
107#define CP15_ITLBIMVA 15, 0, 8, 5, 1
108#define CP15_ITLBIASID 15, 0, 8, 5, 2
109#define CP15_DTLBIALL 15, 0, 8, 6, 0
110#define CP15_DTLBIMVA 15, 0, 8, 6, 1
111#define CP15_DTLBIASID 15, 0, 8, 6, 2
112#define CP15_TLBIALL 15, 0, 8, 7, 0
113#define CP15_TLBIMVA 15, 0, 8, 7, 1
114#define CP15_TLBIASID 15, 0, 8, 7, 2
115#define CP15_TLBIMVAA 15, 0, 8, 7, 3
116#define CP15_PMCR 15, 0, 9, 12, 0
117#define CP15_PMCNTENSET 15, 0, 9, 12, 1
118#define CP15_PMCNTENCLR 15, 0, 9, 12, 2
119#define CP15_PMOVSR 15, 0, 9, 12, 3
120#define CP15_PSWINC 15, 0, 9, 12, 4
121#define CP15_PMSELR 15, 0, 9, 12, 5
122#define CP15_PMCCNTR 15, 0, 9, 13, 0
123#define CP15_PMXEVTYPER 15, 0, 9, 13, 1
124#define CP15_PMXEVCNTR 15, 0, 9, 13, 2
125#define CP15_PMUSERENR 15, 0, 9, 14, 0
126#define CP15_PMINTENSET 15, 0, 9, 14, 1
127#define CP15_PMINTENCLR 15, 0, 9, 14, 2
128#define CP15_PRRR 15, 0, 10, 2, 0
129#define CP15_NMRR 15, 0, 10, 2, 1
130#define CP15_VBAR 15, 0, 12, 0, 0
131#define CP15_MVBAR 15, 0, 12, 0, 1
132#define CP15_ISR 15, 0, 12, 1, 0
133#define CP15_CONTEXTIDR 15, 0, 13, 0, 1
134#define CP15_TPIDRURW 15, 0, 13, 0, 2
135#define CP15_TPIDRURO 15, 0, 13, 0, 3
136#define CP15_TPIDRPRW 15, 0, 13, 0, 4
137#define CP15_CCSIDR 15, 1, 0, 0, 0
138#define CP15_CLIDR 15, 1, 0, 0, 1
139#define CP15_AIDR 15, 1, 0, 0, 7
140#define CP15_CSSELR 15, 2, 0, 0, 0
141#define CP14_DBGDIDR 14, 0, 0, 0, 0
142#define CP14_DBGWFAR 14, 0, 0, 6, 0
143#define CP14_DBGVCR 14, 0, 0, 7, 0
144#define CP14_DBGECR 14, 0, 0, 9, 0
145#define CP14_DBGDSCCR 14, 0, 0, 10, 0
146#define CP14_DBGDSMCR 14, 0, 0, 11, 0
147#define CP14_DBGDTRRX 14, 0, 0, 0, 2
148#define CP14_DBGPCSR 14, 0, 0, 1, 2
149#define CP14_DBGITR 14, 0, 0, 1, 2
150#define CP14_DBGDSCR 14, 0, 0, 2, 2
151#define CP14_DBGDTRTX 14, 0, 0, 3, 2
152#define CP14_DBGDRCR 14, 0, 0, 4, 2
153#define CP14_DBGCIDSR 14, 0, 0, 9, 2
154#define CP14_DBGBVR0 14, 0, 0, 0, 4
155#define CP14_DBGBVR1 14, 0, 0, 1, 4
156#define CP14_DBGBVR2 14, 0, 0, 2, 4
157#define CP14_DBGBVR3 14, 0, 0, 3, 4
158#define CP14_DBGBVR4 14, 0, 0, 4, 4
159#define CP14_DBGBVR5 14, 0, 0, 5, 4
160#define CP14_DBGBVR6 14, 0, 0, 6, 4
161#define CP14_DBGBVR7 14, 0, 0, 7, 4
162#define CP14_DBGBCR0 14, 0, 0, 0, 5
163#define CP14_DBGBCR1 14, 0, 0, 1, 5
164#define CP14_DBGBCR2 14, 0, 0, 2, 5
165#define CP14_DBGBCR3 14, 0, 0, 3, 5
166#define CP14_DBGBCR4 14, 0, 0, 4, 5
167#define CP14_DBGBCR5 14, 0, 0, 5, 5
168#define CP14_DBGBCR6 14, 0, 0, 6, 5
169#define CP14_DBGBCR7 14, 0, 0, 7, 5
170#define CP14_DBGWVR0 14, 0, 0, 0, 6
171#define CP14_DBGWVR1 14, 0, 0, 1, 6
172#define CP14_DBGWVR2 14, 0, 0, 2, 6
173#define CP14_DBGWVR3 14, 0, 0, 3, 6
174#define CP14_DBGWCR0 14, 0, 0, 0, 7
175#define CP14_DBGWCR1 14, 0, 0, 1, 7
176#define CP14_DBGWCR2 14, 0, 0, 2, 7
177#define CP14_DBGWCR3 14, 0, 0, 3, 7
178#define CPVFP_FPSID 10, 7, 0, 0, 0
179#define CPVFP_FPSCR 10, 7, 1, 0, 0
180#define CPVFP_MVFR1 10, 7, 6, 0, 0
181#define CPVFP_MVFR0 10, 7, 7, 0, 0
182#define CPVFP_FPEXC 10, 7, 8, 0, 0
183#define CP15_TTBRx_PD_MASK 0xffffc000
189#define CPSRM_USER 0x10
190#define CPSRM_FIQ 0x11
191#define CPSRM_INT 0x12
192#define CPSRM_SVC 0x13
193#define CPSRM_ABT 0x17
194#define CPSRM_UDF 0x1b
195#define CPSRM_SYS 0x1f
196#define CPSRM_MASK 0x1f
197#define SYSCALL_PSR 0x30
199#define CPSRF_N 0x80000000
200#define CPSRF_Z 0x40000000
201#define CPSRF_C 0x20000000
202#define CPSRF_V 0x10000000
203#define CPSRF_Q 0x08000000
204#define CPSR_IT_MASK 0x600fc00
206#define FPSCRF_N 0x80000000
207#define FPSCRF_Z 0x40000000
208#define FPSCRF_C 0x20000000
209#define FPSCRF_V 0x10000000
210#define FPSCRF_QC 0x08000000
212#define FPSCRM_AHP 0x4000000
213#define FPSCRM_DN 0x2000000
214#define FPSCRM_FZ 0x1000000
215#define FPSCRM_RMODE_MASK 0xc00000
216#define FPSCRM_RMODE_RN 0x0
217#define FPSCRM_RMODE_RP 0x400000
218#define FPSCRM_RMODE_RM 0x800000
219#define FPSCRM_RMODE_RZ 0xc00000
220#define FPSCRM_DEPRECATED 0x370000
222#define FPSCR_IDE 0x8000
223#define FPSCR_IXE 0x1000
224#define FPSCR_UFE 0x800
225#define FPSCR_OFE 0x400
226#define FPSCR_DZE 0x200
227#define FPSCR_IOE 0x100
228#define FPSCR_IDC 0x80
229#define FPSCR_IXC 0x10
235#define CPSRC_INT 0x80
236#define CPSRC_ABORT 0x100
237#define CPSRC_THUMB 0x20
239#define SWFS_PAGE_FAULT 0x10
240#define SWFS_ALIGN_FAULT 0x20
241#define SWFS_HWERR_FAULT 0x40
242#define SWFS_DEBUG_FAULT 0x80
243#define SWFS_EXECUTE 0x8
244#define SWFS_WRITE 0x1
246#define CP14_DBGDSCR_MOE_MASK 0x3c
247#define CP14_DBGDSCR_MOE_SHIFT 0x2
248#define CP14_DBGDSCR_MOE_HALT 0x0
249#define CP14_DBGDSCR_MOE_BP 0x1
250#define CP14_DBGDSCR_MOE_WPASYNC 0x2
251#define CP14_DBGDSCR_MOE_BKPT 0x3
252#define CP14_DBGDSCR_MOE_EXTERNAL 0x4
253#define CP14_DBGDSCR_MOE_VECTOR 0x5
254#define CP14_DBGDSCR_MOE_WPSYNC 0xa
256#define CP15_PMCR_DP 0x20
257#define CP15_PMCR_X 0x10
258#define CP15_PMCR_CLKCNT_DIV 0x8
259#define CP15_PMCR_CLKCNT_RST 0x4
260#define CP15_PMCR_CNT_RST 0x2
261#define CP15_PMCR_ENABLE 0x1
266#define C1_MMU_CONTROL 0x01
267#define C1_ALIGNMENT_CONTROL 0x02
268#define C1_DCACHE_CONTROL 0x04
269#define C1_ICACHE_CONTROL 0x1000
270#define C1_VECTOR_CONTROL 0x2000
278#define IPI_PACKET_READY 6
279#define IPI_SYNCH_REQUEST 16
284#define PRCB_MINOR_VERSION 1
285#define PRCB_MAJOR_VERSION 1
286#define PRCB_BUILD_DEBUG 1
287#define PRCB_BUILD_UNIPROCESSOR 2
292#define LDT_ENTRY ULONG
297#define INITIAL_STALL_COUNT 100
298#define MM_HAL_VA_START 0xFFC00000
299#define MM_HAL_VA_END 0xFFFFFFFF
304#define KSEG0_BASE 0x80000000
309#define NUMBER_POOL_LOOKASIDE_LISTS 32
372#ifndef NTOS_MODE_USER
739#if (NTDDI_VERSION < NTDDI_LONGHORN)
740#define GENERAL_LOOKASIDE_POOL PP_LOOKASIDE_LIST
840#if (NTDDI_VERSION >= NTDDI_WIN8)
875#if (NTDDI_VERSION >= NTDDI_LONGHORN)
923#if (NTDDI_VERSION >= NTDDI_WIN8)
1013#if (NTDDI_VERSION < NTDDI_WIN8)
1103#define KeGetCurrentIrql() KeGetPcr()->CurrentIrql
1104#define _KeGetCurrentThread() KeGetCurrentPrcb()->CurrentThread
1105#define _KeGetPreviousMode() KeGetCurrentPrcb()->CurrentThread->PreviousMode
1106#define _KeIsExecutingDpc() (KeGetCurrentPrcb()->DpcRoutineActive != 0)
1107#define KeGetCurrentThread() _KeGetCurrentThread()
1108#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
LONG IoWriteOperationCount
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
GENERAL_LOOKASIDE_POOL PPNPagedLookasideList[NUMBER_POOL_LOOKASIDE_LISTS]
SYNCH_COUNTERS SynchCounters
UCHAR DpcInterruptRequested
LONG IoReadOperationCount
struct _REQUEST_MAILBOX * Mailbox
UCHAR ProcessorVendorString[2]
LONG AffinitizedSelectionMask
ULONG64 AffinitizedCycles
ULONG CcPinReadNoWaitMiss
ULONG DpcNormalProcessingActive
LONG IoOtherOperationCount
GENERAL_LOOKASIDE_POOL PPNxPagedLookasideList[32]
LONG MmMappedWriteIoCount
ULONG SharedReadyQueueOffset
GENERAL_LOOKASIDE_POOL PPPagedLookasideList[NUMBER_POOL_LOOKASIDE_LISTS]
ULONG CachedResidentAvailable
ULONG CcPinMappedDataCount
ULONG CcMdlReadNoWaitMiss
LONG MaximumDpcQueueDepth
SINGLE_LIST_ENTRY AbSelfIoBoostsList
ULONG DpcNormalLocalInterrupt
PP_LOOKASIDE_LIST PPLookasideList[16]
ULONG CcMapDataNoWaitMiss
ULONG KeExceptionDispatchCount
ULONG CcFastMdlReadNoWait
LONG MmDirtyPagesWriteCount
LARGE_INTEGER IoReadTransferCount
ULONG DpcNormalProcessingRequested
ULONG CcFastReadResourceMiss
LARGE_INTEGER IoOtherTransferCount
LONG MmMappedPagesWriteCount
ULONG DpcNormalThreadSignal
UINT64 CacheProcessorMask[5]
struct _KNODE * ParentNode
struct _KSHARED_READY_QUEUE * SharedReadyQueue
KSPIN_LOCK_QUEUE DECLSPEC_ALIGN(128) LockQueue[17]
ULONG DpcNormalDpcPresent
UINT64 CycleCounterFrequency
UCHAR LogicalProcessorsPerCore
KENTROPY_TIMING_STATE EntropyTimingState
KPROCESSOR_STATE ProcessorState
LONG MmCacheTransitionCount
SINGLE_LIST_ENTRY AbPropagateBoostsList
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