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

Метод IWbemServices::CreateInstanceEnum создает перечислитель, который возвращает экземпляры указанного класса в соответствии с заданными пользователем критериями выбора. Этот метод поддерживает простые запросы WQL; более сложные запросы можно обрабатывать с помощью метода IWbemServices::ExecQuery .

Синтаксис

HRESULT CreateInstanceEnum(
  [in]  const BSTR           strFilter,
  [in]  long                 lFlags,
  [in]  IWbemContext         *pCtx,
  [out] IEnumWbemClassObject **ppEnum
);

Параметры

[in] strFilter

Допустимое значение BSTR , содержащее имя класса, для которого нужны экземпляры. Этот параметр не может иметь значение NULL.

[in] lFlags

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

WBEM_FLAG_USE_AMENDED_QUALIFIERS

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

WBEM_FLAG_DEEP

Этот флаг заставляет перечисление включать этот и все подклассы в иерархию.

WBEM_FLAG_SHALLOW

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

WBEM_FLAG_RETURN_IMMEDIATELY

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

WBEM_FLAG_FORWARD_ONLY

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

WBEM_FLAG_BIDIRECTIONAL

Этот флаг приводит к тому, что управление Windows сохраняет указатели на объекты перечисления до тех пор, пока клиент не отпустит перечислитель. Поскольку указатели объектов не освобождаются немедленно, этот метод может завершиться ошибкой с WBEM_E_OUT_OF_MEMORY hResult, если клиент пытается перечислить большое количество объектов. Этот флаг подразумевается по умолчанию, если для параметра lFlags задано значение 0 (ноль).

WBEM_FLAG_DIRECT_READ

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

[in] pCtx

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

[out] ppEnum

Получает указатель на перечислитель, имеющий положительное число ссылок. Вызывающий объект должен вызывать IUnknown::Release в указателе после того, как он больше не требуется.

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

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

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

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

Комментарии

Если возвращаемый перечислитель имеет нулевые элементы, это не является ошибкой.

Требования

Требование Значение
Минимальная версия клиента 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::CreateInstanceEnumAsync

Получение кода ошибки