NdisCmDeactivateVc function (ndis.h)
NdisCmDeactivateVc notifies NDIS and the underlying miniport driver that there will be no further transfers on a particular active VC.
NDIS_STATUS NdisCmDeactivateVc( [in] NDIS_HANDLE NdisVcHandle );
Specifies the handle identifying the VC. This handle was supplied by NDIS to the call manager either when it called NdisCoCreateVc for an incoming call or when its ProtocolCoCreateVc function set up the VC for a client-initiated outgoing call.
When NdisCmDeactivateVc returns anything other than NDIS_STATUS_PENDING, the call manager should make an internal call to its ProtocolCmDeactivateVcComplete function. Otherwise, NDIS calls the CM's ProtocolCmDeactivateVcComplete function when this operation is completed.
A stand-alone call manager calls NdisCmDeactivateVc as an essential step in closing a call, usually after the packet exchange with network components that tears down the call.
A call to NdisCmDeactivateVc causes NDIS to call the underlying miniport driver's MiniportCoDeactivateVc function, which can discard the current call parameters for transfers on the VC, possibly reinitializing them to miniport driver-determined default values. If the VC is reactivated subsequently for another call, the client or call manager will supply new call parameters to the miniport driver.
The NdisVcHandle passed to NdisCmDeactivateVc remains valid after VC deactivation is completed. The deactivation of any VC allows its creator to reinitialize the VC for reuse:
- Following VC deactivation and the closing of the call, a client can reuse a VC that it originally created to make another call with NdisClMakeCall.
- Following VC deactivation and the closing of the call, a CM can reuse a VC that it originally created to indicate another incoming call to the same client with NdisCmDispatchIncomingCall.
Only stand-alone call managers, which register themselves with NDIS as protocol drivers, can call NdisCmDeactivateVc. Connection-oriented miniport drivers that provide integrated call-management support call NdisMCmDeactivateVc instead.
|Minimum supported client||Supported for NDIS 6.0 and NDIS 5.1 drivers (see NdisCmDeactivateVc (NDIS 5.1)) in Windows Vista. Supported for NDIS 5.1 drivers (see NdisCmDeactivateVc (NDIS 5.1)) in Windows XP.|
|Header||ndis.h (include Ndis.h)|
|DDI compliance rules||Irql_CallManager_Function(ndis)|