Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Выполняет запрос для получения объектов.
Примечание
Этот интерфейс API предназначен только для внутреннего использования. Он не предназначен для использования из кода разработчика.
Синтаксис
HRESULT ExecQueryWmi (
[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_USE_AMENDED_QUALIFIERS |
0x20000 | Если этот параметр задан, функция извлекает измененные квалификаторы, хранящиеся в локализованном пространстве имен языкового стандарта текущего подключения. Если значение не задано, функция извлекает только квалификаторы, хранящиеся в непосредственном пространстве имен. |
WBEM_FLAG_RETURN_IMMEDIATELY |
0x10 | Флаг вызывает полусинхронный вызов. |
WBEM_FLAG_FORWARD_ONLY |
0x20 | Функция возвращает перечислитель только вперед. Как правило, перечислители только для пересылки работают быстрее и используют меньше памяти, чем обычные перечислители, но не разрешают вызовы клонирования. |
WBEM_FLAG_BIDIRECTIONAL |
0 | WMI сохраняет указатели на объекты в перечислении, пока они не будут освобождены. |
WBEM_FLAG_ENSURE_LOCATABLE |
0x100 | Гарантирует, что все возвращаемые объекты содержат достаточно информации, чтобы системные свойства, такие как __PATH, __RELPATH и __SERVER, не nullбыли . |
WBEM_FLAG_PROTOTYPE |
2 | Этот флаг используется для создания прототипов. Он не выполняет запрос и вместо этого возвращает объект, который выглядит как типичный результирующий объект. |
WBEM_FLAG_DIRECT_READ |
0x200 | Вызывает прямой доступ к поставщику для указанного класса без учета его родительского класса или любых подклассов. |
Рекомендуется WBEM_FLAG_RETURN_IMMEDIATELY использовать флаги и WBEM_FLAG_FORWARD_ONLY для наилучшей производительности.
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_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_NOT_FOUND |
0x80041002 | Запрос указывает класс, который не существует. |
WBEM_S_NO_ERROR |
0 | Вызов функции выполнен успешно. |
Комментарии
Эта функция заключает в оболочку вызов метода IWbemServices::ExecQuery .
Эта функция обрабатывает запрос, указанный в параметре strQuery , и создает перечислитель, с помощью которого вызывающий объект может получить доступ к результатам запроса. Перечислитель является указателем на интерфейс IEnumWbemClassObject ; Результаты запроса представляют собой экземпляры объектов класса, доступных через интерфейс IWbemClassObject .
Существуют ограничения на количество AND ключевых слов и OR , которые можно использовать в WQL-запросах. Большое количество ключевых слов WQL, используемых в сложном запросе, может привести к тому, что WMI возвращает WBEM_E_QUOTA_VIOLATION код ошибки (или 0x8004106c) в HRESULT качестве значения. Ограничение ключевых слов WQL зависит от сложности запроса.
Если вызов функции завершается сбоем, можно получить дополнительные сведения об ошибке, вызвав функцию GetErrorInfo .
Требования
Платформы: см. раздел Требования к системе.
Заголовка: WMINet_Utils.idl
платформа .NET Framework версии: доступно с версии 4.7.2.