12 #define LOCAL_APIC_BASE 0xFFFFFFFFFFFE0000ULL 13 #define IOAPIC_BASE 0xFFFFFFFFFFFE1000ULL 16 #define APC_VECTOR 0x1F // IRQL 01 (APC_LEVEL) - KiApcInterrupt 17 #define DISPATCH_VECTOR 0x2F // IRQL 02 (DISPATCH_LEVEL) - KiDpcInterrupt 18 #define CMCI_VECTOR 0x35 // IRQL 05 (CMCI_LEVEL) - HalpInterruptCmciService 19 #define APIC_CLOCK_VECTOR 0xD1 // IRQL 13 (CLOCK_LEVEL), IRQ 8 - HalpTimerClockInterrupt 20 #define CLOCK_IPI_VECTOR 0xD2 // IRQL 13 (CLOCK_LEVEL) - HalpTimerClockIpiRoutine 21 #define REBOOT_VECTOR 0xD7 // IRQL 15 (PROFILE_LEVEL) - HalpInterruptRebootService 22 #define STUB_VECTOR 0xD8 // IRQL 15 (PROFILE_LEVEL) - HalpInterruptStubService 23 #define APIC_SPURIOUS_VECTOR 0xDF // IRQL 13 (CLOCK_LEVEL) - HalpInterruptSpuriousService 24 #define APIC_IPI_VECTOR 0xE1 // IRQL 14 (IPI_LEVEL) - KiIpiInterrupt 25 #define APIC_ERROR_VECTOR 0xE2 // IRQL 14 (IPI_LEVEL) - HalpInterruptLocalErrorService 26 #define POWERFAIL_VECTOR 0xE3 // IRQL 14 (POWER_LEVEL) : HalpInterruptDeferredRecoveryService 27 #define APIC_PROFILE_VECTOR 0xFD // IRQL 15 (PROFILE_LEVEL) - HalpTimerProfileInterrupt 28 #define APIC_PERF_VECTOR 0xFE // IRQL 15 (PROFILE_LEVEL) - HalpPerfInterrupt 29 #define APIC_NMI_VECTOR 0xFF 31 #define IrqlToTpr(Irql) (Irql << 4) 32 #define IrqlToSoftVector(Irql) ((Irql << 4)|0xf) 33 #define TprToIrql(Tpr) ((KIRQL)(Tpr >> 4)) 34 #define CLOCK2_LEVEL CLOCK_LEVEL 36 #define LOCAL_APIC_BASE 0xFFFE0000 37 #define IOAPIC_BASE 0xFFFE1000 40 #define APIC_SPURIOUS_VECTOR 0x1f 41 #define APC_VECTOR 0x3D // IRQL 01 42 #define DISPATCH_VECTOR 0x41 // IRQL 02 43 #define APIC_GENERIC_VECTOR 0xC1 // IRQL 27 44 #define APIC_CLOCK_VECTOR 0xD1 // IRQL 28 45 #define APIC_SYNCH_VECTOR 0xD1 // IRQL 28 46 #define APIC_IPI_VECTOR 0xE1 // IRQL 29 47 #define APIC_ERROR_VECTOR 0xE3 48 #define POWERFAIL_VECTOR 0xEF // IRQL 30 49 #define APIC_PROFILE_VECTOR 0xFD // IRQL 31 50 #define APIC_PERF_VECTOR 0xFE 51 #define APIC_NMI_VECTOR 0xFF 53 #define IrqlToTpr(Irql) (HalpIRQLtoTPR[Irql]) 54 #define IrqlToSoftVector(Irql) IrqlToTpr(Irql) 55 #define TprToIrql(Tpr) (HalVectorToIRQL[Tpr >> 4]) 58 #define APIC_MAX_IRQ 24 59 #define APIC_FREE_VECTOR 0xFF 60 #define APIC_RESERVED_VECTOR 0xFE 69 #define IMCR_ADDRESS_PORT (PUCHAR)0x0022 70 #define IMCR_DATA_PORT (PUCHAR)0x0023 71 #define IMCR_SELECT 0x70 72 #define IMCR_PIC_DIRECT 0x00 73 #define IMCR_PIC_VIA_APIC 0x01 113 #define MSR_APIC_BASE 0x0000001B 114 #define IOAPIC_PHYS_BASE 0xFEC00000 115 #define APIC_CLOCK_INDEX 8 116 #define ApicLogicalId(Cpu) ((UCHAR)(1<< Cpu)) 185 #include <pshpack1.h> 280 #define IOAPIC_IOREGSEL 0x00 281 #define IOAPIC_IOWIN 0x10 284 #define IOAPIC_ID 0x00 285 #define IOAPIC_VER 0x01 286 #define IOAPIC_ARB 0x02 287 #define IOAPIC_REDTBL 0x10
VOID NTAPI ApicInitializeTimer(ULONG Cpu)
NTKERNELAPI VOID NTAPI WRITE_REGISTER_ULONG(IN PULONG Register, IN ULONG Value)
FORCEINLINE ULONG ApicRead(APIC_REGISTER Register)
union _APIC_INTERRUPT_COMMAND_REGISTER APIC_INTERRUPT_COMMAND_REGISTER
NTKERNELAPI ULONG NTAPI READ_REGISTER_ULONG(IN PULONG Register)
VOID NTAPI HalInitializeProfiling(VOID)
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
FORCEINLINE VOID ApicWrite(APIC_REGISTER Register, ULONG Value)
union _IOAPIC_REDIRECTION_REGISTER IOAPIC_REDIRECTION_REGISTER
UINT32 FocusCPUCoreChecking
PLOADER_PARAMETER_BLOCK KeLoaderBlock
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
union _APIC_EXTENDED_CONTROL_REGISTER APIC_EXTENDED_CONTROL_REGISTER
UINT32 ExtRegSpacePresent
UINT64 DestinationShortHand
union _APIC_SPURIOUS_INERRUPT_REGISTER APIC_SPURIOUS_INERRUPT_REGISTER
enum _APIC_REGISTER APIC_REGISTER
union _APIC_BASE_ADRESS_REGISTER APIC_BASE_ADRESS_REGISTER
union _LVT_REGISTER LVT_REGISTER
unsigned long long UINT64
union _APIC_VERSION_REGISTER APIC_VERSION_REGISTER
VOID __cdecl ApicSpuriousService(VOID)
VOID NTAPI HalpInitApicInfo(IN PLOADER_PARAMETER_BLOCK KeLoaderBlock)