Поделиться через


Метод IWbemEventProviderQuerySink::NewQuery (wbemprov.h)

Вызовите метод IWbemEventProviderQuerySink::NewQuery, когда потребитель логического события регистрирует соответствующий фильтр запросов событий с помощью управления Windows. Метод NewQuery определяет, как поставщик реагирует на новый запрос, зарегистрированный клиентским приложением. Когда WMI получает новый или измененный запрос события от потребителя, WMI вызывает NewQuery , чтобы повторить запрос поставщику событий. Затем поставщик создает запрошенные уведомления.

Синтаксис

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

Параметры

[in] dwId

Идентификатор, созданный управлением Windows для запроса. Поставщик может отслеживать это, чтобы во время последующего вызова CancelQuery поставщик знал, какой запрос был отменен.

[in] wszQueryLanguage

Язык следующего фильтра запросов. Для этой версии WMI всегда будет "WQL".

[in] wszQuery

Текст фильтра запроса событий, зарегистрированный логическим потребителем. Поставщик событий может изучить текст фильтра запроса с помощью параметра wszQuery и языка фильтра запросов в параметре wszQueryLanguage , чтобы определить, какие уведомления о событиях запрашивает потребитель.

Возвращаемое значение

Этот метод возвращает HRESULT , указывающий состояние вызова метода. В следующем списке перечислены коды возврата, возвращаемые Командой NewQuery. Кроме того, сторонний поставщик событий может возвращать любой допустимый код WMI или COM, который может быть передан через NewQuery в качестве возвращаемого значения.

Комментарии

Если потребитель регистрирует запрос фильтра событий с помощью управления Windows, а запрос содержит ссылки на события, предоставляемые текущим поставщиком событий, управление Windows может уведомить поставщика событий о запросе.

Если поставщик реализует интерфейс IWbemEventProviderQuerySink , управление Windows предоставит поставщику копию текста запроса. Поставщик должен проанализировать запрос и определить, может ли он выполнить внутреннюю оптимизацию.

Управление Windows не ожидает, что поставщик каким-либо образом изменит свое поведение. Скорее, это консультативный звонок, чтобы помочь поставщику с внутренней оптимизацией.

Например, если поставщик способен предоставлять сотни событий, но необходимые издержки для их предоставления велики, поставщик может добиться существенной экономии, если он знает, что большинство этих событий не требуется текущему набору потребителей событий. Если поставщик реализует IWbemEventProviderQuerySink, он будет знать о текущем наборе событий, запрашиваемых всеми потребителями. Он может избежать настройки механизмов доставки большинства поддерживаемых типов событий, пока потребители не начнут запрашивать такие события.

Для каждого нового фильтра запросов потребителей будет выполнен отдельный вызов этого метода с уникальным dwId. Имейте в виду, что управление Windows оставляет за собой право несколько раз вызывать NewQuery для одного и того же значения dwId; например, если схема изменена в другом месте системы. Для этой версии WMI языком запросов всегда является WQL.

Метод IWbemEventProviderQuerySink::NewQuery можно вызвать перед методом IWbemEventProvider::P rovideEvents .

Требования

Требование Значение
Минимальная версия клиента Windows Vista
Минимальная версия сервера Windows Server 2008
Целевая платформа Windows
Header wbemprov.h (включая Wbemidl.h)
Библиотека Wbemuuid.lib
DLL Wbemsvc.dll

См. также раздел

IWbemEventProviderQuerySink

IWbemEventProviderQuerySink::CancelQuery