NdisMCmDispatchIncomingCloseCall 宏 (ndis.h)

NdisMCmDispatchIncomingCloseCall 指示客户端断开活动或提供的呼叫,通常是因为 MCM 驱动程序已收到来自网络的请求,要求关闭连接。

语法

void NdisMCmDispatchIncomingCloseCall(
   _S_,
   _H_,
   _B_,
   _Z_
);

参数

_S_

指定调用方确定NDIS_STATUS_XXX,指示断开连接请求的原因。 在正常网络操作期间,MCM 驱动程序会传递NDIS_STATUS_SUCCESS,以指示它已收到由远程方发起的关闭活动呼叫的请求。

_H_

指定断开连接的调用的 VC 的句柄。 此句柄在最初创建 VC 时由 NDIS 提供,无论是由具有 NdisMCmCreateVc 的 MCM 驱动程序还是作为其 ProtocolCoCreateVc 函数的输入参数。

_B_

指向调用方分配的驻留缓冲区的指针,该缓冲区包含特定于协议的其他断开连接数据(如果有)。 根据基础介质,此指针可以为 NULL

_Z_

指定缓冲区的大小(以字节为单位),如果 Buffer 为 NULL,则

返回值

备注

在正常网络操作过程中,MCM 驱动程序调用 NdisMCmDispatchIncomingCloseCall ,并将 CloseStatus 设置为 NDIS_STATUS_SUCCESS,因为远程节点上的相应客户端已调用 NdisClCloseCall

但是,如果发生以下任一情况,MCM 驱动程序也可以调用 NdisMCmDispatchIncomingCloseCall

  • MCM 驱动程序已将传入呼叫套餐通知给客户端。 微型端口驱动程序的 ProtocolCmIncomingCallComplete 函数是在客户端接受的情况下调用的,它会验证该客户端已修改的输入调用参数。 ProtocolCmIncomingCallComplete 确定客户端正在为连接提供不受支持的调用参数,因此它调用 NdisMCmDispatchIncomingCloseCall
  • 异常网络状况强制 MCM 驱动程序关闭活动调用。 例如,如果当此客户端与远程连接方之间的连接的任何链接断开时通知 MCM 驱动程序,微型端口驱动程序将调用 NdisCmDispatchIncomingCloseCall ,以防止客户端尝试 (或预期) 此类断开连接上的进一步数据传输。
在客户端调用 NdisClCloseCall 导致 VC 停用之后,VC 的原始创建者负责销毁 VC。 客户端调用 NdisCoDeleteVc,这会导致 NDIS 调用 MCM 驱动程序的 ProtocolCoDeleteVc 函数,或者 MCM 驱动程序在调用 NdisMCmDeactivateVc 并释放与它创建的 VC 关联的任何其他资源后调用 NdisMCmDeleteVc

调用 NdisMCmDispatchIncomingCloseCall 会导致 NDIS 调用客户端的 ProtocolClIncomingCloseCall 函数。

只有提供呼叫管理支持的面向连接的微型端口驱动程序才能调用 NdisMCmDispatchIncomingCall。 独立调用管理器(将自己注册到 NDIS 作为协议驱动程序)改为调用 NdisCmDispatchIncomingCloseCall

要求

要求
最低受支持的客户端 NDIS 6.0 和 NDIS 5.1 驱动程序支持 (请参阅 Windows Vista 中的 NdisMCmDispatchIncomingCloseCall (NDIS 5.1) ) 。 NDIS 5.1 驱动程序支持 (请参阅 Windows XP 中的 NdisMCmDispatchIncomingCloseCall (NDIS 5.1) ) 。
目标平台 桌面
标头 ndis.h (包括 Ndis.h)
IRQL <= DISPATCH_LEVEL
DDI 符合性规则 Irql_MCM_Function (ndis)

另请参阅

MiniportInterruptDPC

NdisClCloseCall

NdisMCmDeactivateVc

NdisMCmDeleteVc

NdisMCmDispatchIncomingCall

NdisMCmDispatchIncomingDropParty

ProtocolClIncomingCloseCall

ProtocolCoDeleteVc