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