NdisClDropParty 函数 (ndis.h)

NdisClDropParty 从客户端的多点 VC 中删除一方。

语法

NDIS_STATUS NdisClDropParty(
  [in]           NDIS_HANDLE NdisPartyHandle,
  [in, optional] PVOID       Buffer,
  [in, optional] UINT        Size
);

参数

[in] NdisPartyHandle

指定要在多点连接上删除的参与方的句柄。 客户端从上述调用中获取此句柄,NdisClAddPartyNdisClMakeCall

[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 会导致 NDIS 调用与多点 VC 共享同一 NdisVcHandle 的调用管理器的 ProtocolCmDropParty 函数。 调用管理器负责通知其远程节点对等方连接已或应关闭,具体取决于哪个客户端启动了删除方作。

作为一般准则,客户端必须调用 NdisClDropParty 其调用 NdisClAddParty,其特定 NdisVcHandleNdisClMakeCall 获取,然后才能关闭与 NdisCloseCall的多点连接。 由于远程方可以启动关闭其连接,从而导致对本地客户端的调用 ProtocolClIncomingDropParty 函数,本地客户端必须跟踪其多点 VM 上的活动方数,才能知道它必须进行多少次调用才能调用 NdisClDropParty,然后才能调用 NdisCloseCall

但是,客户端不需要传递 NdisCloseCallNdisPartyHandleNdisClMakeCall 最初设置其多点连接时返回的 NdisPartyHandle。 只要客户端发布由 NdisClAddPartyNdisCl 返回的每个 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)

另请参阅

NdisClAddParty

NdisCloseCall

NdisClMakeCall

NdisCoDeleteVc

ProtocolClDropPartyComplete

ProtocolClIncomingDropParty

ProtocolCmDropParty