IEnumWbemClassObject::NextAsync 方法 (wbemcli.h)

当需要对接收器的对象进行受控异步检索时,请使用 NextAsync 方法。 正常的异步检索(例如调用 IWbemServices::ExecQueryAsync)会导致对象不受控制地传递到调用方实现 的 IWbemObjectSink。 此方法适用于组件控制对象传送的情况。

语法

HRESULT NextAsync(
  [in] ULONG           uCount,
  [in] IWbemObjectSink *pSink
);

参数

[in] uCount

请求的对象数。

[in] pSink

接收器以接收对象。 接收器必须由调用方实现。 当请求每批对象时,它们将传递到指示方法的 pSink 参数,然后最后调用 SetStatus 方法的 pSink 参数。 如果要使用接收器传递对象,此方法将返回 WBEM_S_NO_ERROR,即使要传递的对象数小于请求的数量也是如此。 但是,如果没有其他对象,则忽略 pSink 参数 (不调用 SetStatuspSink 参数) 。 相反,此方法返回 WBEM_S_FALSE

返回值

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

注解

调用 COM 函数 GetErrorInfo 提供有关错误的详细信息。 如果网络问题导致你失去与 Windows 管理的远程连接,也可能返回特定于 COM 的错误代码。

此调用会立即返回,并在后台传送到接收器。 如果从一个或多个线程对此方法进行多次调用,则它们在逻辑上排队,并保留调用和对象传递的顺序。 从一个或多个线程块对此方法进行的多次调用不会返回,直到与以前对此方法的调用相关的所有接收器对象都已得到服务。 调用 Reset 不会影响由于以前的调用而当前正在进行的对象的传递。 Reset 方法仅导致新调用在对象序列的开头启动。

如果请求的对象数立即可用,则函数将返回 WBEM_S_NO_ERROR。 如果可用对象数少于请求的对象数,则返回可用对象并返回 WBEM_S_NO_ERROR 。 其余对象由用户提供的接收器传递。

当对象变为可用时,调用方对 IWbemObjectSink::Indicate 的实现将调用零次或多次来传递对象。 随后调用 IWbemObjectSink::SetStatus,如果返回 uCount 项,其值为 WBEM_S_NO_ERROR

如果可用对象数少于请求的数量,则为可用的对象调用 指示 。 然后,使用 WBEM_S_FALSE 或错误代码(如果发生错误)调用 SetStatus

如果传递了请求的对象数,则最终对象后会调用状态代码为 WBEM_S_NO_ERROR的 SetStatus。 如果枚举在可以传递所请求数量的对象之前完成, 则 SetStatus 方法的状态代码为 WBEM_S_FALSE

如果没有可用的对象,则不调用 指示 。 但是,始终会调用 SetStatus 以指示整个操作的状态。

由于回调可能不会在客户端所需的相同身份验证级别返回,因此建议使用半同步通信而不是异步通信。 如果需要异步通信,请参阅 调用方法

有关以半同步方式使用方法的详细信息,请参阅 IEnumWbemClassObject::Next调用方法

要求

   
最低受支持的客户端 Windows Vista
最低受支持的服务器 Windows Server 2008
目标平台 Windows
标头 wbemcli.h (包括 Wbemidl.h)
Library Wbemuuid.lib
DLL Fastprox.dll