Método IEnumWbemClassObject::NextAsync (wbemcli.h)

Use el método NextAsync cuando se requiera una recuperación asincrónica controlada de objetos en un receptor. La recuperación asincrónica normal, como una llamada a IWbemServices::ExecQueryAsync, da como resultado la entrega no controlada de objetos a la implementación del autor de la llamada de IWbemObjectSink. Este método resulta útil en los casos en los que un componente controla la entrega de objetos.

Sintaxis

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

Parámetros

[in] uCount

Número de objetos que se solicitan.

[in] pSink

Receptor para recibir los objetos. El llamador debe implementar el receptor. A medida que se solicita cada lote de objetos, se entregan al parámetro pSink del método Indicate seguido de una llamada final al parámetro pSink del método SetStatus . Si el receptor se va a usar para entregar objetos, este método devuelve WBEM_S_NO_ERROR, incluso si el número de objetos que se van a entregar es menor que el solicitado. Sin embargo, si no quedan más objetos, se omite el parámetro pSink (no se realizan llamadas al parámetro pSink de SetStatus ). En su lugar, este método devuelve WBEM_S_FALSE.

Valor devuelto

El método NextAsync devuelve un HRESULT que indica el estado de la llamada al método. En la lista siguiente se muestra el valor contenido en un HRESULT.

Comentarios

Una llamada a la función COM GetErrorInfo proporciona más información sobre el error. También se pueden devolver códigos de error específicos de COM si los problemas de red hacen que pierdas la conexión remota a la administración de Windows.

Esta llamada devuelve inmediatamente y la entrega al receptor se produce en segundo plano. Si se realizan varias llamadas a este método desde uno o varios subprocesos, se ponen en cola lógicamente y se conserva el orden de las llamadas y la entrega de objetos. No se devuelven varias llamadas realizadas a este método desde uno o varios subprocesos hasta que se hayan realizado todos los objetos receptores relacionados con las llamadas anteriores a este método. Una llamada a Reset no afecta a la entrega de objetos actualmente en curso como resultado de llamadas anteriores. El método Reset solo hace que las nuevas llamadas se inicien al principio de la secuencia de objetos.

Si el número de objetos solicitados está disponible inmediatamente, la función devuelve WBEM_S_NO_ERROR. Si es menor que el número de objetos solicitados, se devuelven los objetos disponibles y se devuelven WBEM_S_NO_ERROR . El resto de los objetos los entrega el receptor proporcionado por el usuario.

A medida que los objetos están disponibles, la implementación del autor de la llamada de IWbemObjectSink::Indicate se denomina cero o más veces para entregar los objetos. Esto va seguido de una llamada a IWbemObjectSink::SetStatus con un valor de WBEM_S_NO_ERROR si se devuelven elementos uCount .

Si hay menos objetos disponibles que el número solicitado, se llama a Indicate para los objetos que están disponibles. A continuación, se llama a SetStatus con un valor de WBEM_S_FALSE o el código de error si se produjo un error.

Si se entrega el número solicitado de objetos, el objeto final va seguido de una llamada a SetStatus con un código de estado de WBEM_S_NO_ERROR. Si la enumeración se completa antes de que se pueda entregar el número solicitado de objetos, el método SetStatus tiene un código de estado de WBEM_S_FALSE.

Si no hay ningún objeto disponible, no se llama a Indicate . Sin embargo, siempre se produce una llamada final a SetStatus para indicar el estado de toda la operación.

Dado que es posible que la devolución de llamada no se devuelva en el mismo nivel de autenticación que requiere el cliente, se recomienda usar semisynchronous en lugar de la comunicación asincrónica. Si necesita comunicación asincrónica, consulte Llamar a un método.

Para obtener más información sobre el uso de métodos de forma semiincrónica, vea IEnumWbemClassObject::Next y Llamar a un método.

Requisitos

   
Cliente mínimo compatible Windows Vista
Servidor mínimo compatible Windows Server 2008
Plataforma de destino Windows
Encabezado wbemcli.h (include Wbemidl.h)
Library Wbemuuid.lib
Archivo DLL Fastprox.dll