IWbemServices::CreateClassEnum 方法 (wbemcli.h)

IWbemServices::CreateClassEnum 方法返回满足选择条件的所有类的枚举器。 调用方必须使用返回的枚举器来检索类定义,调用 IEnumWbemClassObject::Next 以获取每个类或类块。 它通过调用 IEnumWbemClassObject::Release 完成。

注意 返回的枚举器将 0 个 (零个元素) 不是错误。
 

语法

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

此标志会导致返回仅向前枚举器。 通常,仅前向枚举器比传统枚举器更快,使用的内存更少,但它们不允许调用 CloneReset

WBEM_FLAG_BIDIRECTIONAL

此标志会导致 WMI 保留指向枚举对象的指针,直到客户端释放枚举器。 由于对象指针不会立即释放,因此,如果客户端尝试枚举大量对象,此方法可能会失败,且 HRESULT为 WBEM_E_OUT_OF_MEMORY 。 如果将 lFlags 参数设置为 0 (零) ,则默认隐含此标志。

[in] pCtx

通常 为 NULL。 否则,这是指向 IWbemContext 对象的指针,该对象可由提供所请求类的提供程序使用。 必须在提供程序的文档中指定上下文对象中的值。 有关此参数的详细信息,请参阅 调用 WMI

[out] ppEnum

接收指向枚举器的指针。 返回的对象具有正引用计数。 当不再需要指针时,调用方必须对指针调用 Release

返回值

此方法返回一个 HRESULT ,指示方法调用的状态。 以下列表列出了 HRESULT 中包含的值。

失败时,可以从 COM 函数 GetErrorInfo 获取可用信息。

如果网络问题导致你失去与 Windows 管理的远程连接,也可以返回特定于 COM 的错误代码。

要求

   
最低受支持的客户端 Windows Vista
最低受支持的服务器 Windows Server 2008
目标平台 Windows
标头 wbemcli.h (包括 Wbemidl.h)
Library 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

另请参阅

IEnumWbemClassObject

IWbemServices

IWbemServices::CreateClassEnumAsync

检索错误代码