Метод 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 (include 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::ExecQuery

Получение уведомлений о событиях

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