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 的句柄。 此句柄在最初使用 NdisCoCreateVc 创建 VC 时由 NDIS 提供,无论是由调用管理器还是客户端。

[in, optional] Buffer

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

[in] Size

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

返回值

备注

在正常网络操作过程中,独立 CM 调用 NdisCmDispatchIncomingCloseCall 并将 CloseStatus 设置为 NDIS_STATUS_SUCCESS,因为远程节点上的相应客户端已调用 NdisClClCloseCall

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

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

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

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

要求

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

另请参阅

NdisClCloseCall

NdisCmDispatchIncomingDropParty

NdisCoDeleteVc

NdisMCmDispatchIncomingCloseCall

ProtocolClIncomingCloseCall

ProtocolCoReceiveNetBufferLists

ProtocolCoStatusEx