Reset

NDIS might call a miniport driver's or MCM driver's MiniportResetEx function to reset a NIC.

Note  AF, SAP, and VC handles that are active and valid before a reset are active and valid after the reset.

The following figure shows a client issuing a reset request to a miniport driver.

Diagram showing a client issuing a reset request to a miniport driver.

The next figure shows a client issuing a reset request to an MCM driver.

Diagram showing 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.