共用方式為


PROTOCOL_CL_ADD_PARTY_COMPLETE回呼函式 (ndis.h)

設定多點連線的 NDIS 用戶端需要 ProtocolClAddPartyComplete 函式。 這類客戶端必須具有 ProtocolClAddPartyComplete 函式,才能完成它們以 NdisClAddParty起始的異步作。 否則,這類通訊協定驅動程式的已註冊 ProtocolClAddPartyComplete 函式可以直接傳回控制權。

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

語法

PROTOCOL_CL_ADD_PARTY_COMPLETE ProtocolClAddPartyComplete;

void ProtocolClAddPartyComplete(
  [in] NDIS_STATUS Status,
  [in] NDIS_HANDLE ProtocolPartyContext,
  [in] NDIS_HANDLE NdisPartyHandle,
  [in] PCO_CALL_PARAMETERS CallParameters
)
{...}

參數

[in] Status

指定用戶端起始的載入巨集作業的最終狀態,這可以是下列其中一項:

NDIS_STATUS_SUCCESS

指定的合作物件已新增至用戶端的作用中多點 VC。

NDIS_STATUS_RESOURCES

NDIS 無法配置足夠的資源來追蹤新合作物件。

NDIS_STATUS_FAILURE

用戶端將無效的 NdisVcHandle 傳遞至 NdisClAddParty

NDIS_STATUS_XXX

呼叫管理員的 ProtocolCmAddParty 函式傳回 CM 決定的值,指出為何無法將合作物件新增至 VC。

[in] ProtocolPartyContext

指定原本傳遞至 NdisClAddParty的用戶端提供句柄。

[in] NdisPartyHandle

如果 狀態 是NDIS_STATUS_SUCCESS,這個 NDIS 提供的句柄代表呼叫管理員與客戶端之間關於此合作對象的關聯。 否則,嘗試新增合作對象失敗,且客戶端應該將此參數視為無效的句柄。

[in] CallParameters

CO_CALL_PARAMETERS型別結構的指標,原本由客戶端設定,以便呼叫 NdisClAddParty,但後續可能會由呼叫管理員修改。

傳回值

沒有

言論

呼叫 ProtocolClAddPartyComplete 表示用戶端呼叫 NdisClAddParty時起始的異步作完成。 如果輸入 狀態 設定為 NDIS_STATUS_SUCCESS 以外的任何專案,ProtocolClAddPartyComplete 可以在 ProtocolPartyContextCallParameters 釋放或重複使用用戶端配置的緩衝區。

如果嘗試新增合作物件成功,ProtocolClAddPartyComplete 應儲存輸入 NdisPartyHandle,以便後續在用戶端 ProtocolPartyContext 區域中呼叫此合作對象的相關 NDIS 連結庫函式。 例如,客戶端必須在後續呼叫中傳遞此句柄,NdisClDropParty 最終,除非它表示的遠端合作物件先關閉其連線。

CallParameters 結構原本是由用戶端配置和初始化,用戶端會將此指標傳遞至
NdisClAddParty。 不過,呼叫管理員可能已修改用戶端提供的值,以反映 CM 與網路交涉的結果,或在處理用戶端的新增合作物件要求時使用訊號對等互連的結果。 若要判斷呼叫管理員是否進行任何修改,ProtocolClAddPartyComplete 可以檢查此結構的 旗標 成員,以確認是否已設定CALL_PARAMETERS_CHANGED。 如果是,ProtocolClAddPartyComplete 必須更新用戶端在 ProtocolPartyContext 維護此呼叫的每個合作對象狀態,除非它發現 CM 的修改無法接受。 特定訊號通訊協議會決定用戶端在此案例中可以執行的動作。 用戶端通常會呼叫 NdisClDropParty,如果它發現 CM 修改的呼叫參數無法接受。

根據呼叫管理員的訊號通訊協定,CallParameters 的流量參數對於任何特定多點連線的各方而言都相同。 也就是說,當這類呼叫管理員的用戶端在多點連線上新增合作物件,用戶端原本設定 NdisClMakeCall,它只能提供每個合作對象的目標位址,並將流量參數保留為每次呼叫 NdisClAddParty時設定的多點 VC。

範例

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

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

PROTOCOL_CL_ADD_PARTY_COMPLETE MyClAddPartyComplete;

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

_Use_decl_annotations_
VOID
 MyClAddPartyComplete(
    NDIS_STATUS  Status,
    NDIS_HANDLE  ProtocolPartyContext,
    NDIS_HANDLE  NdisPartyHandle,
    PCO_CALL_PARAMETERS  CallParameters
    )
  {...}

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

如需 Use_decl_annotations的相關信息,請參閱 批注函式行為

要求

要求 價值
最低支援的用戶端 Windows Vista 中支援 NDIS 6.0 和 NDIS 5.1 驅動程式(請參閱 ProtocolClAddPartyComplete (NDIS 5.1)。 支援 NDIS 5.1 驅動程式(請參閱 Windows XP 中的 ProtocolClAddPartyComplete (NDIS 5.1) 。
目標平臺 窗戶
標頭 ndis.h (包括 Ndis.h)
IRQL <= DISPATCH_LEVEL

另請參閱

CO_CALL_PARAMETERS

NdisClAddParty

NdisClDropParty

NdisClMakeCall

NdisCmAddPartyComplete

NdisMCmAddPartyComplete

ProtocolClIncomingDropParty

ProtocolCmAddParty