NDIS might call a miniport driver's or MCM driver's MiniportResetEx function to reset a NIC.
The following figure shows a client issuing a reset request to a miniport driver.
The next figure shows a client issuing a reset request to an MCM driver.
When an underlying connection-oriented driver is resetting a NIC, NDIS notifies each bound protocol by calling the protocol's ProtocolCoStatusEx function with NDIS_STATUS_RESET_START.
NDIS will not accept protocol-initiated sends and requests to a miniport driver or MCM driver while the miniport driver's or MCM driver's NIC is being reset. While a reset is in progress, a protocol driver must not attempt to send packets to the miniport driver with NdisCoSendNetBufferLists or request information from the miniport driver with NdisCoOidRequest.
MiniportResetEx performs any device-dependent actions that are required to reset the NIC. MiniportResetEx can complete synchronously, or it can complete asynchronously with a call to NdisMResetComplete:
If the reset completes synchronously, NDIS calls each bound protocol's ProtocolCoStatusEx function with NDIS_STATUS_RESET_END.
If the reset completes asynchronously, NDIS calls each bound protocol's ProtocolCoStatusEx function with NDIS_STATUS_RESET_END.