NdisCmDeactivateVc function

NdisCmDeactivateVc notifies NDIS and the underlying miniport driver that there will be no further transfers on a particular active VC.

Syntax


NDIS_STATUS NdisCmDeactivateVc(
  _In_ NDIS_HANDLE NdisVcHandle
);

Parameters

NdisVcHandle [in]

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.

Return value

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.

Remarks

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.

The creator of a particular VC that will not be reused calls NdisCoDeleteVc to destroy that VC.

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.

Requirements

Target platform

Universal

Version

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)

IRQL

<= DISPATCH_LEVEL

DDI compliance rules

Irql_CallManager_Function

See also

MiniportCoDeactivateVc
NdisClCloseCall
NdisClMakeCall
NdisCmActivateVc
NdisCmDispatchIncomingCall
NdisMCmDeactivateVc
ProtocolCmCloseCall
ProtocolCmDeactivateVcComplete

 

 

Send comments about this topic to Microsoft

Show:
© 2015 Microsoft