NdisClDropParty 函数 (ndis.h)
NdisClDropParty 从客户端的多点 VC 中删除一方。
语法
NDIS_STATUS NdisClDropParty(
[in] NDIS_HANDLE NdisPartyHandle,
[in, optional] PVOID Buffer,
[in, optional] UINT Size
);
参数
[in] NdisPartyHandle
指定要在多点连接上删除的参与方的句柄。 客户端从上述调用中获取此句柄,NdisClAddParty 或 NdisClMakeCall。
[in, optional] Buffer
指向调用方分配的缓冲区的指针,其中包含要传输的任何数据,以关闭远程节点上参与方的多点连接。 根据基础介质,此指针可以 NULL。
[in, optional] Size
指定 缓冲区的大小(如果 缓冲区NULL,则为零。
返回值
NdisClDropParty 返回除NDIS_STATUS_PENDING以外的任何内容时,客户端应对其进行内部调用 ProtocolClDropPartyComplete 函数。 否则,NDIS 会在此作完成后调用客户端的 ProtocolClDropPartyComplete 函数。
言论
客户端通常在以下任一情况下调用 NdisClDropParty:
-
从
ProtocolClIncomingDropParty 函数,以从多点连接中删除给定方。
当远程节点上的一方关闭其与 NdisCloseCall的连接时,将发生这种情况。 当 NDIS 调用本地客户端的 ProtocolClDropPartyComplete 函数时,它可以在 ProtocolPartyContext 释放或重复使用上下文区域,客户端在该位置维护此方的状态。
-
在客户端调用 NdisCloseCall 之前,客户端最初使用 NdisClMakeCall设置的多点连接上的最后一方。
对于这样一个客户端发起的关闭其自己的多点调用,客户端必须调用 NdisClDropParty 一次或多次,才能在多点 VC 上删除所有其他剩余方。
作为一般准则,客户端必须调用 NdisClDropParty 其调用 NdisClAddParty,其特定 NdisVcHandle 从 NdisClMakeCall 获取,然后才能关闭与 NdisCloseCall的多点连接。 由于远程方可以启动关闭其连接,从而导致对本地客户端的调用 ProtocolClIncomingDropParty 函数,本地客户端必须跟踪其多点 VM 上的活动方数,才能知道它必须进行多少次调用才能调用 NdisClDropParty,然后才能调用 NdisCloseCall。
但是,客户端不需要传递 NdisCloseCallNdisPartyHandleNdisClMakeCall 最初设置其多点连接时返回的 NdisPartyHandle。 只要客户端发布由 NdisClAddParty 或 NdisCl 返回的每个 NdisPartyHandle,客户端就可以按任意顺序在其多点 VC 上发布参与方 MakeCall 在其调用 NdisClDropParty时,然后是最后一方句柄进行最终调用,以便为同一多点 VC NdisCloseCall。 客户端关闭多点调用后,可以释放最初使用 NdisCoDeleteVc 创建的 VC。
NdisClDropParty 的调用方在进行此调用后,应考虑输入 NdisPartyHandle 无效。 如果它将此句柄存储在它分配的参与方上下文区域中,则客户端的 ProtocolClDropPartyComplete 函数应将句柄变量重置为 NULL(如果删除方后重新初始化其每方上下文区域以供重用)。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows Vista 中支持 NDIS 6.0 和 NDIS 5.1 驱动程序(请参阅 NdisClDropParty(NDIS 5.1)。 在 Windows XP 中支持 NDIS 5.1 驱动程序(请参阅 NdisClDropParty (NDIS 5.1)。 |
目标平台 | 桌面 |
标头 | ndis.h (包括 Ndis.h) |
库 | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
DDI 符合性规则 | Irql_Protocol_Driver_Function(ndis) |