勇芳软件工作室.汉化:  Windows Management Instrumentation > COM API for WMI > Interfaces > IWbemServices >

CreateInstanceEnum Method

Previous pageReturn to chapter overviewNext page

描述

 

IWbemServices.CreateInstanceEnum方法创建一个枚举器,该枚举器根据用户指定的选择条件返回指定类的实例。此方法支持简单的WQL查询;可以使用IWbemServices.ExecQuery方法处理更复杂的查询。

 

C++ 语法

 

HRESULT CreateInstanceEnum(

[in]   const BSTR strClass,

[in]   LONG lFlags,

[in]   IWbemContext *pCtx,

[out]  IEnumWbemClassObject **ppEnum

);

 

PowerBASIC 语法

 

METHOD CreateInstanceEnum ( _

BYVAL strClass AS DWORD, _

BYVAL lFlags AS LONG, _

BYVAL pCtx AS IWbemContext, _

BYREF ppEnum AS IEnumWbemClassObject _

) AS LONG

 

参数

 

strClass

 

有效BSTR包含需要实例的类的名称。此参数不能为NULL。

 

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 Management保留指向枚举对象的指针,直到客户端释放枚举器。由于对象指针不会立即释放,如果客户端尝试枚举大量对象,则此方法可能会失败并带有hResult WBEM_E_OUT_OF_MEMORY。如果将LFLAGS参数设置为0(零),则默认隐含此标志。

WBEM_FLAG_DIRECT_READ

该标志引起对指定类的提供者的直接访问,而不考虑其父类或子类。

 

pCtx

 

通常为NULL。否则,这是指向可以由提供者提供请求的实例的IWbemContext对象的指针。必须在相关提供者的文档中指定上下文对象中的值。

 

ppEnum

 

接收到枚举器的指针,它具有正的引用计数。

 

返回值

 

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

 

失败后,您可以从COM函数GetErrorInfo获取任何可用的信息。

 

如果网络问题导致您失去与Windows Management的远程连接,也可能会返回COM特定的错误代码。

 

退货代码

描述

WBEM_E_ACCESS_DENIED

当前用户没有权限查看指定类的实例。

WBEM_E_FAILED

这表示其他未指定的错误。

WBEM_E_INVALID_CLASS

指定的类不存在或无效。

WBEM_E_INVALID_PARAMETER

指定了无效参数。

WBEM_E_OUT_OF_MEMORY

没有足够的内存来完成操作。

WBEM_E_SHUTTING_DOWN

Windows管理服务可能已停止并重新启动。需要新的电话ConnectServer.

WBEM_E_TRANSPORT_FAILURE

这表示当前进程和Windows Management之间的远程过程调用(RPC)链接失败。

WBEM_S_NO_ERROR

通话成功。

WBEM_E_NOT_FOUND

提供者无法识别类名称。

 

备注

 

返回的枚举器具有零个元素不是错误。

 

要求

 

客户

需要Windows Vista,Windows XP,Windows 2000 Professional,Windows NT Workstation 4.0 SP4及更高版本,Windows Me,Windows 98或Windows 95。

服务器

需要Windows Server 2008,Windows Server 2003,Windows 2000 Server或Windows NT Server 4.0 SP4及更高版本。

在Wbemcli.inc中声明。

DLL

需要Fastprox.dll。

需要Esscli.dll。

需要Framedyn.dll。

需要Ntevt.dll。

需要Stdprov.dll。

需要Viewprov.dll。

需要Wbemcomn.dll。

需要Wbemcore.dll。

需要Wbemess.dll。

需要Wbemsvc.dll。

需要Wmipicmp.dll。

需要Wmidcprv.dll。

需要Wmipjobj.dll。

需要Wmiprvsd.dll。