IWbemServices::ExecQuery-Methode (wbemcli.h)

Die IWbemServices::ExecQuery-Methode führt eine Abfrage aus, um Objekte abzurufen.

Die gültigen Arten von Abfragen, die ausgeführt werden können, finden Sie unter Abfragen mit WQL.

Syntax

HRESULT ExecQuery(
  [in]  const BSTR           strQueryLanguage,
  [in]  const BSTR           strQuery,
  [in]  long                 lFlags,
  [in]  IWbemContext         *pCtx,
  [out] IEnumWbemClassObject **ppEnum
);

Parameter

[in] strQueryLanguage

Gültiger BSTR , der eine der von der Windows-Verwaltung unterstützten Abfragesprachen enthält. Dies muss "WQL" sein, das Akronym für WMI Query Language.

[in] strQuery

Gültiger BSTR , der den Text der Abfrage enthält. Dieser Parameter darf nicht NULL sein. Weitere Informationen zum Erstellen von WMI-Abfragezeichenfolgen finden Sie unter Abfragen mit WQL sowie in der Referenz zu WQL.

[in] lFlags

Die folgenden Flags wirken sich auf das Verhalten dieser Methode aus. Der vorgeschlagene Wert für diesen Parameter ist WBEM_FLAG_RETURN_IMMEDIATELY und WBEM_FLAG_FORWARD_ONLY für eine optimale Leistung.

WBEM_FLAG_USE_AMENDED_QUALIFIERS

Wenn dieses Flag festgelegt ist, ruft WMI die geänderten Qualifizierer ab, die im lokalisierten Namespace des Gebietsschemas der aktuellen Verbindung gespeichert sind. Wenn nicht festgelegt, werden nur die Qualifizierer abgerufen, die im unmittelbaren Namespace gespeichert sind.

WBEM_FLAG_FORWARD_ONLY

Dieses Flag bewirkt, dass ein forward-only-Enumerator zurückgegeben wird. Forward-Only-Enumeratoren sind in der Regel viel schneller und verbrauchen weniger Arbeitsspeicher als herkömmliche Enumeratoren, lassen jedoch keine Aufrufe zum Klonen oder Zurücksetzen zu.

WBEM_FLAG_BIDIRECTIONAL

Dieses Flag bewirkt, dass die Windows-Verwaltung Zeiger auf Objekte der Enumeration behält, bis der Client den Enumerator freigibt.

WBEM_FLAG_RETURN_IMMEDIATELY

Dieses Flag bewirkt, dass es sich um einen semisynchronen Aufruf handelt. Weitere Informationen finden Sie unter Aufrufen einer Methode.

WBEM_FLAG_ENSURE_LOCATABLE

Dieses Flag stellt sicher, dass alle zurückgegebenen Objekte genügend Informationen enthalten, sodass die Systemeigenschaften wie __PATH, __RELPATH und __SERVER nicht NULL sind.

WBEM_FLAG_PROTOTYPE

Dieses Flag wird für das Erstellen von Prototypen verwendet. Es führt die Abfrage nicht aus und gibt stattdessen ein Objekt zurück, das wie ein typisches Ergebnisobjekt aussieht.

WBEM_FLAG_DIRECT_READ

Dieses Flag bewirkt den direkten Zugriff auf den Anbieter für die angegebene Klasse ohne Berücksichtigung der übergeordneten Klasse oder Unterklassen.

[in] pCtx

Normalerweise NULL. Andernfalls ist dies ein Zeiger auf ein IWbemContext-Objekt , das von dem Anbieter verwendet werden kann, der die angeforderten Klassen oder Instanzen bereitstellt. Die Werte im Kontextobjekt müssen in der Dokumentation für den betreffenden Anbieter angegeben werden. Weitere Informationen zu diesem Parameter finden Sie unter Tätigen von Aufrufen von WMI.

[out] ppEnum

Wenn kein Fehler auftritt, empfängt dieser den Enumerator, mit dem der Aufrufer die Instanzen im Resultset der Abfrage abrufen kann. Es ist kein Fehler, dass die Abfrage ein Resultset mit 0 Instanzen hat. Dies wird nur durch den Versuch bestimmt, die Instanzen zu durchlaufen. Dieses Objekt gibt mit einer positiven Verweisanzahl zurück. Der Aufrufer muss Release aufrufen, wenn das Objekt nicht mehr benötigt wird.

Rückgabewert

Diese Methode gibt ein HRESULT zurück, das den Status des Methodenaufrufs angibt. Die folgende Liste listet den Wert auf, der in einem HRESULT enthalten ist.

Bei Einem Fehler können Sie alle verfügbaren Informationen von der COM-Funktion GetErrorInfo abrufen.

COM-spezifische Fehlercodes können auch zurückgegeben werden, wenn Netzwerkprobleme dazu führen, dass die Remoteverbindung mit der Windows-Verwaltung verloren geht.

Hinweise

Die IWbemServices::ExecQuery-Methode verarbeitet die im strQuery-Parameter angegebene Abfrage und erstellt einen Enumerator, über den der Aufrufer auf die Abfrageergebnisse zugreifen kann. Der Enumerator ist ein Zeiger auf eine IEnumWbemClassObject-Schnittstelle. Die Abfrageergebnisse sind Instanzen von Klassenobjekten, die über die IWbemClassObject-Schnittstelle zur Verfügung gestellt werden.

Es gibt Einschränkungen für die Anzahl der Schlüsselwörter "AND" und "OR", die in WQL-Abfragen verwendet werden können. Eine große Anzahl an WQL-Schlüsselwörtern, die in einer komplexen Abfrage verwendet werden, kann dazu führen, dass WMI den Fehlercode WBEM_E_QUOTA_VIOLATION als HRESULT-Wert zurückgibt. Der Grenzwert für WQL-Schlüsselwörter hängt davon ab, wie komplex die Abfrage ist.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows Vista
Unterstützte Mindestversion (Server) Windows Server 2008
Zielplattform Windows
Kopfzeile wbemcli.h (include Wbemidl.h)
Bibliothek Wbemuuid.lib
DLL Fastprox.dll; Esscli.dll; FrameDyn.dll; FrameDynOS.dll; Ntevt.dll; Stdprov.dll; Viewprov.dll; Wbemcomn.dll; Wbemcore.dll; Wbemess.dll; Wbemsvc.dll; Wmipicmp.dll; Wmidcprv.dll; Wmipjobj.dll; Wmiprvsd.dll

Weitere Informationen

IWbemServices

IWbemServices::ExecQueryAsync

Abfragen mit WQL