ProtocolResetComplete

VOID
    ProtocolResetComplete(

        IN NDIS_HANDLE  ProtocolBindingContext,
        IN NDIS_STATUS  Status
        );

ProtocolResetComplete is a required driver function that completes a protocol-initiated reset operation for which NdisReset returned NDIS_STATUS_PENDING.

Parameters

ProtocolBindingContext
Specifies the handle to a protocol-allocated context area in which the protocol driver maintains per-binding runtime state. The driver supplied this handle when it called NdisOpenAdapter.
Status
Specifies the final status of the protocol-initiated reset operation.

Comments

ProtocolResetComplete completes processing for an asynchronous reset of the underlying driver’s NIC or virtual NIC.

The underlying miniport’s call to NdisMResetComplete causes NDIS to call the ProtocolResetComplete function. NDIS forwards the miniport-determined Status passed to NdisMResetComplete as the input Status to ProtocolStatusComplete.

ProtocolResetComplete can be called before the protocol has had time to inspect the status code that NdisReset returns at Status.

The ProtocolResetComplete function of an NDIS intermediate driver cannot simply forward completion indications to still higher-level protocols. Such an attempt can cause a deadlock. Instead, such a driver must call NdisIMSwitchToMiniport to forward the indication from the appropriate context. If NdisIMSwitchToMiniport returns FALSE, the driver must call NdisIMQueueMiniportCallback and forward the indication from a protocol-supplied MiniportCallback function.

By default ProtocolResetComplete runs at IRQL DISPATCH_LEVEL in an arbitrary thread context.

See Also

MiniportReset, NdisIMQueueMiniportCallback, NdisIMSwitchToMiniport, NdisMResetComplete, NdisReset, ProtocolStatus, ProtocolStatusComplete