Metodo IEnumWbemClassObject::NextAsync (wbemcli.h)
Usare il metodo NextAsync quando è necessario un recupero asincrono controllato di oggetti in un sink. Il recupero asincrono normale, ad esempio una chiamata a IWbemServices::ExecQueryAsync, comporta la distribuzione incontrollata di oggetti all'implementazione del chiamante IWbemObjectSink. Questo metodo è utile per i casi in cui un componente controlla il recapito di oggetti.
Sintassi
HRESULT NextAsync(
[in] ULONG uCount,
[in] IWbemObjectSink *pSink
);
Parametri
[in] uCount
Numero di oggetti richiesti.
[in] pSink
Sink per ricevere gli oggetti. Il sink deve essere implementato dal chiamante. Quando viene richiesto ogni batch di oggetti, vengono recapitati al parametro pSink del metodo Indicate seguito da una chiamata finale al parametro pSink del metodo SetStatus . Se il sink verrà usato per recapitare oggetti, questo metodo restituisce WBEM_S_NO_ERROR, anche se il numero di oggetti da recapitare è minore di quello richiesto. Tuttavia, se non sono presenti altri oggetti rimanenti, il parametro pSink viene ignorato (non vengono eseguite chiamate al parametro pSink di SetStatus ). Questo metodo restituisce invece WBEM_S_FALSE.
Valore restituito
Il metodo NextAsync restituisce un HRESULT che indica lo stato della chiamata al metodo. L'elenco seguente elenca il valore contenuto in un HRESULT.
Commenti
Una chiamata alla funzione COM GetErrorInfo fornisce altre informazioni sull'errore. I codici di errore specifici di COM possono essere restituiti anche se i problemi di rete causano la perdita della connessione remota a Gestione Windows.
Questa chiamata restituisce immediatamente e il recapito al sink si verifica in background. Se vengono effettuate più chiamate a questo metodo da uno o più thread, vengono accodati logicamente e l'ordine di chiamate e recapito di oggetti viene mantenuto. Più chiamate effettuate a questo metodo da uno o più thread blocchi non restituiscono fino a quando non sono stati sottoposti a servizio tutti gli oggetti sink correlati alle chiamate precedenti a questo metodo. Una chiamata a Reimpostazione non influisce sul recapito di oggetti attualmente in corso in seguito alle chiamate precedenti. Il metodo Reset causa solo l'avvio di nuove chiamate all'inizio della sequenza di oggetti.
Se il numero di oggetti richiesti è immediatamente disponibile, la funzione restituisce WBEM_S_NO_ERROR. Se sono disponibili meno del numero di oggetti richiesti, gli oggetti disponibili vengono restituiti e vengono restituiti WBEM_S_NO_ERROR . Il resto degli oggetti viene recapitato dal sink fornito dall'utente.
Man mano che gli oggetti diventano disponibili, l'implementazione del chiamante di IWbemObjectSink::Indicate è chiamata zero o più volte per recapitare gli oggetti. Viene seguita da una chiamata a IWbemObjectSink::SetStatus con un valore di WBEM_S_NO_ERROR se vengono restituiti gli elementi uCount .
Se sono disponibili meno oggetti rispetto al numero richiesto, Indica viene chiamato per tali oggetti disponibili. SetStatus viene quindi chiamato con un valore di WBEM_S_FALSE o il codice di errore se si è verificato un errore.
Se il numero richiesto di oggetti viene recapitato, l'oggetto finale viene seguito da una chiamata a SetStatus con un codice di stato di WBEM_S_NO_ERROR. Se l'enumerazione viene completata prima che sia possibile recapitare il numero richiesto di oggetti, il metodo SetStatus ha un codice di stato di WBEM_S_FALSE.
Se non sono presenti oggetti disponibili, Indica non viene chiamato. Tuttavia, una chiamata finale a SetStatus si verifica sempre per indicare lo stato dell'intera operazione.
Poiché il callback potrebbe non essere restituito allo stesso livello di autenticazione richiesto dal client, è consigliabile usare semisynchrono anziché la comunicazione asincrona. Se è necessaria la comunicazione asincrona, vedere Chiamata di un metodo.
Per altre informazioni sull'uso di metodi semisynchronously, vedere IEnumWbemClassObject::Next e Chiama un metodo.
Requisiti
Client minimo supportato | Windows Vista |
Server minimo supportato | Windows Server 2008 |
Piattaforma di destinazione | Windows |
Intestazione | wbemcli.h (include Wbemidl.h) |
Libreria | Wbemuuid.lib |
DLL | Fastprox.dll |