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 |