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_MEMORY、 WBEM_E_NOT_FOUND等等。
- 方法的傳回值 (例如 uint32) 會從 方法傳回結果。
備註
當用戶端針對您的類別呼叫 IWbemServices::ExecMethod 時,WMI 會呼叫 ExecMethod。 因此,如果您的提供者支援一或多個方法,您必須實作 ExecMethod 。 下列清單描述 ExecMethod 的常見實作:
- 檢查 bstrMethodName 參數,判斷用戶端呼叫的方法。
-
使用 CInstance 類別的 Get 方法,從 pInParams 參數擷取輸入參數,例如 CInstance::GetCHString。
方法可能有輸入參數、輸出參數、輸入和輸出參數,或沒有輸入或輸出參數。
-
使用 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 |