Freigeben über


Provider::EnumerateInstances-Methode (provider.h)

[Die Provider-Klasse ist Teil des WMI-Provider-Frameworks, das nun als endgültig betrachtet wird, und es sind keine weiteren Entwicklungen, Verbesserungen oder Updates für nicht sicherheitsrelevante Probleme verfügbar, die diese Bibliotheken betreffen. Die MI-APIs sollten für alle Neuentwicklungen verwendet werden.]

Die EnumerateInstances-Methode wird von WMI aufgerufen, um alle Instanzen der Klasse eines Frameworkanbieters abzurufen.

Syntax

HRESULT EnumerateInstances(
  MethodContext *pMethodContext,
  long          lFlags
);

Parameter

pMethodContext

Zeiger auf das Kontextobjekt für diesen Aufruf. Dieser Wert enthält alle vom Client angegebenen IWbemContext-Eigenschaften . Außerdem muss dieser Zeiger als Parameter für alle Aufrufe von WMI verwendet werden.

lFlags

Bitmaske von Flags mit Informationen zum EnumerateInstances-Vorgang . Dies ist der vom Client in der IWbemServices::CreateInstanceEnum-Methode angegebene Wert.

Die folgenden Flags werden von WMI behandelt (und herausgefiltert):

  • WBEM_FLAG_DEEP
  • WBEM_FLAG_SHALLOW
  • WBEM_FLAG_RETURN_IMMEDIATELY
  • WBEM_FLAG_FORWARD_ONLY
  • WBEM_FLAG_BIDIRECTIONAL
  • WBEM_FLAG_USE_AMENDED_QUALIFIERS

Rückgabewert

Die Standardframeworkanbieterimplementierung dieser Methode gibt WBEM_E_PROVIDER_NOT_CAPABLE an die aufrufende Methode zurück. Die IWbemServices::CreateInstanceEnum-Methode listet die gängigsten Rückgabewerte auf. Sie können jedoch jeden COM-Rückgabecode zurückgeben.

Hinweise

Es ist kein Fehler für EnumerateInstances , null Instanzen zurückzugeben, indem null CInstance-Instanzen instanziiert und der Rückgabewert auf WBEM_S_NO_ERROR festgelegt wird.

WMI ruft häufig EnumerateInstances auf, wenn eine Clientanwendung IWbemServices::CreateInstanceEnum aufruft, obwohl WMI auch in anderen Situationen EnumerateInstances aufruft . Dies ist eine gängige Methode zum Überschreiben von EnumerateInstances:

  1. Erstellen Sie mit Provider::CreateNewInstance eine leere instance Ihrer Klasse.
  2. Füllen Sie die Eigenschaften des leeren instance mit den Set-Methoden der CInstance-Klasse, z. B. CInstance::SetByte oder CInstance::SetStringArray.
  3. Senden Sie die instance mithilfe von CInstance::Commit zurück an den Client.
Wenn Sie einen reinen Methodenanbieter erstellen und über keine Instanzen verfügen oder wenn das Aufzählen von Instanzen Ihrer Klasse zu viele Instanzen zurückgibt, können Sie sich entscheiden, Abfragen zu unterstützen, die nur bestimmte Instanzen abrufen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista
Unterstützte Mindestversion (Server) Windows Server 2008
Zielplattform Windows
Kopfzeile provider.h (einschließlich FwCommon.h)
Bibliothek FrameDyn.lib
DLL FrameDynOS.dll; FrameDyn.dll