// ndis.h
typedef struct _NDIS_MINIPORT_INTERRUPT_CHARACTERISTICS {
NDIS_OBJECT_HEADER Header;
MINIPORT_ISR_HANDLER InterruptHandler;
MINIPORT_INTERRUPT_DPC_HANDLER InterruptDpcHandler;
MINIPORT_DISABLE_INTERRUPT_HANDLER DisableInterruptHandler;
MINIPORT_ENABLE_INTERRUPT_HANDLER EnableInterruptHandler;
BOOLEAN MsiSupported;
BOOLEAN MsiSyncWithAllMessages;
MINIPORT_MSI_ISR_HANDLER MessageInterruptHandler;
MINIPORT_MSI_INTERRUPT_DPC_HANDLER MessageInterruptDpcHandler;
MINIPORT_DISABLE_MSI_INTERRUPT_HANDLER DisableMessageInterruptHandler;
MINIPORT_ENABLE_MSI_INTERRUPT_HANDLER EnableMessageInterruptHandler;
NDIS_INTERRUPT_TYPE InterruptType;
PIO_INTERRUPT_MESSAGE_INFO MessageInfoTable;
} NDIS_MINIPORT_INTERRUPT_CHARACTERISTICS, *PNDIS_MINIPORT_INTERRUPT_CHARACTERISTICS;
View the official Windows Driver Kit DDI referenceNo description available.
An NDIS miniport driver defines its interrupt characteristics in an NDIS_MINIPORT_INTERRUPT_CHARACTERISTICS structure and passes the structure to the NdisMRegisterInterruptEx function.
HeaderThe NDIS_OBJECT_HEADER structure for the NDIS_MINIPORT_INTERRUPT_CHARACTERISTICS structure. Set the Type member of the structure that Header specifies to NDIS_OBJECT_TYPE_MINIPORT_INTERRUPT, the Revision member to NDIS_MINIPORT_INTERRUPT_REVISION_1, and the Size member to NDIS_SIZEOF_MINIPORT_INTERRUPT_CHARACTERISTICS_REVISION_1.
InterruptHandlerThe entry point for the MiniportInterrupt function that is associated with this interrupt.
InterruptDpcHandlerThe entry point for the MiniportInterruptDPC function that is associated with this interrupt.
DisableInterruptHandlerThe entry point for the MiniportDisableInterruptEx function.
EnableInterruptHandlerThe entry point for the MiniportEnableInterruptEx function.
MsiSupportedSet this member to TRUE if the miniport driver supports message-signaled interrupt (MSI) service functions. The miniport driver must provide entry points for the MSI service functions.
Setting this value to FALSE indicates that MSI is not supported. The MSI service function entry points should be set to NULL.
MsiSyncWithAllMessagesSet this member to TRUE if the miniport driver must serialize all MSI service functions.
Setting this value to TRUE can degrade interrupt performance. It is more efficient for multiple interrupt service functions that handle different messages to run concurrently.
MessageInterruptHandlerThe entry point for the MiniportMessageInterrupt function, if it exists, that is associated with this interrupt. If the driver does not support message interrupts, set this member to NULL.
MessageInterruptDpcHandlerThe entry point for the MiniportMessageInterruptDPC function, if any, that is associated with this interrupt. If the driver does not support message-signaled interrupts, set this member to NULL.
DisableMessageInterruptHandlerThe entry point for the MiniportDisableMessageInterrupt function, if any. If the driver does not support message signaled interrupts, set this member to NULL.
EnableMessageInterruptHandlerThe entry point for the MiniportEnableMessageInterrupt function, if any. If the driver does not support message-signaled interrupts, set this member to NULL.
InterruptTypeA variable of type NDIS_INTERRUPT_TYPE. NDIS sets this variable to indicate which kind of interrupt it granted to the miniport driver. If the driver supports MSI, it must check this value if NdisMRegisterInterruptEx returns NDIS_STATUS_SUCCESS. If InterruptType is set to NDIS_CONNECT_LINE_BASED, then NDIS granted the driver a line-based interrupt, which can happen even if the driver supports message-signaled interrupts. If InterruptType is set to NDIS_CONNECT_MESSAGE_BASED, then NDIS granted the driver a message-signaled interrupt. In this case, the driver can access MessageInfoTable to obtain the interrupt information.
MessageInfoTableAn NDIS-supplied pointer to an IO_INTERRUPT_MESSAGE_INFO structure.
A miniport driver calls the NdisMRegisterInterruptEx function to register an interrupt. The driver allocates and initializes an NDIS_MINIPORT_INTERRUPT_CHARACTERISTICS structure to specify the interrupt characteristics and handler entry points and passes the structure to NdisMRegisterInterruptEx.
MiniportDisableMessageInterrupt
MiniportEnableMessageInterrupt