Resetting a network interface card
When the NDIS library determines that a NIC must be reset, either because a send operation or request operation has timed out or because that NIC driver’s MiniportCheckForHang function has returned TRUE, the miniport’s MiniportReset function is called. MiniportReset issues a hardware reset to the network interface card and updates its own software state.
MiniportReset completes synchronously with a success or error status code, or asynchronously with NDIS_STATUS_PENDING. If the function is asynchronous, the miniport later calls NdisMResetComplete to allow postprocessing.
The NIC driver is guaranteed that NDIS will not send any requests or sends while a reset is in progress. Also, NDIS will complete any currently outstanding requests or sends, so the miniport need not explicitly complete them.