PROTOCOL_CM_ADD_PARTY回呼函式 (ndis.h)

ProtocolCmAddParty 函式是必要函式。 ProtocolCmAddParty 會設定媒體特定參數,將合作物件新增至現有的多點呼叫、儲存新合作對象的狀態數據,並讓該物件新增至呼叫。

注意 您必須使用 PROTOCOL_CM_ADD_PARTY 類型來宣告函式。 如需詳細資訊,請參閱下列範例一節。
 

語法

PROTOCOL_CM_ADD_PARTY ProtocolCmAddParty;

NDIS_STATUS ProtocolCmAddParty(
  [in]      NDIS_HANDLE CallMgrVcContext,
  [in, out] PCO_CALL_PARAMETERS CallParameters,
  [in]      NDIS_HANDLE NdisPartyHandle,
  [out]     PNDIS_HANDLE CallMgrPartyContext
)
{...}

參數

[in] CallMgrVcContext

指定呼叫管理員配置的內容區域的句柄,呼叫管理員會在其中維護其每個 VC 狀態。 呼叫管理員已從其 ProtocolCoCreateVc 函式將此句柄提供給 NDIS。

[in, out] CallParameters

包含連接導向用戶端所指定之參數 之CO_CALL_PARAMETERS 結構的指標,該物件會新增至現有呼叫。

[in] NdisPartyHandle

指定 NDIS 所提供的句柄,可唯一識別要新增至現有虛擬連線的多點合作物件。 此句柄對呼叫管理員而言不透明,並保留給 NDIS 連結庫使用。

[out] CallMgrPartyContext

指定在傳回時,呼叫管理員所提供內容區域的句柄,呼叫管理員會針對多點呼叫維護此合作對象的狀態。

傳回值

ProtocolCmAddParty 會傳回其作業的狀態, (s) 如下:

傳回碼 Description
NDIS_STATUS_SUCCESS
表示呼叫管理員已成功配置必要的資源,以維護與合作對象有關的狀態,並成功將合作物件新增至通話。
NDIS_STATUS_PENDING
表示呼叫管理員會完成以異步方式新增合作物件的要求。 當呼叫管理員完成新增合作物件的所有作業時,它必須呼叫 NdisCmAddPartyComplete ,以向 NDIS 發出此作業已完成的訊號。
NDIS_STATUS_RESOURCES
表示呼叫管理員無法配置和/或初始化其資源,以便將合作物件新增至連接。
NDIS_STATUS_NOT_SUPPORTED
表示呼叫管理員無法將合作物件新增至多點呼叫,因為呼叫端在 CallParameters 的呼叫參數中要求無效或無法使用的功能,否則此呼叫管理員所支援的媒體類型不支援多點呼叫。

備註

ProtocolCmAddParty 會 執行呼叫管理員需要維護 NdisPartyHandle 所指定之合作對象狀態資訊的任何必要配置,以新增至多點呼叫。 這類資源可能包含但不限於記憶體緩衝區、數據結構、事件和其他類似的資源。 呼叫管理員也應該在此函式中初始化相關的每一方結構。

在呼叫管理員配置的個別合作對象狀態區域中,呼叫管理員 必須 儲存 NdisPartyHandle 指定的句柄,以供日後呼叫參考。 在呼叫管理員配置並完成其個別狀態區域的初始化之後,狀態緩衝區的位址應該設定為 CallMgrPartyContext 句柄,再將控制權傳回 NDIS。 若要這樣做,請取值句柄,並將狀態緩衝區的指標儲存為句柄的值。 例如:

*CallMgrPartyContext = SomeBuffer;

通話管理員會視需要執行與其網路硬體或其他媒體特定動作專案的任何必要通訊,以將 CallParameters 的呼叫參數所指定的合作物件新增至現有的多點呼叫。

例子

若要定義 ProtocolCmAddParty 函式,您必須先提供函式宣告來識別您要定義的函式類型。 Windows 提供一組驅動程式的函式類型。 使用函式類型宣告函式有助於 驅動程式的程式代碼分析靜態驅動程式驗證程式 (SDV) ,以及其他驗證工具尋找錯誤,而且是撰寫 Windows 作業系統驅動程式的需求。

例如,若要定義名為 「 MyCmAddParty」 的 ProtocolCmAddParty 函式,請使用 PROTOCOL_CM_ADD_PARTY 類型,如下列程式代碼範例所示:

MINIPORT_ADD_DEVICE MyCmAddParty;

然後,實作您的函式,如下所示:

_Use_decl_annotations_
NDIS_STATUS
 MyCmAddParty(
    NDIS_HANDLE  CallMgrVcContext,
    PCO_CALL_PARAMETERS  CallParameters,
    NDIS_HANDLE  NdisPartyHandle,
    PNDIS_HANDLE  CallMgrPartyContext
    )
  {...}

PROTOCOL_CM_ADD_PARTY函式類型定義於 Ndis.h 頭檔中。 若要在執行程式代碼分析工具時更精確地識別錯誤,請務必將 Use_decl_annotations 批註新增至函式定義。 Use_decl_annotations註釋可確保使用頭檔中套用至PROTOCOL_CM_ADD_PARTY函式類型的註釋。 如需函數宣告需求的詳細資訊,請參閱 使用 NDIS 驅動程式的函式角色類型來宣告函式。

如需 Use_decl_annotations的詳細資訊,請參閱 標註函式行為

規格需求

需求
最低支援的用戶端 (支援 NDIS 6.0 和 NDIS 5.1 驅動程式,請參閱 Windows Vista 中的 ProtocolCmAddParty (NDIS 5.1) ) 。 支援 NDIS 5.1 驅動程式 (請參閱 Windows XP 中的 ProtocolCmAddParty (NDIS 5.1) ) 。
目標平台 Windows
標頭 ndis.h (包含 Ndis.h)
IRQL <= DISPATCH_LEVEL

另請參閱

NdisClAddParty

ProtocolClAddPartyComplete