Share via


NDIS_MINIPORT_INTERRUPT_CHARACTERISTICS (Compact 7)

3/12/2014

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 {
  IN NDIS_OBJECT_HEADER  Header;
  IN MINIPORT_ISR_HANDLER  InterruptHandler;
  IN MINIPORT_INTERRUPT_DPC_HANDLER  InterruptDpcHandler;
  IN MINIPORT_DISABLE_INTERRUPT_HANDLER  DisableInterruptHandler;
  IN MINIPORT_ENABLE_INTERRUPT_HANDLER  EnableInterruptHandler;
  IN BOOLEAN  MsiSupported;
  IN BOOLEAN  MsiSyncWithAllMessages;
  IN MINIPORT_MSI_ISR_HANDLER  MessageInterruptHandler;
  IN MINIPORT_MSI_INTERRUPT_DPC_HANDLER  MessageInterruptDpcHandler;
  IN MINIPORT_DISABLE_MSI_INTERRUPT_HANDLER  DisableMessageInterruptHandler;
  IN MINIPORT_ENABLE_MSI_INTERRUPT_HANDLER  EnableMessageInterruptHandler;
  OUT NDIS_INTERRUPT_TYPE  InterruptType;
  OUT 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 at the same time.

  • 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, NDIS granted the driver a line-based interrupt, which can occur 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
    A pointer to an NDIS-supplied pointer to a 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.

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

Header

ndis.h

See Also

Reference

Interrupt Structures
NDIS_OBJECT_HEADER
NdisMRegisterInterruptEx