Condividi tramite


Metodo IWbemServices::ExecQuery (wbemcli.h)

Il metodo IWbemServices::ExecQuery esegue una query per recuperare gli oggetti.

Per i tipi validi di query che è possibile eseguire, vedere Esecuzione di query con WQL.

Sintassi

HRESULT ExecQuery(
  [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. Deve essere "WQL", acronimo di WMI Query Language.

[in] strQuery

BSTR valido che contiene il testo della query. Questo parametro 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

I flag seguenti influiscono sul comportamento di questo metodo. Il valore consigliato per questo parametro è WBEM_FLAG_RETURN_IMMEDIATELY e WBEM_FLAG_FORWARD_ONLY per ottenere prestazioni ottimali.

WBEM_FLAG_USE_AMENDED_QUALIFIERS

Se questo flag è impostato, WMI recupera i qualificatori modificati archiviati nello spazio dei nomi localizzato delle impostazioni locali della connessione corrente. Se non impostato, vengono recuperati solo i qualificatori archiviati nello spazio dei nomi immediato.

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_BIDIRECTIONAL

Questo flag fa sì che Gestione Windows mantenga i puntatori agli oggetti dell'enumerazione fino a quando il client non rilascia l'enumeratore.

WBEM_FLAG_RETURN_IMMEDIATELY

Questo flag fa sì che si tratta di una chiamata semiincrona. Per altre informazioni, vedere Chiamata di un metodo.

WBEM_FLAG_ENSURE_LOCATABLE

Questo flag garantisce che tutti gli oggetti restituiti dispongano di informazioni sufficienti in modo che le proprietà di sistema, ad esempio __PATH, __RELPATH e __SERVER, siano non NULL.

WBEM_FLAG_PROTOTYPE

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

Questo flag causa l'accesso diretto al provider per la classe specificata senza alcun riguardo alla relativa classe padre o sottoclassi.

[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 le classi o le istanze richieste. 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, riceve l'enumeratore che consente al chiamante di recuperare le istanze nel set di risultati della query. Non è un errore che la query abbia un set di risultati con 0 istanze. Questa operazione viene determinata solo tentando di scorrere le istanze. Questo oggetto restituisce con un conteggio dei riferimenti positivi. Il chiamante deve chiamare Release quando l'oggetto non è più necessario.

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

Il metodo IWbemServices::ExecQuery elabora la query specificata nel parametro strQuery 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 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

Vedi anche

Iwbemservices

IWbemServices::ExecQueryAsync

Esecuzione di query con WQL