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