typedef struct _KINTERRUPT                                                      // 34 / 38 elements; 0x00B0 / 0x0100 Bytes
{
    INT16                       Type;                                           // 0x0000 / 0x0000; 0x0002 / 0x0002 Bytes
    INT16                       Size;                                           // 0x0002 / 0x0002; 0x0002 / 0x0002 Bytes
#if defined(_M_X64)
    UINT8                       _PADDING0_[4];                                  // ------ / 0x0004; ------ / 0x0004 Bytes
#endif                                                                          // #if defined(_M_X64)
    LIST_ENTRY                  InterruptListEntry;                             // 0x0004 / 0x0008; 0x0008 / 0x0010 Bytes
    UINT8                       (WINAPI * ServiceRoutine)       (PKINTERRUPT,
                                                                 PVOID);        // 0x000C / 0x0018; 0x0004 / 0x0008 Bytes
    UINT8                       (WINAPI * MessageServiceRoutine)
                                                                (PKINTERRUPT,
                                                                 PVOID,
                                                                 ULONG32);      // 0x0010 / 0x0020; 0x0004 / 0x0008 Bytes
    ULONG32                     MessageIndex;                                   // 0x0014 / 0x0028; 0x0004 / 0x0004 Bytes
#if defined(_M_X64)
    UINT8                       _PADDING1_[4];                                  // ------ / 0x002C; ------ / 0x0004 Bytes
#endif                                                                          // #if defined(_M_X64)
    PVOID                       ServiceContext;                                 // 0x0018 / 0x0030; 0x0004 / 0x0008 Bytes
    UINT_PTR                    SpinLock;                                       // 0x001C / 0x0038; 0x0004 / 0x0008 Bytes
    ULONG32                     TickCount;                                      // 0x0020 / 0x0040; 0x0004 / 0x0004 Bytes
#if defined(_M_X64)
    UINT8                       _PADDING2_[4];                                  // ------ / 0x0044; ------ / 0x0004 Bytes
#endif                                                                          // #if defined(_M_X64)
    UINT_PTR *                  ActualLock;                                     // 0x0024 / 0x0048; 0x0004 / 0x0008 Bytes
    void                        (WINAPI * DispatchAddress)      (void);         // 0x0028 / 0x0050; 0x0004 / 0x0008 Bytes
    ULONG32                     Vector;                                         // 0x002C / 0x0058; 0x0004 / 0x0004 Bytes
    UINT8                       Irql;                                           // 0x0030 / 0x005C; 0x0001 / 0x0001 Bytes
    UINT8                       SynchronizeIrql;                                // 0x0031 / 0x005D; 0x0001 / 0x0001 Bytes
    UINT8                       FloatingSave;                                   // 0x0032 / 0x005E; 0x0001 / 0x0001 Bytes
    UINT8                       Connected;                                      // 0x0033 / 0x005F; 0x0001 / 0x0001 Bytes
    ULONG32                     Number;                                         // 0x0034 / 0x0060; 0x0004 / 0x0004 Bytes
    UINT8                       ShareVector;                                    // 0x0038 / 0x0064; 0x0001 / 0x0001 Bytes
    UINT8                       EmulateActiveBoth;                              // 0x0039 / 0x0065; 0x0001 / 0x0001 Bytes
    UINT16                      ActiveCount;                                    // 0x003A / 0x0066; 0x0002 / 0x0002 Bytes
    LONG32                      InternalState;                                  // 0x003C / 0x0068; 0x0004 / 0x0004 Bytes
    KINTERRUPT_MODE             Mode;                                           // 0x0040 / 0x006C; 0x0004 / 0x0004 Bytes
    KINTERRUPT_POLARITY         Polarity;                                       // 0x0044 / 0x0070; 0x0004 / 0x0004 Bytes
    ULONG32                     ServiceCount;                                   // 0x0048 / 0x0074; 0x0004 / 0x0004 Bytes
    ULONG32                     DispatchCount;                                  // 0x004C / 0x0078; 0x0004 / 0x0004 Bytes
#if defined(_M_X64)
    UINT8                       _PADDING3_[4];                                  // ------ / 0x007C; ------ / 0x0004 Bytes
#endif                                                                          // #if defined(_M_X64)
    PKEVENT                     PassiveEvent;                                   // 0x0050 / 0x0080; 0x0004 / 0x0008 Bytes
    PKTRAP_FRAME                TrapFrame;                                      // 0x0054 / 0x0088; 0x0004 / 0x0008 Bytes
    PVOID                       DisconnectData;                                 // 0x0058 / 0x0090; 0x0004 / 0x0008 Bytes
    PKTHREAD                    ServiceThread;                                  // 0x005C / 0x0098; 0x0004 / 0x0008 Bytes
    PINTERRUPT_CONNECTION_DATA  ConnectionData;                                 // 0x0060 / 0x00A0; 0x0004 / 0x0008 Bytes
    PVOID                       IntTrackEntry;                                  // 0x0064 / 0x00A8; 0x0004 / 0x0008 Bytes
    ISRDPCSTATS                 IsrDpcStats;                                    // 0x0068 / 0x00B0; 0x0040 / 0x0040 Bytes
    PVOID                       RedirectObject;                                 // 0x00A8 / 0x00F0; 0x0004 / 0x0008 Bytes
#if defined(_M_X64)
    UINT8                       Padding[8];                                     // ------ / 0x00F8; ------ / 0x0008 Bytes
#else                                                                           // #if defined(_M_X64)
    UINT8                       _PADDING0_[4];                                  // 0x00AC / ------; 0x0004 / ------ Bytes
#endif                                                                          // #if defined(_M_X64)
} KINTERRUPT, * PKINTERRUPT;

Return to OS-specific structures/unions/enums list.
Return to OS version list.