NdisClAddParty 函数 (ndis.h)

NdisClAddParty 在客户端的多点 VC 上添加一个参与方。

语法

NDIS_STATUS NdisClAddParty(
  [in]      NDIS_HANDLE         NdisVcHandle,
  [in]      NDIS_HANDLE         ProtocolPartyContext,
  [in, out] PCO_CALL_PARAMETERS CallParameters,
  [out]     PNDIS_HANDLE        NdisPartyHandle
);

参数

[in] NdisVcHandle

指向 NdisCoCreateVc返回的 VC 句柄的指针。

[in] ProtocolPartyContext

指定调用方分配的驻地上下文区域的句柄,客户端在其调用成功时将维护按方状态。

[in, out] CallParameters

指向 CO_CALL_PARAMETERS 类型的结构的指针,在该结构中调用方已指定要在其多点 VC 上添加的参与方的寻址信息。

[out] NdisPartyHandle

指向 NDIS 设置的变量的指针(如果添加方作成功)。

返回值

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

言论

在调用 NdisClAddParty之前,客户端必须在其 VC 上设置多点连接,NdisClMakeCall,以及分配和初始化要添加的参与方的上下文区域。 客户端通常在调用 NdisClAddParty时,将指针传递给 ProtocolPartyContext 等上下文区域的指针,以及指向该上下文区域中变量的指针作为 NdisPartyHandle 参数。

调用 NdisClAddParty 会导致 NDIS 将此请求转发给调用管理器的 ProtocolCmAddParty 函数,客户端在其中共享给定的 NdisVcHandle。 如果调用管理器尝试满足此请求,则调用管理器会立即返回错误状态,或者更常见的是NDIS_STATUS_PENDING。 如果在远程终结点或基础微型端口驱动程序上拒绝尝试,则调用管理器在 调用 NdisCmAddPartyCompleteNdisMCmAddPartyComplete时返回最终错误状态,例如NDIS_STATUS_FAILURE。 客户端的 ProtocolClAddPartyComplete 函数应先检查输入 状态 参数NDIS_STATUS_SUCCESS,然后再继续作。

基础网络媒体确定客户端是否可以在多点 VC 上指定每方流量参数。

如果基础网络媒体不支持多点 VM 上的每方流量参数,则每当客户端尝试在 CallParameters 添加具有规范的参与方时,调用管理器都可以执行以下作之一, 与该 VC 已建立的流量参数不匹配:

  • 拒绝添加新方的请求。
  • 成功在该 VC 上添加参与方时,将流量参数重置为已为多点 VC 建立的流量参数。
  • 成功添加新方时,更改已位于 VC 上的每个参与方的流量参数。
如果添加方作成功,则 NDIS NdisPartyHandle 的变量已设置为 NDIS、客户端和调用管理器之间共享的有效句柄。 在后续调用 NdisCl/Co与新添加方相关的 Xxx 函数时,客户端必须将此 NDIS 提供的句柄视为传递、未修改和未解释的不透明变量。

反过来,NDIS 会在后续调用客户端的 ProtocolClXxx 函数(包括调用此新添加的参与方)中传递客户端提供的 ProtocolPartyContext 句柄 ProtocolClAddPartyComplete

多点呼叫是否允许使用每方流量参数在方向和/或每方传输中传输取决于客户端绑定到的基础微型端口驱动程序的介质。 NdisPartyHandle 仅表示通过成功调用 NdisClAddParty添加的特定方,而不是多点 VC。 因此,客户端只能将其 ProtocolPartyContext 区域用于后续特定于参与方的调用管理请求。 对于通过不支持每方传输或流量参数的网络媒体进行数据传输,客户端必须使用 NdisVcHandle

要求

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

另请参阅

CO_CALL_PARAMETERS

NdisAllocateFromNPagedLookasideList

NdisCloseCall

NdisClDropParty

NdisClMakeCall

NdisCmAddPartyComplete

NdisCoCreateVc

NdisCoOidRequest

NdisCoOidRequestComplete

NdisMCmAddPartyComplete

ProtocolClAddPartyComplete

ProtocolCmAddParty