NdisMCmCloseCallComplete function

NdisMCmCloseCallComplete returns the final status of a client's request, for which the MCM driver previously returned NDIS_STATUS_PENDING, to tear down a call.

Syntax


VOID NdisMCmCloseCallComplete(
  _In_      NDIS_STATUS Status,
  _In_      NDIS_HANDLE NdisVcHandle,
  _In_opt_  NDIS_HANDLE NdisPartyHandle
);

Parameters

Status [in]

Specifies the final status of the client's request that the MCM driver close the connection, either NDIS_STATUS_SUCCESS or any caller-determined NDIS_STATUS_XXX except NDIS_STATUS_PENDING.

NdisVcHandle [in]

Specifies the handle to the VC for the call. This handle was supplied by NDIS when the VC was originally created, whether by the MCM driver with NdisMCmCreateVc or as an input parameter to its ProtocolCoCreateVc function.

NdisPartyHandle [in, optional]

Specifies either NULL if the NdisVcHandle represents a point-to-point VC or the handle to the last remaining party on a multipoint connection, which the MCM driver obtained from its per-party state designated by the CallMgrPartyContext passed as an input parameter to its ProtocolCmCloseCall function.

Return value

None

Remarks

If an MCM driver's ProtocolCmCloseCall function returns NDIS_STATUS_PENDING, it must call NdisMCmCloseCallComplete subsequently to notify the client and NDIS that its attempt to break the connection has completed, whether successfully or with an error. A call to NdisMCmCloseCallComplete causes NDIS to call the client's ProtocolClCloseCallComplete function.

If it passes NDIS_STATUS_SUCCESS as the Status, the MCM driver should consider the NdisVcHandle (and NdisPartyHandle, if any) unusable for transfers over the network as soon as it calls NdisMCmCloseCallComplete. If the MCM driver originally created the VC, it should call NdisMCmDeleteVc with the same NdisVcHandle that it just passed to NdisMCmCloseCallComplete. If the client created this VC, the MCM driver can expect a call to its ProtocolCoDeleteVc function with the ProtocolVcContext, designating its per-VC state in which it has stored the same NdisVcHandle, as an input parameter.

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

Requirements

Version

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

Header

Ndis.h (include Ndis.h)

IRQL

<= DISPATCH_LEVEL

DDI compliance rules

Irql_MCM_Function

See also

NdisClCloseCall
NdisCmCloseCallComplete
NdisMCmCreateVc
NdisMCmDeactivateVc
NdisMCmDeleteVc
ProtocolClCloseCallComplete
ProtocolCoDeleteVc

 

 

Send comments about this topic to Microsoft

Show:
© 2014 Microsoft