Поделиться через


Метод IWbemServices::ExecQuery (wbemcli.h)

Метод IWbemServices::ExecQuery выполняет запрос для получения объектов .

Допустимые типы запросов, которые можно выполнять, см. в разделе Запросы с помощью WQL.

Синтаксис

HRESULT ExecQuery(
  [in]  const BSTR           strQueryLanguage,
  [in]  const BSTR           strQuery,
  [in]  long                 lFlags,
  [in]  IWbemContext         *pCtx,
  [out] IEnumWbemClassObject **ppEnum
);

Параметры

[in] strQueryLanguage

Допустимый BSTR , содержащий один из языков запросов, поддерживаемых управлением Windows. Это должно быть "WQL", аббревиатура языка запросов WMI.

[in] strQuery

Допустимая строка BSTR , содержащая текст запроса. Этот параметр не может иметь значение NULL. Дополнительные сведения о создании строк запросов WMI см. в разделах Запросы с помощью WQL и Справочник по WQL .

[in] lFlags

Следующие флаги влияют на поведение этого метода. Рекомендуемое значение для этого параметра — WBEM_FLAG_RETURN_IMMEDIATELY и WBEM_FLAG_FORWARD_ONLY для достижения оптимальной производительности.

WBEM_FLAG_USE_AMENDED_QUALIFIERS

Если этот флаг установлен, инструментарий WMI получает измененные квалификаторы, хранящиеся в локализованном пространстве имен языкового стандарта текущего подключения. Если значение не задано, извлекаются только квалификаторы, хранящиеся в непосредственном пространстве имен.

WBEM_FLAG_FORWARD_ONLY

Этот флаг приводит к возврату перечислителя только вперед. Перечислители только вперед обычно выполняются гораздо быстрее и используют меньше памяти, чем обычные перечислители, но не допускают вызовы клонирования или сброса.

WBEM_FLAG_BIDIRECTIONAL

Этот флаг приводит к тому, что управление Windows сохраняет указатели на объекты перечисления до тех пор, пока клиент не выпустит перечислитель.

WBEM_FLAG_RETURN_IMMEDIATELY

Этот флаг приводит к полусинхронному вызову. Дополнительные сведения см. в разделе Вызов метода.

WBEM_FLAG_ENSURE_LOCATABLE

Этот флаг гарантирует, что все возвращаемые объекты содержат достаточно сведений, чтобы системные свойства, такие как __PATH, __RELPATH и __SERVER, не имели значения NULL.

WBEM_FLAG_PROTOTYPE

Этот флаг используется для создания прототипов. Он не выполняет запрос и вместо этого возвращает объект, который выглядит как типичный результирующий объект.

WBEM_FLAG_DIRECT_READ

Этот флаг обеспечивает прямой доступ к поставщику для указанного класса без учета его родительского класса или подклассов.

[in] pCtx

Обычно имеет значение NULL. В противном случае это указатель на объект IWbemContext , который может использоваться поставщиком, предоставляющим запрошенные классы или экземпляры. Значения в объекте контекста должны быть указаны в документации для соответствующего поставщика. Дополнительные сведения об этом параметре см. в разделе Выполнение вызовов WMI.

[out] ppEnum

Если ошибка не возникает, получает перечислитель, который позволяет вызывающей объекту получить экземпляры в результирующем наборе запроса. Наличие результирующий набор с 0 экземпляров в запросе не является ошибкой. Это определяется только попыткой выполнить итерацию по экземплярам . Этот объект возвращается с положительным числом ссылок. Вызывающий объект должен вызывать Release , если объект больше не требуется.

Возвращаемое значение

Этот метод возвращает HRESULT , указывающий состояние вызова метода. В следующем списке перечислены значения, содержащиеся в HRESULT.

В случае сбоя можно получить любые доступные сведения из функции COM GetErrorInfo.

Коды ошибок COM также могут быть возвращены, если проблемы с сетью приводят к потере удаленного подключения к управлению Windows.

Комментарии

Метод IWbemServices::ExecQuery обрабатывает запрос, указанный в параметре strQuery, и создает перечислитель, с помощью которого вызывающий объект может получить доступ к результатам запроса. Перечислитель является указателем на интерфейс IEnumWbemClassObject ; Результаты запроса представляют собой экземпляры объектов класса, доступных через интерфейс IWbemClassObject .

Существуют ограничения на количество ключевых слов 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

См. также раздел

IWbemServices

IWbemServices::ExecQueryAsync

Запросы с помощью WQL