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 il recupero di oggetti.
Nota
Questa API è solo per uso interno. Non è destinata all'uso dal codice dello sviluppatore.
Sintassi
HRESULT ExecQueryWmi (
[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 di flag che influiscono sul comportamento di questa funzione. I valori seguenti sono definiti nel file di intestazione WbemCli.h oppure è possibile definirli come costanti nel codice:
| Costante | Valore | Descrizione |
|---|---|---|
WBEM_FLAG_USE_AMENDED_QUALIFIERS |
0x20000 | Se impostato, la funzione recupera i qualificatori modificati archiviati nello spazio dei nomi localizzato delle impostazioni locali della connessione corrente. Se non impostato, la funzione recupera solo i qualificatori archiviati nello spazio dei nomi immediato. |
WBEM_FLAG_RETURN_IMMEDIATELY |
0x10 | Il flag causa una chiamata semisynchronous. |
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. |
WBEM_FLAG_BIDIRECTIONAL |
0 | WMI mantiene i puntatori agli oggetti nell'enumerazione fino a quando non vengono rilasciati. |
WBEM_FLAG_ENSURE_LOCATABLE |
0x100 | Assicura che tutti gli oggetti restituiti dispongano di informazioni sufficienti in modo che le proprietà di sistema, ad esempio __PATH, __RELPATH e __SERVER, non nullsiano . |
WBEM_FLAG_PROTOTYPE |
2 | Questo flag è utilizzato per la creazione di prototipi. Non esegue la query e restituisce invece un oggetto simile a un oggetto risultato tipico. |
WBEM_FLAG_DIRECT_READ |
0x200 | Determina l'accesso diretto al provider per la classe specificata, indipendentemente dalla relativa classe padre o da eventuali sottoclassi. |
I flag consigliati sono WBEM_FLAG_RETURN_IMMEDIATELY e WBEM_FLAG_FORWARD_ONLY per ottenere prestazioni ottimali.
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 le classi richieste.
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. La query può avere un set di risultati con zero istanze. 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_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_NOT_FOUND |
0x80041002 | La query specifica una classe che non esiste. |
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::ExecQuery .
Questa funzione elabora la query specificata nel strQuery parametro e crea un enumeratore tramite il quale il chiamante può accedere ai risultati della query. L'enumeratore è un puntatore a un'interfaccia IEnumWbemClassObject ; i risultati della query sono istanze di oggetti classe resi disponibili tramite l'interfaccia IWbemClassObject .
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