Freigeben über


IWbemEventProviderQuerySink::NewQuery-Methode (wbemprov.h)

Rufen Sie die IWbemEventProviderQuerySink::NewQuery-Methode auf, wenn ein Consumer für logische Ereignisse einen relevanten Ereignisabfragefilter bei der Windows-Verwaltung registriert. Die NewQuery-Methode bestimmt, wie ein Anbieter auf eine neue Abfrage reagiert, die von einer Clientanwendung registriert wurde. Wenn WMI eine neue oder geänderte Ereignisabfrage von einem Consumer empfängt, ruft WMI NewQuery auf, um die Abfrage an den Ereignisanbieter zu wiederholen. Der Anbieter generiert dann die angeforderte Benachrichtigung.

Syntax

HRESULT NewQuery(
  [in] unsigned long dwId,
  [in] WBEM_WSTR     wszQueryLanguage,
  [in] WBEM_WSTR     wszQuery
);

Parameter

[in] dwId

Von der Windows-Verwaltung generierter Bezeichner für die Abfrage. Der Anbieter kann dies nachverfolgen, sodass der Anbieter während eines späteren Aufrufs von CancelQuery weiß, welche Abfrage abgebrochen wurde.

[in] wszQueryLanguage

Sprache des folgenden Abfragefilters. Bei dieser WMI-Version lautet sie immer "WQL".

[in] wszQuery

Text des Ereignisabfragefilters, der von einem logischen Consumer registriert wurde. Der Ereignisanbieter kann den Text des Abfragefilters über den wszQuery-Parameter und die Sprache des Abfragefilters im wszQueryLanguage-Parameter untersuchen, um zu ermitteln, welche Ereignisbenachrichtigungen der Consumer anfordert.

Rückgabewert

Diese Methode gibt ein HRESULT zurück, das den Status des Methodenaufrufs angibt. In der folgenden Liste sind von NewQuery zurückgegebene Rückgabecodes aufgeführt. Darüber hinaus kann ein Drittanbieterereignisanbieter jeden gültigen WMI- oder COM-Rückgabecode zurückgeben, der über NewQuery als Rückgabewert übergeben werden kann.

Hinweise

Wenn ein Consumer eine Ereignisfilterabfrage bei der Windows-Verwaltung registriert und die Abfrage Verweise auf Ereignisse enthält, die vom aktuellen Ereignisanbieter bereitgestellt werden, kann die Windows-Verwaltung den Ereignisanbieter über die Abfrage benachrichtigen.

Wenn der Anbieter die IWbemEventProviderQuerySink-Schnittstelle implementiert, stellt die Windows-Verwaltung dem Anbieter eine Kopie des Abfragetexts bereit. Der Anbieter sollte die Abfrage analysieren und ermitteln, ob er eine interne Optimierung durchführen kann.

Die Windows-Verwaltung erwartet nicht, dass ein Anbieter sein Verhalten in irgendeiner Weise ändert. Vielmehr handelt es sich um einen Beratungsaufruf, um den Anbieter bei der internen Optimierung zu unterstützen.

Wenn der Anbieter beispielsweise viele Hunderte von Ereignissen bereitstellen kann, aber der erforderliche Mehraufwand für die Bereitstellung aller Ereignisse groß ist, kann der Anbieter erhebliche Einsparungen erzielen, wenn er weiß, dass die meisten dieser Ereignisse von der aktuellen Gruppe von Ereignisconsumern nicht erforderlich sind. Wenn der Anbieter IWbemEventProviderQuerySink implementiert, weiß er über den aktuellen Satz von Ereignissen, die von allen Consumern angefordert werden. Es kann möglicherweise vermieden werden, die Mechanismen für die Bereitstellung der meisten von ihr unterstützten Ereignistypen einzurichten, bis Die Consumer tatsächlich damit beginnen, solche Ereignisse anzufordern.

Für jeden neuen Consumerabfragefilter wird ein separater Aufruf dieser Methode mit einer eindeutigen dwId durchgeführt. Beachten Sie, dass sich die Windows-Verwaltung das Recht vorbehält , NewQuery mehrmals für denselben dwId-Wert aufzurufen. beispielsweise, wenn es an anderer Stelle im System eine Schemaänderung gibt. Für diese Version von WMI lautet die Abfragesprache immer "WQL".

Die IWbemEventProviderQuerySink::NewQuery-Methode kann vor der IWbemEventProvider::P rovideEvents-Methode aufgerufen werden.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista
Unterstützte Mindestversion (Server) Windows Server 2008
Zielplattform Windows
Kopfzeile wbemprov.h (include Wbemidl.h)
Bibliothek Wbemuuid.lib
DLL Wbemsvc.dll

Weitere Informationen

IWbemEventProviderQuerySink

IWbemEventProviderQuerySink::CancelQuery