Handling interrupts for NDIS miniport drivers

NDIS calls the MiniportInterrupt function when a NIC, or another device that shares the interrupt with the NIC, generates an interrupt.

MiniportInterrupt should return FALSE immediately if the underlying NIC did not generate the interrupt. Otherwise, it returns TRUE after processing the interrupt.

A miniport driver should do as little work as possible in its MiniportInterrupt function. It should defer I/O operations to the MiniportInterruptDPC function. NDIS calls MiniportInterruptDPC to complete the deferred processing of an interrupt.

To queue additional DPCs after MiniportInterrupt returns, the miniport driver sets the bits of the TargetProcessors parameter of the MiniportInterrupt function. To request additional DPCs from MiniportInterrupt or MiniportInterruptDPC, the miniport driver calls the NdisMQueueDpc function.

The miniport driver can call NdisMQueueDpc to request additional DPC calls for other processors.