NdisCmCloseCallComplete function

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

Syntax

void NdisCmCloseCallComplete(
  NDIS_STATUS Status,
  NDIS_HANDLE NdisVcHandle,
  NDIS_HANDLE NdisPartyHandle
);

Parameters

Status

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

NdisVcHandle

Specifies the handle to the VC for the call. This handle was supplied by NDIS when the VC was originally created, whether by the call manager or client, with NdisCoCreateVc. More recently, the call manager obtained this handle from its per-VC state designated by the CallMgrVcContext passed as an input parameter to its ProtocolCmCloseCall function.

NdisPartyHandle

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 CM obtained from its per-party state designated by the CallMgrPartyContext passed as an input parameter to its ProtocolCmCloseCall function.

Return Value

None

Remarks

If a stand-alone call manager's ProtocolCmCloseCall function returns NDIS_STATUS_PENDING, the CM must call NdisCmCloseCallComplete 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 NdisCmCloseCallComplete causes NDIS to call the client's ProtocolClCloseCallComplete function.

If it passes NDIS_STATUS_SUCCESS as the Status, the call manager should consider the NdisVcHandle (and NdisPartyHandle, if any) unusable for transfers over the network as soon as it calls NdisCmCloseCallComplete. If the call manager originally created the VC, it should call NdisCoDeleteVc with the same NdisVcHandle that it just passed to NdisCmCloseCallComplete. If the client created this VC, the call manager can expect a call to its ProtocolCoDeleteVc function with the
ProtocolVcContext, where it has the same NdisVcHandle, as an input parameter.

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

Requirements

   
Minimum supported client Supported for NDIS 6.0 and NDIS 5.1 drivers (see NdisCmCloseCallComplete (NDIS 5.1)) in Windows Vista. Supported for NDIS 5.1 drivers (see NdisCmCloseCallComplete (NDIS 5.1)) in Windows XP.
Target Platform Desktop
Header ndis.h (include Ndis.h)
Library Ndis.lib
IRQL <= DISPATCH_LEVEL
DDI compliance rules Irql_CallManager_Function

See Also

NdisClCloseCall

NdisCoDeleteVc

NdisMCmCloseCallComplete

ProtocolClCloseCallComplete

ProtocolCoDeleteVc