// Public nt-lite DDK interrupt declarations. #pragma once #include #include typedef struct NTL_DDK_MSI_MESSAGE { uint64_t Address; uint32_t Data; uint32_t Reserved; } NTL_DDK_MSI_MESSAGE; // Driver-visible interrupt services. typedef struct NTL_DDK_INTERRUPT { KSTATUS (*AllocateMsiVector)(uint8_t* outIrq); KSTATUS (*ComposeMsiMessage)(uint8_t irq, NTL_DDK_MSI_MESSAGE* messageOut); } NTL_DDK_INTERRUPT; // Allocates one kernel IRQ slot for MSI delivery. __declspec(dllexport) KSTATUS KeIrqAllocateMsiVector(uint8_t* outIrq); // Registers a legacy interrupt handler for an IRQ slot. __declspec(dllexport) void KeIrqRegister(uint8_t irq, void (*handler)(void));