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 設定多點連線,以及配置和初始化其內容區域,才能新增該合作物件。 用戶端通常會在呼叫 NdisClAddPartyParty 時,將指標傳遞至這類內容區域做為 ProtocolPartyContext,以及該內容區域內變數的指標作為 NdisPartyHandle 參數。

NdisClAddParty 的呼叫會導致 NDIS 將此要求轉送至呼叫管理員的 ProtocolCmAddParty 函式,用戶端會與其共用指定的 NdisVcHandle 。 呼叫管理員會立即傳回錯誤狀態,或者,如果嘗試滿足此要求,NDIS_STATUS_PENDING。 如果在遠端端端點或基礎迷你埠驅動程式上拒絕其嘗試,呼叫管理員會在呼叫 NdisCmAddPartyCompleteNdisMCmAddPartyComplete 時傳回最終的錯誤狀態,例如NDIS_STATUS_FAILURE。 用戶端的 ProtocolClAddPartyComplete 函式應該先檢查輸入 Status 自變數是否有NDIS_STATUS_SUCCESS,然後再繼續進行。

基礎網路媒體會決定用戶端是否可以在多點 VC 上指定每一方流量參數。

如果基礎網路媒體不支援多點 VM 上的每一方流量參數,每當客戶端嘗試在 CallParameters 新增具有規格且不符合該 VC 已建立流量參數的 CallParameters 時,呼叫管理員都可以執行下列其中一項動作:

  • 拒絕新增合作物件的要求。
  • 成功在該 VC 上新增合作物件時,將流量參數重設為已為多點 VC 建立的流量參數。
  • 成功新增新合作物件時,請變更已在 VC 上之每一方的流量參數。
如果載入方作業成功, NDIS 已將 NdisPartyHandle 上的變數設定為 NDIS、用戶端和呼叫管理員之間共用的有效句柄。 客戶端必須將這個 NDIS 提供的句柄視為不透明變數,以在後續針對新增的合作物件呼叫 NdisCl/CoXxx 函式時傳遞、未修改和未解譯。

接著,NDIS 會將用戶端提供的 ProtocolPartyContext 句柄傳遞至與這個新增合作對象相關的用戶端 ProtocolClXxx 函式,包括對的呼叫 ProtocolClAddPartyComplete

多點呼叫是否允許使用每一方流量參數的雙向和/或每方傳輸,取決於用戶端所系結的基礎迷你埠驅動程序媒體。 NdisPartyHandle 只代表成功呼叫 NdisClAddParty 而不是多點 VC 所新增的特定合作物件。 因此,用戶端只能將其 ProtocolPartyContext 區域用於後續合作物件特定的呼叫管理要求。 對於不支援每一方傳輸或流量參數的網路媒體進行數據傳輸,客戶端必須改用 NdisVcHandle

規格需求

需求
最低支援的用戶端 支援 NDIS 6.0 和 NDIS 5.1 驅動程式 (請參閱 Windows Vista 中的 NdisClAddParty (NDIS 5.1) ) 。 (支援 NDIS 5.1 驅動程式,請參閱 Windows XP 中的 NdisClAddParty (NDIS 5.1) ) 。
目標平台 桌面
標頭 ndis.h (包含 Ndis.h)
程式庫 Ndis.lib
IRQL <= DISPATCH_LEVEL
DDI 合規性規則 Irql_Protocol_Driver_Function ()

另請參閱

CO_CALL_PARAMETERS

NdisAllocateFromNPagedLo,sideList

NdisCloseCall

NdisClDropParty

NdisClMakeCall

NdisCmAddPartyComplete

NdisCoCreateVc

NdisCoOidRequest

NdisCoOidRequestComplete

NdisMCmAddPartyComplete

ProtocolClAddPartyComplete

ProtocolCmAddParty