NdisCmCloseCallComplete function (ndis.h)
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(
[in] NDIS_STATUS Status,
[in] NDIS_HANDLE NdisVcHandle,
[in, optional] NDIS_HANDLE NdisPartyHandle
);
Parameters
[in] 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.
[in] 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.
[in, optional] 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
Requirement | Value |
---|---|
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(ndis) |