Share via


NdisMCmDispatchIncomingCloseCall (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.

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

Syntax

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

Parameters

  • CloseStatus [in]
    Specifies a caller-determined NDIS_STATUS_XXX, indicating the reason for the disconnect request. During normal network operations, an MCM driver 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 MCM driver with NdisMCmCreateVc or as an input parameter to its ProtocolCoCreateVc function.

  • 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, an MCM driver calls NdisMCmDispatchIncomingCloseCall with the CloseStatus set to NDIS_STATUS_SUCCESS because the corresponding client on the remote node has called NdisClCloseCall.

However, an MCM driver also can call NdisMCmDispatchIncomingCloseCall if either of the following occur:

  • The MCM driver has notified a client of an incoming call offer. When the miniport driver'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 NdisMCmDispatchIncomingCloseCall.

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

After the client calls NdisClCloseCall thereby causing the deactivation of the VC, the original creator of the VC is responsible for destroying the VC. Either the client calls NdisCoDeleteVc, which causes NDIS to call the MCM driver's ProtocolCoDeleteVc function, or the MCM driver calls NdisMCmDeleteVc after calling NdisMCmDeactivateVc and releasing any additional resources it had associated with the VC that it created.

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

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

Requirements

Target platform

Desktop

Version

See NdisMCmDispatchIncomingCloseCall.

Header

Ndis.h (include Ndis.h)

IRQL

<= DISPATCH_LEVEL

See also

MiniportHandleInterrupt

NdisClCloseCall

NdisMCmDispatchIncomingDropParty

NdisMCmDeactivateVc

NdisMCmDeleteVc

NdisMCmDispatchIncomingCall

ProtocolClIncomingCloseCall

ProtocolCoDeleteVc

 

 

Send comments about this topic to Microsoft