Share via


NdisCmDispatchIncomingCloseCall (NDIS 5.1) function

Note   NDIS 5. x has been deprecated and is superseded by NDIS 6. x. For new NDIS driver development, see Network Drivers Starting with Windows Vista. For information about porting NDIS 5. x drivers to NDIS 6. x, see Porting NDIS 5.x Drivers to NDIS 6.0.

NdisCmDispatchIncomingCloseCall tells a client to tear down an active or offered call, usually because the call manager has received a request from the network to close the connection.

Syntax

VOID NdisCmDispatchIncomingCloseCall(
  _In_     NDIS_STATUS CloseStatus,
  _In_     NDIS_HANDLE NdisVcHandle,
  _In_opt_ PVOID       Buffer,
  _In_     UINT        Size
);

Parameters

  • CloseStatus [in]
    Specifies a CM-determined NDIS_STATUS_XXX, indicating the reason for the disconnect request. During normal network operations, a call manager passes NDIS_STATUS_SUCCESS to indicate that it has received a request, initiated by the remote party, to close an active call.

  • NdisVcHandle [in]
    Specifies the handle to the VC of the call being disconnected. This handle was supplied by NDIS when the VC was originally created, whether by the call manager or client, with NdisCoCreateVc.

  • Buffer [in, optional]
    Pointer to a caller-allocated resident buffer containing additional protocol-specific disconnect data, if any. Depending on the underlying medium, this pointer can be NULL. For example, this parameter is NULL on ATM networks.

  • Size [in]
    Specifies the size in bytes of the buffer, zero if Buffer is NULL.

Return value

None

Remarks

In the course of normal network operations, a stand-alone CM calls NdisCmDispatchIncomingCloseCall with the CloseStatus set to NDIS_STATUS_SUCCESS because the corresponding client on the remote node has called NdisClCloseCall.

However, a call manager also can call NdisCmDispatchIncomingCloseCall if either of the following occurs:

  • The call manager has notified a client of an incoming call offer. When the CM's ProtocolCmIncomingCallComplete function is called with the client's acceptance, it validates the input call parameters, which that client has modified. ProtocolCmIncomingCallComplete determines that the client is proposing unsupportable call parameters for the connection, so it calls NdisCmDispatchIncomingCloseCall.

  • Abormal network conditions force the call manager to tear down active calls. For example, if the call manager is notified when any link on the connection between this client and the remote party to the connection goes down, the CM would call NdisCmDispatchIncomingCloseCall to prevent the client from attempting (or expecting) further data transfers on such a broken connection.

After tearing down any call, the original creator of the VC is responsible for calling NdisCoDeleteVc after releasing any additional resources it had associated with the VC.

A call to NdisCmDispatchIncomingCloseCall causes NDIS to call the client's ProtocolClIncomingCloseCall function.

Only stand-alone call managers, which register themselves with NDIS as protocols, can call NdisCmDispatchIncomingCloseCall. Connection-oriented miniport drivers that provide call-management support call NdisMCmDispatchIncomingCall instead.

Requirements

Target platform

Universal

Version

See NdisCmDispatchIncomingCloseCall.

Header

Ndis.h (include Ndis.h)

Library

Ndis.lib

IRQL

<= DISPATCH_LEVEL

See also

NdisClCloseCall

NdisCmDispatchIncomingDropParty

NdisCoDeleteVc

NdisMCmDispatchIncomingCloseCall

ProtocolClIncomingCloseCall

ProtocolCoReceivePacket

ProtocolCoStatus

 

 

Send comments about this topic to Microsoft