NdisCmDispatchIncomingCloseCall 函数 (ndis.h)

NdisCmDispatchIncomingCloseCall 告知客户端关闭活动或提供的呼叫,通常是因为呼叫管理器已收到来自网络的请求来关闭连接。

语法

VOID NdisCmDispatchIncomingCloseCall(
  [in]           NDIS_STATUS CloseStatus,
  [in]           NDIS_HANDLE NdisVcHandle,
  [in, optional] PVOID       Buffer,
  [in]           UINT        Size
);

参数

[in] CloseStatus

指定 CM 确定NDIS_STATUS_XXX,指示断开连接请求的原因。 在正常网络作期间,呼叫管理器通过NDIS_STATUS_SUCCESS来指示它已收到由远程方发起的请求,以关闭活动呼叫。

[in] NdisVcHandle

指定正在断开连接的调用的 VC 的句柄。 最初由调用管理器或客户端创建 VC 时,NDIS 提供此句柄,NdisCoCreateVc

[in, optional] Buffer

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

[in] Size

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

返回值

没有

言论

在正常网络作过程中,独立 CM 调用 NdisCmDispatchIncomingCloseCallCloseStatus 设置为NDIS_STATUS_SUCCESS,因为远程节点上的相应客户端已调用 NdisCloseCall

但是,如果发生以下任一情况,呼叫管理器还可以调用 NdisCmDispatchIncomingCloseCall

  • 呼叫管理器已通知客户端传入呼叫套餐。 CM 的何时 ProtocolCmIncomingCallComplete 函数通过客户端的接受方式调用,它会验证客户端修改的输入调用参数。 ProtocolCmIncomingCallComplete 确定客户端正在为连接提议不受支持的调用参数,因此它会调用 NdisCmDispatchIncomingCloseCall
  • 异常网络条件强制呼叫管理器关闭活动呼叫。 例如,如果调用管理器在此客户端与连接远程方之间的任何链接出现故障时收到通知,则 CM 将调用 NdisCmDispatchIncomingCloseCall 以防止客户端尝试(或期望)在此类断开的连接上进行进一步数据传输。
拆毁任何调用后,VC 的原始创建者负责在释放与 VC 关联的任何其他资源后调用 NdisCoDeleteVc

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

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

要求

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

另请参阅

NdisCloseCall

NdisCmDispatchIncomingDropParty

NdisCoDeleteVc

NdisMCmDispatchIncomingCloseCall

ProtocolClIncomingCloseCall

ProtocolCoReceiveNetBufferLists

ProtocolCoStatusEx