Метод IWbemServices::ExecNotificationQueryAsync (wbemcli.h)
Метод IWbemServices::ExecNotificationQueryAsync выполняет ту же задачу, что и IWbemServices::ExecNotificationQuery , за исключением того, что события передаются указанному обработчику ответа до тех пор, пока не будет вызван метод CancelAsyncCall для остановки уведомления о событии.
Синтаксис
HRESULT ExecNotificationQueryAsync(
[in] const BSTR strQueryLanguage,
[in] const BSTR strQuery,
[in] long lFlags,
[in] IWbemContext *pCtx,
[in] IWbemObjectSink *pResponseHandler
);
Параметры
[in] strQueryLanguage
Допустимый BSTR , содержащий один из языков запросов, поддерживаемых управлением Windows. Это должно быть WQL.
[in] strQuery
Допустимый BSTR , содержащий текст запроса, связанного с событиями. Этот параметр не может иметь значение NULL. Дополнительные сведения о создании строк запросов WMI см. в разделах Запросы с помощью WQL и Справочник по WQL .
[in] lFlags
Этот параметр может иметь следующее значение.
WBEM_FLAG_SEND_STATUS
Этот флаг регистрирует в службе управления Windows запрос на получение промежуточных отчетов о состоянии с помощью клиентской реализации IWbemObjectSink::SetStatus. Реализация поставщика должна поддерживать промежуточные отчеты о состоянии для этого флага, чтобы изменить поведение.
[in] pCtx
Как правило, значение NULL. В противном случае это указатель на объект IWbemContext , который может использоваться поставщиком, возвращающим запрошенные события. Значения в объекте контекста должны быть указаны в документации для соответствующего поставщика. Дополнительные сведения об этом параметре см. в статье Вызовы WMI.
[in] pResponseHandler
Указатель на реализацию вызывающего объекта IWbemObjectSink. Этот обработчик получает объекты в результирующем наборе запросов по мере их доступности. Чтобы прекратить получение событий, вызывающий объект должен вызвать IWbemServices::CancelAsyncCall , используя то же значение указателя для pResponseHandler. По мере того как события становятся доступными, для доставки объектов событий вызывается предоставленная реализация IWbemObjectSink::Indicate . Метод IWbemObjectSink::SetStatus не вызывается в любое время, так как нет окончательного или завершающего условия. Вызов выполняется неограниченное время, пока не будет отменен. Если возвращается какой-либо код ошибки, предоставленный указатель IWbemObjectSink не используется. Если возвращается WBEM_S_NO_ERROR , вызывается реализация IWbemObjectSink пользователя, чтобы указать результат операции. Управление Windows вызывает AddRef для указателя только в тех случаях, когда возвращается WBEM_S_NO_ERROR . В случаях, когда возвращается код ошибки, количество ссылок совпадает с числом ссылок при записи. Подробное описание этого параметра см. в разделе Вызов метода .
Возвращаемое значение
Этот метод возвращает HRESULT , указывающий состояние вызова метода. В следующем списке перечислены значения, содержащиеся в HRESULT.
При сбое можно получить любые доступные сведения из функции COM GetErrorInfo.
Другие коды ошибок возвращаются в приемник объектов, заданный параметром pResponseHandler .
Коды ошибок COM также могут быть возвращены, если проблемы с сетью приводят к потере удаленного подключения к управлению Windows.
Комментарии
Вызывается метод IWbemObjectSink::SetStatus , чтобы указать конец результирующих наборов. Он также может вызываться без промежуточных вызовов IWbemObjectSink::Указывает , возникают ли ошибки.
Так как обратный вызов может быть возвращен не на том же уровне проверки подлинности, который требуется клиенту, рекомендуется использовать полусинхронный режим вместо асинхронного взаимодействия. Если требуется асинхронное взаимодействие, см. статью Вызов метода .
Дополнительные сведения об использовании методов полусинхронно см. в разделах IWbemServices::ExecNotificationQuery и Вызов метода.
Существуют ограничения на количество ключевых слов 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 |