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_

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

返回值

没有

言论

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

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

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

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

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

要求

要求 价值
最低支持的客户端 Windows Vista 中支持 NDIS 6.0 和 NDIS 5.1 驱动程序(请参阅 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

NdisCloseCall

NdisMCmDeactivateVc

NdisMCmDeleteVc

NdisMCmDispatchIncomingCall

NdisMCmDispatchIncomingDropParty

ProtocolClIncomingCloseCall

ProtocolCoDeleteVc