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 |