Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Esegue una query per la ricezione di eventi. La chiamata restituisce immediatamente e il chiamante può eseguire il polling dell'enumeratore restituito per gli eventi non appena arrivano. Il rilascio dell'enumeratore restituito annulla la query.
Nota
Questa API è solo per uso interno. Non è destinata all'uso dal codice dello sviluppatore.
Sintassi
HRESULT ExecNotificationQueryWmi (
[in] BSTR strQueryLanguage,
[in] BSTR strQuery,
[in] long lFlags,
[in] IWbemContext* pCtx,
[out] IEnumWbemClassObject** ppEnum,
[in] DWORD authLevel,
[in] DWORD impLevel,
[in] IWbemServices* pCurrentNamespace,
[in] BSTR strUser,
[in] BSTR strPassword,
[in] BSTR strAuthority
);
Parametri
strQueryLanguage
[in] Stringa con il linguaggio di query valido supportato da Gestione Windows. Deve essere "WQL", acronimo di WMI Query Language.
strQuery
[in] Testo della query. Questo parametro non può essere null.
lFlags
[in] Combinazione dei due flag seguenti che influiscono sul comportamento di questa funzione. Questi valori sono definiti nel file di intestazione WbemCli.h oppure è possibile definirli come costanti nel codice.
| Costante | Valore | Descrizione |
|---|---|---|
WBEM_FLAG_RETURN_IMMEDIATELY |
0x10 | Il flag causa una chiamata semisynchronous. Se questo flag non è impostato, la chiamata non riesce. 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 tempo illimitato, ciò rende impossibile. |
WBEM_FLAG_FORWARD_ONLY |
0x20 | La funzione restituisce un enumeratore forward-only. In genere, gli enumeratori forward-only sono più veloci e usano meno memoria rispetto agli enumeratori convenzionali, ma non consentono chiamate a Clone. |
pCtx
[in] In genere, questo valore è null. In caso contrario, si tratta di un puntatore a un'istanza IWbemContext che può essere usata dal provider che fornisce gli eventi richiesti.
ppEnum
[out] Se non si verifica alcun errore, riceve il puntatore all'enumeratore che consente al chiamante di recuperare le istanze nel set di risultati della query. Per altre informazioni, vedere la sezione Osservazioni .
authLevel
[in] Livello di autorizzazione.
impLevel
[in] Livello di rappresentazione.
pCurrentNamespace
[in] Puntatore a un oggetto IWbemServices che rappresenta lo spazio dei nomi corrente.
strUser
[in] Nome utente. Per altre informazioni, vedere la funzione ConnectServerWmi .
strPassword
[in] Password. Per altre informazioni, vedere la funzione ConnectServerWmi .
strAuthority
[in] Nome di dominio dell'utente. Per altre informazioni, vedere la funzione ConnectServerWmi .
Valore restituito
I valori seguenti restituiti da questa funzione sono definiti nel file di intestazione WbemCli.h oppure è possibile definirli come costanti nel codice:
| Costante | Valore | Descrizione |
|---|---|---|
WBEM_E_ACCESS_DENIED |
0x80041003 | L'utente non dispone dell'autorizzazione per visualizzare una o più classi che la funzione può restituire. |
WBEM_E_FAILED |
0x80041001 | Si è verificato un errore non specificato. |
WBEM_E_INVALID_PARAMETER |
0x80041008 | Un parametro non è valido. |
WBEM_E_INVALID_CLASS |
0x80041010 | La query specifica una classe che non esiste. |
WBEMESS_E_REGISTRATION_TOO_PRECISE |
0x80042002 | È stata richiesta una precisione eccessiva nel recapito degli eventi. È necessario specificare una tolleranza di polling maggiore. |
WBEMESS_E_REGISTRATION_TOO_BROAD |
0x80042001 | La query richiede più informazioni rispetto a Quelle che possono essere fornite da Gestione Windows. Viene HRESULT restituito quando una query di evento genera una richiesta di polling di tutti gli oggetti in uno spazio dei nomi. |
WBEM_E_INVALID_QUERY |
0x80041017 | La query ha generato un errore di sintassi. |
WBEM_E_INVALID_QUERY_TYPE |
0x80041018 | Il linguaggio della query richiesta non è supportato. |
WBEM_E_QUOTA_VIOLATION |
0x8004106c | La query è troppo complessa. |
WBEM_E_OUT_OF_MEMORY |
0x80041006 | Memoria insufficiente per completare l’operazione. |
WBEM_E_SHUTTING_DOWN |
0x80041033 | WMI è stato probabilmente arrestato e riavviato. Chiamare di nuovo ConnectServerWmi . |
WBEM_E_TRANSPORT_FAILURE |
0x80041015 | Il collegamento RPC (Remote Procedure Call) tra il processo corrente e WMI non è riuscito. |
WBEM_E_UNPARSABLE_QUERY |
0x80041058 | Impossibile analizzare la query. |
WBEM_S_NO_ERROR |
0 | La chiamata di funzione ha avuto esito positivo. |
Commenti
Questa funzione esegue il wrapping di una chiamata al metodo IWbemServices::ExecNotificationQuery .
Al termine della funzione, il chiamante passa periodicamente l'oggetto restituito ppEnum alla funzione Next per verificare se sono disponibili eventi.
Esistono limiti al numero di AND parole chiave 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 WBEM_E_QUOTA_VIOLATION codice di errore (o 0x8004106c) di WMI come HRESULT valore. Il limite di parole chiave WQL dipende dalla complessità della query.
Se la chiamata di funzione ha esito negativo, è possibile ottenere informazioni aggiuntive sull'errore chiamando la funzione GetErrorInfo .
Requisiti
Piattaforme: vedere Requisiti di sistema di .NET Framework.
Intestazione: WMINet_Utils.idl
Versioni di .NET Framework: Disponibile dalla versione 4.7.2