Share via


Provider::ExecMethod (ParsedObjectPath*,BSTR,long,CInstance*,CInstance*,MethodContext*) method (provider.h)

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

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

語法

HRESULT ExecMethod(
  ParsedObjectPath *pParsedObjectPath,
  BSTR             bstrMethodName,
  long             lFlags,
  CInstance        *pInParams,
  CInstance        *pOutParams,
  MethodContext    *pContext
);

參數

pParsedObjectPath

TBD

bstrMethodName

叫用的方法名稱。

lFlags

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

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

  • WBEM_FLAG_RETURN_IMMEDIATELY

pInParams

方法輸入參數的指標。

pOutParams

方法輸出參數的指標。

pContext

TBD

傳回值

此方法的默認架構提供者實作會將 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 方法,從 pInParams 參數擷取輸入參數,例如 CInstance::GetCHString

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

  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