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_MEMORY、 WBEM_E_NOT_FOUND等等。
- 方法的傳回值 (例如 uint32) 從 方法傳回結果。
備註
當用戶端對您的類別呼叫 IWbemServices::ExecMethod 時,WMI 會呼叫 ExecMethod。 因此,如果您的提供者支援一或多個方法,則必須實作 ExecMethod 。 下列清單描述 ExecMethod 的常見實作:
- 藉由檢查 bstrMethodName 參數來判斷用戶端呼叫的方法。
-
使用 CInstance 類別的 Get 方法,例如 CInstance::GetCHString,從 pInParams 參數擷取輸入參數。
方法可能會有輸入參數、輸出參數、輸入和輸出參數,或沒有輸入或輸出參數。
-
使用 CInstance 類別的 Set 方法,在 pOutParams 參數中設定輸出參數,例如 CInstance::SetByte 或 CInstance::SetStringArray。
除了宣告傳回宣告中指定的 [out] 屬性之外,您也必須宣告 方法的傳回值,如 ReturnValue 屬性中所定義。 如果傳回值為 void,則不需要宣告傳回值。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista |
最低支援的伺服器 | Windows Server 2008 |
目標平台 | Windows |
標頭 | provider.h (include FwCommon.h) |
程式庫 | FrameDyn.lib |
Dll | FrameDynOS.dll;FrameDyn.dll |