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)

See also

IO_INTERRUPT_MESSAGE_INFO

MiniportDisableInterruptEx

MiniportDisableMessageInterrupt

MiniportEnableInterruptEx

MiniportEnableMessageInterrupt

MiniportInterrupt

MiniportInterruptDPC

MiniportMessageInterrupt

MiniportMessageInterruptDPC

NDIS_OBJECT_HEADER

NdisMRegisterInterruptEx