//0x100 bytes (sizeof)
struct _KINTERRUPT
{
SHORT Type; //0x0
SHORT Size; //0x2
struct _LIST_ENTRY InterruptListEntry; //0x8
UCHAR (*ServiceRoutine)(struct _KINTERRUPT* arg1, VOID* arg2); //0x18
UCHAR (*MessageServiceRoutine)(struct _KINTERRUPT* arg1, VOID* arg2, ULONG arg3); //0x20
ULONG MessageIndex; //0x28
VOID* ServiceContext; //0x30
ULONGLONG SpinLock; //0x38
ULONG TickCount; //0x40
ULONGLONG* ActualLock; //0x48
VOID (*DispatchAddress)(); //0x50
ULONG Vector; //0x58
UCHAR Irql; //0x5c
UCHAR SynchronizeIrql; //0x5d
UCHAR FloatingSave; //0x5e
UCHAR Connected; //0x5f
ULONG Number; //0x60
UCHAR ShareVector; //0x64
UCHAR EmulateActiveBoth; //0x65
USHORT ActiveCount; //0x66
LONG InternalState; //0x68
enum _KINTERRUPT_MODE Mode; //0x6c
enum _KINTERRUPT_POLARITY Polarity; //0x70
ULONG ServiceCount; //0x74
ULONG DispatchCount; //0x78
struct _KEVENT* PassiveEvent; //0x80
struct _KTRAP_FRAME* TrapFrame; //0x88
ULONG DispatchCode[4]; //0x90
VOID* DisconnectData; //0xa0
struct _KTHREAD* volatile ServiceThread; //0xa8
struct _ISRDPCSTATS IsrDpcStats; //0xb0
struct _INTERRUPT_CONNECTION_DATA* ConnectionData; //0xf0
UCHAR Padding[8]; //0xf8
};