Provider::EnumerateInstances 方法 (provider.h)
[提供者類別是 WMI 提供者 架構的一部分,現在被視為最終狀態,而且不會針對影響這些連結庫的非安全性相關問題使用進一步的開發、增強功能或更新。 MI API 應該用於所有新的開發。]
WMI 會呼叫 EnumerateInstances 方法,以擷取架構提供者類別的所有實例。
語法
HRESULT EnumerateInstances(
MethodContext *pMethodContext,
long lFlags
);
參數
pMethodContext
這個呼叫之內容物件的指標。 這個值包含用戶端所指定的任何 IWbemContext 屬性。 此外,此指標必須當做回WMI的任何呼叫的參數使用。
lFlags
旗標的位掩碼,其中包含 EnumerateInstances 作業的相關信息。 這是 IWbemServices::CreateInstanceEnum 方法中用戶端所指定的值。
下列旗標是由 WMI 處理 (並篩選掉) :
- WBEM_FLAG_DEEP
- WBEM_FLAG_SHALLOW
- WBEM_FLAG_RETURN_IMMEDIATELY
- WBEM_FLAG_FORWARD_ONLY
- WBEM_FLAG_BIDIRECTIONAL
- WBEM_FLAG_USE_AMENDED_QUALIFIERS
傳回值
此方法的默認架構提供者實作會將 WBEM_E_PROVIDER_NOT_CAPABLE 傳回給呼叫方法。 IWbemServices::CreateInstanceEnum 方法會列出最常見的傳回值,但您可以選擇傳回任何 COM 傳回碼。
備註
EnumerateInstances 藉由具現化零 CInstance 實例,並將傳回值設定為 WBEM_S_NO_ERROR,不是傳回零實例的錯誤。
WMI 通常會在用戶端應用程式呼叫 IWbemServices::CreateInstanceEnum 時呼叫 EnumerateInstances,不過 WMI 也可能在其他情況下呼叫 EnumerateInstances。 以下是覆寫 EnumerateInstances 的常見方式:
- 使用 Provider::CreateNewInstance 建立類別的空白實例。
- 使用 CInstance 類別的 Set 方法填入空白實例的屬性,例如 CInstance::SetByte 或 CInstance::SetStringArray。
- 使用 CInstance::Commit 將實例傳回用戶端。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista |
最低支援的伺服器 | Windows Server 2008 |
目標平台 | Windows |
標頭 | provider.h (include FwCommon.h) |
程式庫 | FrameDyn.lib |
Dll | FrameDynOS.dll;FrameDyn.dll |