struct _KINTERRUPT { short Type;/* 0x0 2 */ short Size;/* 0x2 2 */ /* 4 bytes padding */ struct _LIST_ENTRY InterruptListEntry;/* 0x8 16 */ unsigned char (*ServiceRoutine)(struct _KINTERRUPT*, void*);/* 0x18 8 */ unsigned char (*MessageServiceRoutine)(struct _KINTERRUPT*, void*, unsigned long);/* 0x20 8 */ unsigned long MessageIndex;/* 0x28 4 */ /* 4 bytes padding */ void* ServiceContext;/* 0x30 8 */ unsigned __int64 SpinLock;/* 0x38 8 */ /* ── cacheline 1 boundary (64 bytes) ── */ unsigned long TickCount;/* 0x40 4 */ /* 4 bytes padding */ unsigned __int64* ActualLock;/* 0x48 8 */ void (*DispatchAddress)(void);/* 0x50 8 */ unsigned long Vector;/* 0x58 4 */ unsigned char Irql;/* 0x5c 1 */ unsigned char SynchronizeIrql;/* 0x5d 1 */ unsigned char FloatingSave;/* 0x5e 1 */ unsigned char Connected;/* 0x5f 1 */ unsigned long Number;/* 0x60 4 */ unsigned char ShareVector;/* 0x64 1 */ unsigned char EmulateActiveBoth;/* 0x65 1 */ unsigned short ActiveCount;/* 0x66 2 */ long InternalState;/* 0x68 4 */ enum _KINTERRUPT_MODE Mode;/* 0x6c 4 */ enum _KINTERRUPT_POLARITY Polarity;/* 0x70 4 */ unsigned long ServiceCount;/* 0x74 4 */ unsigned long DispatchCount;/* 0x78 4 */ /* 4 bytes padding */ /* ── cacheline 2 boundary (128 bytes) ── */ struct _KEVENT* PassiveEvent;/* 0x80 8 */ struct _KTRAP_FRAME* TrapFrame;/* 0x88 8 */ void* DisconnectData;/* 0x90 8 */ struct _KTHREAD* ServiceThread;/* 0x98 8 */ struct _INTERRUPT_CONNECTION_DATA* ConnectionData;/* 0xa0 8 */ void* IntTrackEntry;/* 0xa8 8 */ struct _ISRDPCSTATS IsrDpcStats;/* 0xb0 96 */ /* ── cacheline 4 boundary (256 bytes) ── */ void* RedirectObject;/* 0x110 8 */ unsigned char Padding[8];/* 0x118 8 */};size 288 (0x120)34 members4 holes (16 bytes)padding 05 cachelines
Used in (2)