Метод IWbemServices::ExecNotificationQuery (wbemcli.h)

Метод IWbemServices::ExecNotificationQuery выполняет запрос для получения событий. Вызов возвращается немедленно, и пользователь может опросить возвращенный перечислитель на наличие событий по мере их поступления. Освобождение возвращенного перечислителя отменяет запрос.

Синтаксис

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

Параметры

[in] strQueryLanguage

Допустимый BSTR , содержащий один из языков запросов, поддерживаемых управлением Windows. Этот параметр не может иметь значение NULL. В настоящее время поддерживается только язык запросов WMI (WQL).

[in] strQuery

Допустимый BSTR , содержащий текст запроса, связанного с событиями. Этот параметр не может иметь значение NULL. Дополнительные сведения о создании строк запросов WMI см. в разделах Запросы с помощью WQL и Справочник по WQL .

[in] lFlags

Для этого параметра необходимо задать как WBEM_FLAG_RETURN_IMMEDIATELY , так и WBEM_FLAG_FORWARD_ONLY иначе вызов завершается ошибкой.

WBEM_FLAG_FORWARD_ONLY

Этот флаг приводит к возврату перечислителя только вперед. Перечислители только вперед обычно выполняются гораздо быстрее и используют меньше памяти, чем обычные перечислители, но не разрешают вызовы клонирования или сброса.

WBEM_FLAG_RETURN_IMMEDIATELY

Пользователь должен указать этот флаг, иначе вызов завершается ошибкой. Это связано с тем, что события получаются непрерывно, что означает, что пользователь должен опросить возвращаемый перечислитель. Блокировка этого вызова на неопределенный срок во время ожидания возможного события блокирует поток в течение неопределенного времени. Дополнительные сведения см. в разделе Вызов метода .

[in] pCtx

Как правило, значение NULL. В противном случае это указатель на объект IWbemContext , который может использоваться поставщиком, предоставляющим запрошенные события. Значения в объекте контекста должны быть указаны в документации для соответствующего поставщика. Дополнительные сведения об этом параметре см. в статье Вызовы WMI.

[out] ppEnum

Если ошибки не возникает, этот параметр получает перечислитель, который позволяет вызывающей объекту получить экземпляры в результирующем наборе запроса. Вызывающий объект периодически вызывает IEnumWbemClassObject::Next , чтобы узнать, доступны ли какие-либо события. Обратите внимание, что при таком использовании функция Reset не перемещает перечислитель обратно в начало последовательности событий; она не оказывает никакого влияния. Параметр может продолжать получать события до тех пор, пока в возвращенном перечислителе не будет вызван выпуск .

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

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

При сбое можно получить любые доступные сведения из функции COM GetErrorInfo.

Коды ошибок COM также могут быть возвращены, если проблемы с сетью приводят к потере удаленного подключения к управлению Windows.

Комментарии

Существуют ограничения на количество ключевых слов AND и OR , которые можно использовать в WQL-запросах. Большое количество ключевых слов WQL, используемых в сложном запросе, может привести к возврату WMI кода ошибки WBEM_E_QUOTA_VIOLATION в качестве значения HRESULT . Ограничение ключевых слов WQL зависит от сложности запроса.

Требования

Требование Значение
Минимальная версия клиента Windows Vista
Минимальная версия сервера Windows Server 2008
Целевая платформа Windows
Header wbemcli.h (включая Wbemidl.h)
Библиотека 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

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

IWbemServices

IWbemServices::ExecNotificationQueryAsync

Запросы с помощью WQL

Получение событий за период действия приложения

Получение кода ошибки