Метод 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::ExecNotificationQueryAsync