Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Выполняет запрос для получения событий. Вызов возвращается немедленно, и вызывающий объект может опросить возвращенный перечислитель на наличие событий по мере их поступления. Освобождение возвращенного перечислителя отменяет запрос.
Примечание
Этот интерфейс API предназначен только для внутреннего использования. Он не предназначен для использования из кода разработчика.
Синтаксис
HRESULT ExecNotificationQueryWmi (
[in] BSTR strQueryLanguage,
[in] BSTR strQuery,
[in] long lFlags,
[in] IWbemContext* pCtx,
[out] IEnumWbemClassObject** ppEnum,
[in] DWORD authLevel,
[in] DWORD impLevel,
[in] IWbemServices* pCurrentNamespace,
[in] BSTR strUser,
[in] BSTR strPassword,
[in] BSTR strAuthority
);
Параметры
strQueryLanguage
[in] Строка с допустимым языком запросов, поддерживаемым управлением Windows. Это должно быть "WQL", аббревиатура языка запросов WMI.
strQuery
[in] Текст запроса. Этот параметр не может иметь значение null.
lFlags
[in] Сочетание следующих двух флагов, влияющих на поведение этой функции. Эти значения определяются в файле заголовка WbemCli.h , или их можно определить как константы в коде.
| Константа | Значение | Описание |
|---|---|---|
WBEM_FLAG_RETURN_IMMEDIATELY |
0x10 | Флаг вызывает полусинхронный вызов. Если этот флаг не установлен, вызов завершается ошибкой. Это связано с тем, что события получаются непрерывно, что означает, что пользователь должен опросить возвращенный перечислитель. Блокировка этого вызова на неопределенный срок делает это невозможным. |
WBEM_FLAG_FORWARD_ONLY |
0x20 | Функция возвращает перечислитель только вперед. Как правило, перечислители только вперед работают быстрее и используют меньше памяти, чем обычные перечислители, но не допускают вызовы клонирования. |
pCtx
[in] Как правило, это значение равно null. В противном случае это указатель на экземпляр IWbemContext , который может использоваться поставщиком, предоставляющим запрошенные события.
ppEnum
[out] Если ошибка не возникает, получает указатель на перечислитель, который позволяет вызывающей объекту извлекать экземпляры в результирующем наборе запроса. Дополнительные сведения см. в разделе Примечания .
authLevel
[in] Уровень авторизации.
impLevel
[in] Уровень олицетворения.
pCurrentNamespace
[in] Указатель на объект IWbemServices , представляющий текущее пространство имен.
strUser
[in] Имя пользователя. Дополнительные сведения см. в разделе Функция ConnectServerWmi .
strPassword
[in] Пароль. Дополнительные сведения см. в разделе Функция ConnectServerWmi .
strAuthority
[in] Доменное имя пользователя. Дополнительные сведения см. в разделе Функция ConnectServerWmi .
Возвращаемое значение
Следующие значения, возвращаемые этой функцией, определяются в файле заголовка WbemCli.h , или их можно определить как константы в коде:
| Константа | Значение | Описание |
|---|---|---|
WBEM_E_ACCESS_DENIED |
0x80041003 | У пользователя нет разрешения на просмотр одного или нескольких классов, которые функция может вернуть. |
WBEM_E_FAILED |
0x80041001 | Возникла неопределенная ошибка. |
WBEM_E_INVALID_PARAMETER |
0x80041008 | Недействительный параметр. |
WBEM_E_INVALID_CLASS |
0x80041010 | Запрос указывает класс, который не существует. |
WBEMESS_E_REGISTRATION_TOO_PRECISE |
0x80042002 | Запрошена слишком большая точность доставки событий. Необходимо указать больший допуск опроса. |
WBEMESS_E_REGISTRATION_TOO_BROAD |
0x80042001 | Запрос запрашивает больше сведений, чем может предоставить управление Windows. Возвращается HRESULT , когда запрос события приводит к запросу на опрос всех объектов в пространстве имен. |
WBEM_E_INVALID_QUERY |
0x80041017 | В запросе возникла синтаксическая ошибка. |
WBEM_E_INVALID_QUERY_TYPE |
0x80041018 | Запрошенный язык запросов не поддерживается. |
WBEM_E_QUOTA_VIOLATION |
0x8004106c | Запрос слишком сложный. |
WBEM_E_OUT_OF_MEMORY |
0x80041006 | Недостаточно памяти для выполнения операции. |
WBEM_E_SHUTTING_DOWN |
0x80041033 | Вероятно, инструментарий WMI был остановлен и перезапущен. Снова вызовите ConnectServerWmi . |
WBEM_E_TRANSPORT_FAILURE |
0x80041015 | Сбой связи удаленного вызова процедуры (RPC) между текущим процессом и WMI. |
WBEM_E_UNPARSABLE_QUERY |
0x80041058 | Не удается проанализировать запрос. |
WBEM_S_NO_ERROR |
0 | Вызов функции выполнен успешно. |
Комментарии
Эта функция заключает в оболочку вызов метода IWbemServices::ExecNotificationQuery .
После возврата функции вызывающий объект периодически передает возвращенный ppEnum объект в функцию Next , чтобы узнать, доступны ли какие-либо события.
Существуют ограничения на количество AND ключевых слов и OR , которые можно использовать в WQL-запросах. Большое количество ключевых слов WQL, используемых в сложном запросе, может привести к тому, что WMI вернет WBEM_E_QUOTA_VIOLATION код ошибки (или 0x8004106c) в HRESULT качестве значения. Ограничение ключевых слов WQL зависит от сложности запроса.
Если вызов функции завершается ошибкой, можно получить дополнительные сведения об ошибке, вызвав функцию GetErrorInfo .
Требования
Платформы: см. раздел Требования к системе.
Заголовка: WMINet_Utils.idl
версии платформа .NET Framework: доступно с версии 4.7.2.