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 为 NULL)。如果 缓冲区NULL,则为零。

返回值

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

注解

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

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

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

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

    对于这样一个客户端启动的关闭自己的多点调用,客户端必须调用 NdisClDropParty 一次或多次,才能在多点 VC 上删除所有其他剩余方。

客户端对 NdisClDropParty 的调用会导致 NDIS 调用调用调用管理器的 ProtocolCmDropParty 函数,该函数将同一 NdisVcHandle 共享到多点 VC。 调用管理器负责通知其远程节点对等方连接已或应该关闭,具体取决于客户端发起了删除方操作。

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

但是,当客户端最初设置多点连接时,不需要客户端传递 NdisCloseCall 返回的相同 NdisPartyHandle 只要客户端释放 NdisClAddParty 或 NdisClMakeCall 在其调用 NdisClDropParty 时返回的每个 NdisPartyHandle,客户端就可以按任意顺序在其多点 VC 上释放参与方,然后最后一方处理同一多点 VC 的 NdisClCloseCall。 客户端关闭多点调用后,可以释放最初使用 NdisCoDeleteVc 创建的 VC

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

要求

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

请参阅

NdisClAddParty

NdisClCloseCall

NdisClMakeCall

NdisCoDeleteVc

ProtocolClDropPartyComplete

ProtocolClIncomingDropParty

ProtocolCmDropParty