SWbemServices.InstancesOfAsync 方法

SWbemServices 对象的 InstancesOfAsync 方法可根据用户指定的条件来检索指定类的实例。

此方法在异步模式下调用。 有关详细信息,请参阅调用方法

有关该语法说明,请参阅脚本 API 的文档约定

语法

SWbemServices.InstancesOfAsync( _
  ByVal ObjWbemSink, _
  ByVal strClass, _
  [ ByVal iFlags ], _
  [ ByVal objWbemNamedValueSet ], _
  [ ByVal objWbemAsyncContext ] _
)

参数

ObjWbemSink

异步接收实例的对象接收器。 创建 SWbemSink 对象来接收对象

strClass

必需。 字符串,包含所需实例的类名称。 此参数不能为空。

iFlags [可选]

确定调用枚举的深度,以及调用是否立即返回。 此参数可以接受以下值。

wbemQueryFlagShallow (1 (0x1))

强制枚举只包含指定父类的直系子类。

wbemQueryFlagDeep (0 (0x0))

此参数的默认值。 此值强制枚举包含层次结构中的所有类。

wbemFlagSendStatus (128 (0x80))

使异步调用将状态更新发送到对象接收器的 OnProgress 事件处理程序

wbemFlagDontSendStatus (0 (0x0))

防止异步调用将状态更新发送到对象接收器的 OnProgress 事件处理程序

wbemFlagUseAmendedQualifiers (131072 (0x20000))

使 WMI 返回类修改数据以及基类定义。 有关详细信息,请参阅本地化 WMI 类信息

objWbemNamedValueSet [optional]

通常情况下不定义此参数。 否则,这就是 SWbemNamedValueSet 对象,其元素表示为请求提供服务的提供程序可使用的上下文信息。 支持或需要上下文信息的提供程序必须记录已识别的值名称、值数据类型、允许的值和语义。

objWbemAsyncContext [可选]

这是一个 SWbemNamedValueSet 对象,它返回到对象接收器以确定原始异步调用的源。 如果使用同一对象接收器进行多个异步调用,请使用此参数。 若要使用此参数,请创建 SWbemNamedValueSet 对象,并使用 SWbemNamedValueSet.Add 方法添加一个值,该值标识即将进行的异步调用。 此 SWbemNamedValueSet 对象返回到对象接收器,并且可以使用 SWbemNamedValueSet.Item 方法提取调用的源

返回值

此方法不返回值。 如果成功,接收器会收到每个实例的 OnObjectReady 事件。 在最后一个实例之后,对象接收器将收到 OnCompleted 事件

错误代码

InstancesOfAsync 方法完成后,Err 对象可能包含以下列表中的错误代码之一

wbemErrAccessDenied - 2147749891 (0x80041003)

当前用户无权查看指定类的实例。

wbemErrFailed - 2147749889 (0x80041001)

发生了未指定的错误。

wbemErrInvalidClass - 2147749904 (0x80041010)

指定的类无效。

wbemErrInvalidParameter - 2147749896 (0x80041008)

指定的参数无效。

wbemErrOutOfMemory - 2147749894 (0x80041006)

内存不足,无法完成操作。

备注

此调用会立即返回。 请求的对象和状态通过回调返回给调用方,该回调传递到 objWbemSink 中指定的接收器。 若要在每个对象返回时对其进行处理,请创建 objWbemSink.OnObjectReady 事件子例程。 返回所有对象后,可在 objWbemSink.OnCompleted 事件的实现中执行最终处理

使用异步回调时,未经身份验证的用户可以向接收器提供数据。 这会给脚本和应用程序带来安全风险。 若要消除这些风险,请参阅设置异步调用的安全性

InstancesOfAsync 方法仅适用于类对象。 返回的枚举器有零 (0) 个元素,这不属于是错误。

要求

要求
最低受支持的客户端
Windows Vista
最低受支持的服务器
Windows Server 2008
Header
Wbemdisp.h
类型库
Wbemdisp.tlb
DLL
Wbemdisp.dll
CLSID
CLSID_SWbemServices
IID
IID_ISWbemServices

另请参阅

SWbemServices

调用方法