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

指定 Buffer 处的大小(以字节为单位),如果 Buffer 为 NULL,则

返回值

NdisClDropParty 返回除NDIS_STATUS_PENDING以外的任何内容时,客户端应对其进行内部调用 ProtocolClDropPartyComplete 函数。 否则,完成此操作时,NDIS 会调用客户端的 ProtocolClDropPartyComplete 函数。

注解

客户端通常在以下任一情况下调用 NdisClDropParty

  • ProtocolClIncomingDropParty 函数,用于从多点连接中删除给定的一方。

    当远程节点上的一方关闭其与 NdisClCloseCall 的连接时,将发生这种情况。 当 NDIS 调用本地客户端的 ProtocolClDropPartyComplete 函数时,它可以释放或重用 ProtocolPartyContext 中的上下文区域,客户端在其中维护此方的状态。

  • 在客户端最初使用 NdisClMakeCall 设置的多点连接上与最后一方调用 NdisClClCloseCall 之前。

    对于此类客户端发起的关闭其自己的多点调用,客户端必须调用 NdisClDropParty 一次或多次,以删除多点 VC 上的所有其他剩余方。

客户端对 NdisClDropParty 的调用会导致 NDIS 调用调用调用管理器的 ProtocolCmDropParty 函数,该函数与多点 VC 共享相同的 NdisVcHandle 。 调用管理器负责通知其远程节点对等方连接已关闭或应关闭,具体取决于哪个客户端启动了放置方操作。

作为一般准则,客户端在关闭与 NdisClClClCloseCall 的多点连接之前,必须使用从 NdisClMakeCall 获取的特定 NdisVcHandle 调用 NdisClDropParty 的次数。 因为远程方可以启动其连接的关闭,从而导致调用本地客户端的 ProtocolClIncomingDropParty 函数,本地客户端必须跟踪其多点 VC 上的活动参与方数,以便知道它必须对 NdisClDropParty 进行多少次调用,然后才能调用 NdisClClCloseCall

但是,当客户端最初设置其多点连接时,客户端不需要传递 NdisClClCloseCallNdisClMakeCall 返回的 NdisPartyHandle 相同的 NdisClCloseCall 客户端可以按任意顺序在其多点 VC 上释放参与方,只要它在对 NdisClDropParty 的调用中释放 NdisClAddPartyNdisClMakeCall 返回的每个 NdisPartyHandle,然后是最后一方句柄对同一多点 VC 的 NdisClClClCloseCall 进行最终调用。 客户端关闭其多点调用后,可以释放最初使用 NdisCoDeleteVc 创建的 VC

NdisClDropParty 的调用方应在发出此调用后立即将输入 NdisPartyHandle 视为无效。 如果它将此句柄存储在它分配的群上下文区域中,则客户端的 ProtocolClDropPartyComplete 函数应将句柄变量重置为 NULL ,如果它重新初始化其每方上下文区域,以便在删除该参与方时重复使用。

要求

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

另请参阅

NdisClAddParty

NdisClCloseCall

NdisClMakeCall

NdisCoDeleteVc

ProtocolClDropPartyComplete

ProtocolClIncomingDropParty

ProtocolCmDropParty