struct _INTERRUPT_FUNCTION_TABLE
{
LONG (*InitializeLocalUnit)(
VOID* arg1,
ULONG arg2,
ULONG arg3,
ULONG arg4,
ULONG arg5,
ULONG* arg6);
LONG (*InitializeIoUnit)(
VOID* arg1);
VOID (*SetPriority)(
VOID* arg1,
ULONG arg2);
ULONG (*GetLocalUnitError)(
VOID* arg1);
VOID (*ClearLocalUnitError)(
VOID* arg1);
LONG (*GetLogicalId)(
VOID* arg1,
struct _INTERRUPT_TARGET* arg2);
LONG (*SetLogicalId)(
VOID* arg1,
struct _INTERRUPT_TARGET* arg2);
enum _INTERRUPT_RESULT (*AcceptAndGetSource)(
VOID* arg1,
LONG* arg2,
ULONG* arg3);
VOID (*EndOfInterrupt)(
VOID* arg1);
VOID (*FastEndOfInterrupt)();
LONG (*SetLineState)(
VOID* arg1,
struct _INTERRUPT_LINE* arg2,
struct _INTERRUPT_LINE_STATE* arg3);
LONG (*RequestInterrupt)(
VOID* arg1,
struct _INTERRUPT_LINE* arg2,
struct _INTERRUPT_TARGET* arg3,
ULONG arg4,
struct _INTERRUPT_LINE* arg5);
LONG (*StartProcessor)(
VOID* arg1,
ULONG arg2,
VOID* arg3,
ULONG arg4);
LONG (*GenerateMessage)(
VOID* arg1,
struct _INTERRUPT_LINE_STATE* arg2,
ULONGLONG* arg3,
ULONGLONG* arg4);
LONG (*ConvertId)(
VOID* arg1,
ULONG* arg2,
struct _INTERRUPT_TARGET* arg3,
UCHAR arg4);
LONG (*SaveLocalInterrupts)(
VOID* arg1,
VOID* arg2);
LONG (*ReplayLocalInterrupts)(
VOID* arg1,
VOID* arg2);
LONG (*DeinitializeLocalUnit)(
VOID* arg1);
LONG (*DeinitializeIoUnit)(
VOID* arg1);
enum _INTERRUPT_RESULT (*QueryAndGetSource)(
VOID* arg1,
LONG* arg2,
ULONG* arg3,
UCHAR* arg4);
VOID (*DeactivateInterrupt)(
VOID* arg1,
ULONG arg2);
VOID (*DirectedEndOfInterrupt)(
VOID* arg1,
ULONG arg2,
ULONG arg3);
LONG (*QueryLocalUnitInfo)(
VOID* arg1,
ULONG arg2,
ULONG* arg3,
ULONG* arg4,
enum _KINTERRUPT_MODE* arg5,
enum _KINTERRUPT_MODE* arg6);
};