SWbemObject.InstancesAsync_ method

SWbemObject 的 InstancesAsync_ 方法以异步方式提供当前类对象的实例。 此方法实现了一个简单查询。 更复杂的查询可能需要使用 SWbemServices.ExecQuery

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

语法

SWbemObject.InstancesAsync_( _
  ByVal objWbemSink, _
  [ ByVal iFlags ], _
  [ ByVal objwbemNamedValueSet ], _
  [ ByVal objWbemAsyncContext ] _
)

parameters

objWbemSink [in]

返回实例的对象接收器。

iFlags [in, optional]

决定调用行为的整数。 此参数可以接受以下值。

wbemFlagSendStatus (128 (0x80))

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

wbemFlagDontSendStatus (0 (0x0))

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

wbemFlagUseAmendedQualifiers (131072 (0x20000))

导致 WMI 返回本地化的类和属性说明。 有关详细信息,请参阅本地化 WMI 类信息

objwbemNamedValueSet [in, optional]

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

objWbemAsyncContext [in, optional]

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

返回值

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

错误代码

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

wbemErrAccessDenied - 2147749891 (0x80041003)

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

wbemErrFailed - 2147749889 (0x80041001)

发生了未指定的错误。

wbemErrInvalidClass - 2147749904 (0x80041010)

指定的类无效。

wbemErrInvalidParameter - 2147749896 (0x80041008)

指定的参数无效。

wbemErrOutOfMemory - 2147749894 (0x80041006)

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

备注

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

通过异步回调,未经身份验证的用户可以向接收器提供数据。 这会给脚本和应用程序带来安全风险。 为消除风险,请使用半同步通信或同步通信。 有关详细信息,请参阅调用方法

InstancesAsync_ 方法仅适用于类对象。 返回的集合具有零 (0) 个元素并非错误。

要求

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

另请参阅

SWbemObject

SWbemObjectSet