Metodo IWbemServices::ExecNotificationQuery (wbemcli.h)
Il metodo IWbemServices::ExecNotificationQuery esegue una query per ricevere eventi. La chiamata restituisce immediatamente e l'utente può eseguire il polling dell'enumeratore restituito per gli eventi non appena arrivano. Il rilascio dell'enumeratore restituito annulla la query.
Sintassi
HRESULT ExecNotificationQuery(
[in] const BSTR strQueryLanguage,
[in] const BSTR strQuery,
[in] long lFlags,
[in] IWbemContext *pCtx,
[out] IEnumWbemClassObject **ppEnum
);
Parametri
[in] strQueryLanguage
BSTR valido che contiene uno dei linguaggi di query supportati da Gestione Windows. Non può essere NULL. Attualmente è supportato solo il linguaggio WQL ( WMI Query Language ).
[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 deve essere impostato su WBEM_FLAG_RETURN_IMMEDIATELY e WBEM_FLAG_FORWARD_ONLY oppure la chiamata ha esito negativo.
WBEM_FLAG_FORWARD_ONLY
Questo flag determina la restituzione di un enumeratore forward-only. Gli enumeratori forward-only sono in genere molto più veloci e usano meno memoria rispetto agli enumeratori convenzionali, ma non consentono chiamate a Clone o Reset.
WBEM_FLAG_RETURN_IMMEDIATELY
L'utente deve specificare questo flag o la chiamata ha esito negativo. Ciò è dovuto al fatto che gli eventi vengono ricevuti continuamente, il che significa che l'utente deve eseguire il polling dell'enumeratore restituito. Bloccando questa chiamata per un periodo illimitato durante l'attesa di un possibile evento, il thread viene bloccato per un periodo di tempo illimitato. Per altre informazioni, vedere Chiamata di un metodo.
[in] pCtx
In genere NULL. In caso contrario, si tratta di un puntatore a un oggetto IWbemContext che può essere utilizzato dal provider che fornisce 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.
[out] ppEnum
Se non si verifica alcun errore, questo parametro riceve l'enumeratore che consente al chiamante di recuperare le istanze nel set di risultati della query. Il chiamante chiama periodicamente IEnumWbemClassObject::Next per verificare se sono disponibili eventi. Si noti che, in questo utilizzo, Reset non sposta l'enumeratore all'inizio della sequenza di eventi; non ha alcun effetto. Il parametro può continuare a ricevere eventi fino a quando Release non viene chiamato nell'enumeratore restituito.
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.
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
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 di WMI del codice di errore WBEM_E_QUOTA_VIOLATION come valore HRESULT . Il limite di parole chiave WQL dipende dalla complessità della query.
Requisiti
Requisito | Valore |
---|---|
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
IWbemServices::ExecNotificationQueryAsync