Resetting a Network Interface Card (NDIS 5.1)
Note NDIS 5. x has been deprecated and is superseded by NDIS 6. x. For new NDIS driver development, see Network Drivers Starting with Windows Vista. For information about porting NDIS 5. x drivers to NDIS 6. x, see Porting NDIS 5.x Drivers to NDIS 6.0.
NDIS resets a NIC when:
The NIC driver's MiniportCheckForHang function returns TRUE.
A request (query or set) operation to the miniport driver times out.
A serialized miniport driver's send operation times out.
When the NDIS Library determines that a NIC must be reset, it calls the miniport driver's MiniportResetfunction. MiniportResetissues a hardware reset to the NIC and updates its own software state.
MiniportResetcompletes synchronously with a success or error status code, or asynchronously with NDIS_STATUS_PENDING. If the function is asynchronous, the miniport driver later calls NdisMResetCompleteto allow postprocessing.
The NIC driver is guaranteed that NDIS will not send any requests or sends while a reset is in progress. Also, for serialized miniport drivers, NDIS will complete any currently outstanding requests or sends, so the miniport driver need not explicitly complete them.
For a detailed description of resetting a NIC managed by a serialized miniport driver, see Hardware Reset.