Метод IWbemServices::CreateClassEnum (wbemcli.h)
Метод IWbemServices::CreateClassEnum возвращает перечислитель для всех классов, соответствующих критериям выбора. Вызывающий объект должен использовать возвращаемый перечислитель для получения определений классов, вызывая метод IEnumWbemClassObject::Next для получения каждого класса или блоков классов. Он завершается вызовом метода IEnumWbemClassObject::Release.
Синтаксис
HRESULT CreateClassEnum(
[in] const BSTR strSuperclass,
[in] long lFlags,
[in] IWbemContext *pCtx,
[out] IEnumWbemClassObject **ppEnum
);
Параметры
[in] strSuperclass
Если значение не равно NULL или пустое значение, указывает имя родительского класса. В перечислитель возвращаются только классы, которые являются подклассами этого класса. Если параметр имеет значение NULL или пуст, а lFlags WBEM_FLAG_SHALLOW, возвращаются только классы верхнего уровня (т. е. классы, не имеющие родительского класса). Если значение равно NULL или пусто, а lFlagsWBEM_FLAG_DEEP, возвращаются все классы в пространстве имен.
[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
Этот флаг заставляет WMI сохранять указатели на объекты перечисления до тех пор, пока клиент не выпустит перечислитель. Поскольку указатели на объекты не освобождаются немедленно, этот метод может завершиться ошибкой с hrESULTWBEM_E_OUT_OF_MEMORY , если клиент пытается перечислить большое количество объектов. Этот флаг подразумевается по умолчанию, если для параметра lFlags задано значение 0 (ноль).
[in] pCtx
Обычно имеет значение NULL. В противном случае это указатель на объект IWbemContext , который может использоваться поставщиком, предоставляющим запрошенные классы. Значения в объекте контекста должны быть указаны в документации для поставщика. Дополнительные сведения об этом параметре см. в разделе Выполнение вызовов WMI.
[out] ppEnum
Получает указатель на перечислитель. Возвращаемый объект имеет положительное число ссылок. Вызывающий объект должен вызывать 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 |