Skip to content

Latest commit

 

History

History
160 lines (116 loc) · 6.41 KB

nf-ndis-ndismcmdispatchincomingclosecall.md

File metadata and controls

160 lines (116 loc) · 6.41 KB
UID title description old-location tech.root ms.date keywords ms.keywords req.header req.include-header req.target-type req.target-min-winverclnt req.target-min-winversvr req.kmdf-ver req.umdf-ver req.ddi-compliance req.unicode-ansi req.idl req.max-support req.namespace req.assembly req.type-library req.lib req.dll req.irql targetos req.typenames f1_keywords topic_type api_type api_location api_name
NF:ndis.NdisMCmDispatchIncomingCloseCall
NdisMCmDispatchIncomingCloseCall macro (ndis.h)
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.
netvista\ndismcmdispatchincomingclosecall.htm
netvista
05/02/2018
NdisMCmDispatchIncomingCloseCall macro
NdisMCmDispatchIncomingCloseCall, NdisMCmDispatchIncomingCloseCall macro [Network Drivers Starting with Windows Vista], condis_mcm_ref_b5a94c5f-7483-44dd-8167-6e64f52cada6.xml, ndis/NdisMCmDispatchIncomingCloseCall, netvista.ndismcmdispatchincomingclosecall
ndis.h
Ndis.h
Desktop
Supported for NDIS 6.0 and NDIS 5.1 drivers (see NdisMCmDispatchIncomingCloseCall (NDIS 5.1)) in Windows Vista. Supported for NDIS 5.1 drivers (see NdisMCmDispatchIncomingCloseCall (NDIS 5.1)) in Windows XP.
Irql_MCM_Function
<= DISPATCH_LEVEL
Windows
NdisMCmDispatchIncomingCloseCall
ndis/NdisMCmDispatchIncomingCloseCall
APIRef
kbSyntax
HeaderDef
ndis.h
NdisMCmDispatchIncomingCloseCall

NdisMCmDispatchIncomingCloseCall macro

-description

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.

-parameters

-param S

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.

-param H

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.

-param B

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.

-param Z

Specifies the size in bytes of the buffer, zero if Buffer is NULL.

-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.
  • Abnormal 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 protocol drivers, call NdisCmDispatchIncomingCloseCall instead.

-see-also

MiniportInterruptDPC

NdisClCloseCall

NdisMCmDeactivateVc

NdisMCmDeleteVc

NdisMCmDispatchIncomingCall

NdisMCmDispatchIncomingDropParty

ProtocolClIncomingCloseCall

ProtocolCoDeleteVc