共用方式為


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 的常見方式:

  1. 使用 Provider::CreateNewInstance 建立類別的空白實例。
  2. 使用 CInstance 類別的 Set 方法填入空白實例的屬性,例如 CInstance::SetByteCInstance::SetStringArray
  3. 使用 CInstance::Commit 將實例傳回用戶端。
如果您要建置僅限方法的提供者,而且沒有任何實例,或者列舉類別的實例會傳回太多實例,您可能會決定支援只擷取特定實例的查詢。

規格需求

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