Supporting Message Signaled Interrupts in NDIS 6.0

To support message signaled interrupts (MSI), add optional entry points to the NDIS_MINIPORT_INTERRUPT_CHARACTERISTICS structure during interrupt registration. For example, define a MiniportMessageInterrupt function. For more information about registering interrupt entry points, see Porting Interrupt Registration to NDIS 6.0.

The driver should provide entry points for the normal interrupt functions, 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. If the driver does not support MSI, set the MSI entry points to NULL.

MSI support can provide significant performance benefits. This is particularly true for NICs that support receive side scaling. For more information about receive side scaling, see NDIS 6.0 Receive Side Scaling.