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

CreateClassEnum Method

Previous pageReturn to chapter overviewNext page

描述

 

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

 

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

 

C++ 语法

 

HRESULT CreateClassEnum(

[in]   const BSTR strSuperclass,

[in]   LONG lFlags,

[in]   IWbemContext *pCtx,

[out]  IEnumWbemClassObject **ppEnum

);

 

PowerBASIC 语法

 

METHOD CreateClassEnum ( _

BYVAL strSuperclass AS DWORD, _

BYVAL lFlags AS LONG, _

BYVAL pCtx AS IWbemContext, _

BYREF ppEnum AS IEnumWbemClassObject _

) AS LONG

 

参数

 

strSuperclass

 

如果不是NULL或空白,则指定父类名称。这个类的子类只能在枚举器中返回。如果它是NULL或空白,并且LFLAGS是WBEM_FLAG_SHALLOW,则只返回顶级类(即,没有父类的类)。如果是NULL或空白,并且LFLAGS是WBEM_FLAG_DEEP,则返回命名空间内的所有类。

 

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

 

pCtx

 

通常为NULL。否则,这是一个指向IWbemContext对象的指针,该对象可供提供者提供所请求的类使用。必须在提供程序的文档中指定上下文对象中的值。

 

ppEnum

 

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

 

返回值

 

此方法返回一个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

WMI可能已停止并重新启动。需要新的电话ConnectServer.

WBEM_E_TRANSPORT_FAILURE

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

WBEM_S_NO_ERROR

通话成功。

 

要求

 

客户

需要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。