Metodo IWbemServices::ExecNotificationQueryAsync (wbemcli.h)

Il metodo IWbemServices::ExecNotificationQueryAsync esegue la stessa attività di IWbemServices::ExecNotificationQuery , ad eccezione del fatto che gli eventi vengono forniti al gestore di risposta specificato finché CancelAsyncCall non viene chiamato per arrestare la notifica dell'evento.

Sintassi

HRESULT ExecNotificationQueryAsync(
  [in] const BSTR      strQueryLanguage,
  [in] const BSTR      strQuery,
  [in] long            lFlags,
  [in] IWbemContext    *pCtx,
  [in] IWbemObjectSink *pResponseHandler
);

Parametri

[in] strQueryLanguage

BSTR valido che contiene uno dei linguaggi di query supportati da Gestione Windows. Deve essere "WQL".

[in] strQuery

BSTR valido che contiene il testo della query correlata all'evento. Non può essere NULL. Per altre informazioni sulla compilazione di stringhe di query WMI, vedere Esecuzione di query con WQL e informazioni di riferimento su WQL .

[in] lFlags

Questo parametro può essere il valore seguente.

WBEM_FLAG_SEND_STATUS

Questo flag viene registrato con Gestione Windows una richiesta di ricezione di rapporti di stato intermedi tramite l'implementazione del client di IWbemObjectSink::SetStatus. Per modificare il comportamento, l'implementazione del provider deve supportare la creazione di report di stato intermedio per questo flag.

[in] pCtx

In genere NULL. In caso contrario, si tratta di un puntatore a un oggetto IWbemContext che può essere utilizzato dal provider che restituisce gli eventi richiesti. I valori nell'oggetto contesto devono essere specificati nella documentazione relativa al provider in questione. Per altre informazioni su questo parametro, vedere Effettuare chiamate a WMI.

[in] pResponseHandler

Puntatore all'implementazione del chiamante di IWbemObjectSink. Questo gestore riceve gli oggetti nel set di risultati della query non appena diventano disponibili. Per interrompere la ricezione di eventi, il chiamante deve chiamare IWbemServices::CancelAsyncCall usando lo stesso valore del puntatore per pResponseHandler. Man mano che gli eventi diventano disponibili, viene chiamata l'implementazione IWbemObjectSink::Indicate per recapitare gli oggetti evento. Il metodo IWbemObjectSink::SetStatus non viene chiamato in alcun momento, perché non esiste alcuna condizione finale o di terminazione. La chiamata viene eseguita per un periodo illimitato fino all'annullamento. Se viene restituito un codice di errore, il puntatore IWbemObjectSink fornito non viene usato. Se viene restituito WBEM_S_NO_ERROR, viene chiamata l'implementazione IWbemObjectSink dell'utente per indicare il risultato dell'operazione. Gestione Windows chiama solo AddRef sul puntatore nei casi in cui WBEM_S_NO_ERROR restituisce . Nei casi in cui viene restituito un codice di errore, il conteggio dei riferimenti corrisponde a quello della voce. Per una spiegazione dettagliata di questo parametro, vedere Chiamata di un metodo.

Valore restituito

Questo metodo restituisce un valore HRESULT che indica lo stato della chiamata al metodo. L'elenco seguente elenca il valore contenuto in hrESULT.

In caso di errore, è possibile ottenere qualsiasi informazione disponibile dalla funzione COM GetErrorInfo.

Altri codici di errore vengono restituiti al sink dell'oggetto specificato dal parametro pResponseHandler .

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.

Commenti

Il metodo IWbemObjectSink::SetStatus viene chiamato per indicare la fine del set di risultati. Può anche essere chiamato senza chiamate intermedie a IWbemObjectSink::Indicate se si verificano condizioni di errore.

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 semisynchronously dei metodi, vedere IWbemServices::ExecNotificationQuery e Chiamata di un metodo.

Esistono limiti al numero di parole chiave AND e OR che possono essere usate nelle query WQL. Un numero elevato di parole chiave WQL usate in una query complessa può causare la restituzione del codice di errore WBEM_E_QUOTA_VIOLATION come valore HRESULT . Il limite di parole chiave WQL dipende dalla complessità della query.

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; Esscli.dll; FrameDyn.dll; FrameDynOS.dll; Ntevt.dll; Stdprov.dll; Viewprov.dll; Wbemcomn.dll; Wbemcore.dll; Wbemess.dll; Wbemsvc.dll; Wmipicmp.dll; Wmidcprv.dll; Wmipjobj.dll; Wmiprvsd.dll

Vedi anche

Chiamata di un metodo

Iwbemservices

IWbemServices::ExecQuery

Ricezione di notifiche degli eventi

Ricezione di eventi per la durata dell'applicazione