Share via


Provider::ExecMethod (constCInstance&,constBSTR,CInstance*,CInstance*,long) 方法 (provider.h)

[ Provider 類別是 WMI 提供者架構的一部分,現在被視為最終狀態,而且不會影響這些連結庫的非安全性相關問題不會有進一步的開發、增強功能或更新。 MI API 應該用於所有新的開發。]

WMI 會呼叫 ExecMethod 方法,以在類別或實例上叫用方法。

語法

HRESULT ExecMethod(
  [ref] const CInstance & cInstance,
        const BSTR        bstrMethodName,
        CInstance         *pInParams,
        CInstance         *pOutParams,
        long              lFlags
);

參數

[ref] cInstance

如果用戶端呼叫實例方法,則為有問題的實例索引鍵屬性。 如果用戶端呼叫靜態方法, Instance 就會包含類別物件。

bstrMethodName

叫用之方法的名稱。

pInParams

方法輸入參數的指標。

pOutParams

方法輸出參數的指標。

lFlags

旗標的位掩碼,其中包含 execute 方法作業的相關信息。 這是 IWbemServices::ExecMethod 方法中用戶端所指定的值。 少數用戶端會使用 lFlags 參數。 您可以在大部分的提供者實作中安全地忽略 lFlags

下列旗標是由 (處理,並由 WMI 篩選出) :

  • WBEM_FLAG_RETURN_IMMEDIATELY

傳回值

這個方法的默認架構提供者實作會將 WBEM_E_PROVIDER_NOT_CAPABLE 傳回給呼叫方法。 IWbemServices::ExecMethod 方法會列出最常見的傳回值,不過您可以選擇傳回任何 COM 傳回碼。

方法的傳回值可能是兩種類型之一:

  • HRESULT 可用來指出 WMI 類型錯誤: WBEM_E_OUT_OF_MEMORYWBEM_E_NOT_FOUND等等。
  • 方法的傳回值 (例如 uint32) 從 方法傳回結果。

備註

當用戶端對您的類別呼叫 IWbemServices::ExecMethod 時,WMI 會呼叫 ExecMethod。 因此,如果您的提供者支援一或多個方法,則必須實作 ExecMethod 。 下列清單描述 ExecMethod 的常見實作:

  1. 藉由檢查 bstrMethodName 參數來判斷用戶端呼叫的方法。
  2. 使用 CInstance 類別的 Get 方法,例如 CInstance::GetCHString,從 pInParams 參數擷取輸入參數。

    方法可能會有輸入參數、輸出參數、輸入和輸出參數,或沒有輸入或輸出參數。

  3. 使用 CInstance 類別的 Set 方法,在 pOutParams 參數中設定輸出參數,例如 CInstance::SetByteCInstance::SetStringArray

    除了宣告傳回宣告中指定的 [out] 屬性之外,您也必須宣告 方法的傳回值,如 ReturnValue 屬性中所定義。 如果傳回值為 void,則不需要宣告傳回值。

如需詳細資訊,請參閱 IWbemServices::ExecMethod

規格需求

需求
最低支援的用戶端 Windows Vista
最低支援的伺服器 Windows Server 2008
目標平台 Windows
標頭 provider.h (include FwCommon.h)
程式庫 FrameDyn.lib
Dll FrameDynOS.dll;FrameDyn.dll