NDIS_MINIPORT_INTERRUPT_CHARACTERISTICS structure (ndis.h)
An NDIS miniport driver defines its interrupt characteristics in an NDIS_MINIPORT_INTERRUPT_CHARACTERISTICS structure and passes the structure to the NdisMRegisterInterruptEx function.
Syntax
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;
Members
Header
The 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.
InterruptHandler
The entry point for the MiniportInterrupt function that is associated with this interrupt.
InterruptDpcHandler
The entry point for the MiniportInterruptDPC function that is associated with this interrupt.
DisableInterruptHandler
The entry point for the MiniportDisableInterruptEx function.
EnableInterruptHandler
The entry point for the MiniportEnableInterruptEx function.
MsiSupported
Set 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.
MsiSyncWithAllMessages
Set 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.
MessageInterruptHandler
The 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.
MessageInterruptDpcHandler
The 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.
DisableMessageInterruptHandler
The entry point for the MiniportDisableMessageInterrupt function, if any. If the driver does not support message signaled interrupts, set this member to NULL.
EnableMessageInterruptHandler
The entry point for the MiniportEnableMessageInterrupt function, if any. If the driver does not support message-signaled interrupts, set this member to NULL.
InterruptType
A 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.
MessageInfoTable
An NDIS-supplied pointer to an IO_INTERRUPT_MESSAGE_INFO structure.
- If InterruptType is NDIS_CONNECT_MESSAGE_BASED, NDIS initializes an IO_INTERRUPT_MESSAGE_INFO structure with information about the interrupt and sets MessageInfoTable to a pointer to the structure. Miniport drivers must not modify the structure.
- If InterruptType is NDIS_CONNECT_LINE_BASED, MessageInfoTable must be NULL.
Remarks
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.
Requirements
Requirement | Value |
---|---|
Minimum supported client | Supported in NDIS 6.0 and later. |
Header | ndis.h (include Ndis.h) |