NdisMCmDeactivateVc

NdisMCmDeactivateVc function

NdisMCmDeactivateVc notifies NDIS that there will be no further transfers on a particular active VC.

Syntax


NDIS_STATUS NdisMCmDeactivateVc(
  _In_ NDIS_HANDLE NdisVcHandle
);

Parameters

NdisVcHandle [in]

Specifies the handle identifying the VC. This handle was supplied by NDIS to the MCM driver either when it called NdisMCmCreateVc for an incoming call or when its ProtocolCoCreateVc function set up the VC for a client-initiated outgoing call.

Return value

NdisMCmDeactivateVc can return one of the following:

Return codeDescription
NDIS_STATUS_SUCCESS

NDIS marked the VC as inactive.

NDIS_STATUS_NOT_ACCEPTED

The VC is already deactivated, so this call is redundant.

 

Remarks

An MCM driver calls NdisMCmDeactivateVc as an essential step in closing a call, usually after the packet exchange with network components that tears down the connection.

A successful call to NdisMCmDeactivateVc allows the MCM driver to discard the current call parameters for transfers on the VC, possibly reinitializing them to miniport driver-determined default values. However, if the VC is reactivated subsequently for another call, the client will supply new call parameters to the miniport driver.

The NdisVcHandle passed to NdisMCmDeactivateVc remains valid after VC deactivation is completed. The deactivation of any VC allows its creator to reinitialize the VC for reuse or to destroy it:

  • 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, or it can call NdisCoDeleteVc, thereby causing a call to the MCM driver's ProtocolCoDeleteVc function.

  • Following VC deactivation and the closing of the call, an MCM driver can reuse a VC that it originally created to indicate another incoming call to the same client with NdisMCmDispatchIncomingCall, or it can call NdisMCmDeleteVc.

The driver writer determines whether an MCM driver has an (internal) MiniportCoDeactivateVc function that the driver calls in the context of tearing down connections for outgoing and incoming calls.

Only connection-oriented miniport drivers that provide integrated call-management support can call NdisMCmDeactivateVc. Stand-alone call managers, which register themselves with NDIS as protocol drivers, call NdisCmDeactivateVc instead.

Requirements

Target platform

Universal

Version

Supported for NDIS 6.0 and NDIS 5.1 drivers (see NdisMCmDeactivateVc (NDIS 5.1)) in Windows Vista. Supported for NDIS 5.1 drivers (see NdisMCmDeactivateVc (NDIS 5.1)) in Windows XP.

Header

Ndis.h (include Ndis.h)

Library

Ndis.lib

IRQL

<= DISPATCH_LEVEL

DDI compliance rules

Irql_MCM_Function

See also

MiniportCoDeactivateVc
NdisClCloseCall
NdisClMakeCall
NdisCmDeactivateVc
NdisMCmActivateVc
NdisMCmDeleteVc
NdisMCmDispatchIncomingCall
ProtocolCmCloseCall
ProtocolCoDeleteVc

 

 

Send comments about this topic to Microsoft

Show:
© 2016 Microsoft