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

IWbemServices::ExecNotificationQueryAsync

Esecuzione di query con WQL

Ricezione di eventi per la durata dell'applicazione

Recupero di un codice di errore