Registering and Deregistering an MSI Interrupt

To register for MSI support, a miniport driver calls the NdisMRegisterInterruptEx function to register an MSI interrupt. The driver allocates and initializes an NDIS_MINIPORT_INTERRUPT_CHARACTERISTICS structure to specify the interrupt characteristics and function entry points. The driver must set the MsiSupported member of the NDIS_MINIPORT_INTERRUPT_CHARACTERISTICS structure to TRUE. The driver then passes the structure to NdisMRegisterInterruptEx.

You must define the following functions to support MSI interrupts:

The miniport driver should provide entry points for the line-based interrupt functions (which are shown in the following list), even if the driver supports the MSI entry points. If NDIS does not grant an MSI interrupt, it can grant a normal interrupt as a fallback condition.

The line-interrupt functions include the following:

Drivers should call the NdisMDeregisterInterruptEx function to release resources that were previously allocated with NdisMRegisterInterruptEx.