Compartilhar via


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

Use o método NextAsync quando uma recuperação assíncrona controlada de objetos para um coletor for necessária. A recuperação assíncrona normal, como uma chamada para IWbemServices::ExecQueryAsync, resulta em entrega descontrolada de objetos para a implementação do chamador de IWbemObjectSink. Esse método é útil para casos em que um componente controla a entrega de objetos.

Sintaxe

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

Parâmetros

[in] uCount

Número de objetos que estão sendo solicitados.

[in] pSink

Coletor para receber os objetos. O coletor deve ser implementado pelo chamador. Conforme cada lote de objetos é solicitado, eles são entregues ao parâmetro pSink do método Indicate seguido por uma chamada final para o parâmetro pSink do método SetStatus . Se o coletor for usado para entregar objetos, esse método retornará WBEM_S_NO_ERROR, mesmo que o número de objetos a serem entregues seja menor do que o solicitado. No entanto, se não houver mais objetos restantes, o parâmetro pSink será ignorado (nenhuma chamada para o parâmetro pSink de SetStatus será feita). Em vez disso, esse método retorna WBEM_S_FALSE.

Valor retornado

O método NextAsync retorna um HRESULT que indica o status da chamada de método. A lista a seguir lista o valor contido em um HRESULT.

Comentários

Uma chamada para a função COM GetErrorInfo fornece mais informações sobre o erro. Códigos de erro específicos do COM também poderão ser retornados se problemas de rede fizerem com que você perca a conexão remota com o Gerenciamento do Windows.

Essa chamada retorna imediatamente e a entrega para o coletor ocorre em segundo plano. Se várias chamadas forem feitas a esse método de um ou mais threads, elas serão logicamente enfileiradas e a ordem das chamadas e da entrega de objetos será preservada. Várias chamadas feitas a esse método de um ou mais blocos de threads não retornam até que todos os objetos de coletor relacionados a chamadas anteriores a esse método tenham sido atendidos. Uma chamada para Redefinir não afeta a entrega de objetos atualmente em andamento como resultado de chamadas anteriores. O método Reset faz com que novas chamadas sejam iniciadas apenas no início da sequência de objetos.

Se o número de objetos solicitados estiver disponível imediatamente, a função retornará WBEM_S_NO_ERROR. Se houver menos do que o número de objetos solicitados disponíveis, os objetos disponíveis serão retornados e WBEM_S_NO_ERROR serão retornados. O restante dos objetos é entregue pelo coletor fornecido pelo usuário.

À medida que os objetos ficam disponíveis, a implementação do chamador de IWbemObjectSink::Indicate é chamada zero ou mais vezes para entregar os objetos. Isso é seguido por uma chamada para IWbemObjectSink::SetStatus com um valor de WBEM_S_NO_ERROR se os itens uCount forem retornados.

Se menos objetos estiverem disponíveis do que o número solicitado, Indicate será chamado para os objetos disponíveis. SetStatus é chamado com um valor de WBEM_S_FALSE ou o código de erro se ocorreu um erro.

Se o número solicitado de objetos for entregue, o objeto final será seguido por uma chamada para SetStatus com um código status de WBEM_S_NO_ERROR. Se a enumeração for concluída antes que o número solicitado de objetos possa ser entregue, o método SetStatus terá um código status de WBEM_S_FALSE.

Se não houver objetos disponíveis, Indicate não será chamado. No entanto, uma chamada final para SetStatus sempre ocorre para indicar o status de toda a operação.

Como o retorno de chamada pode não ser retornado no mesmo nível de autenticação exigido pelo cliente, é recomendável que você use a comunicação semissíncrona em vez de assíncrona. Se você precisar de comunicação assíncrona, consulte Chamando um método.

Para obter mais informações sobre como usar métodos de forma semissíncrona, consulte IEnumWbemClassObject::Next e Chamando um método.

Requisitos

   
Cliente mínimo com suporte Windows Vista
Servidor mínimo com suporte Windows Server 2008
Plataforma de Destino Windows
Cabeçalho wbemcli.h (include Wbemidl.h)
Biblioteca Wbemuuid.lib
DLL Fastprox.dll