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

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

WBEM_FLAG_BIDIRECTIONAL

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

WBEM_FLAG_DIRECT_READ

此标志导致直接访问指定的类的提供程序,而不考虑其父类或子类。

[in] pCtx

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

[out] ppEnum

接收指向具有正引用计数的枚举器的指针。 调用方必须在不再需要指针后对指针调用 IUnknown::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

另请参阅

IWbemServices

IWbemServices::CreateInstanceEnumAsync

检索错误代码