Método IWbemServices::ExecQuery (wbemcli.h)

El método IWbemServices::ExecQuery ejecuta una consulta para recuperar objetos.

Para conocer los tipos válidos de consultas que se pueden realizar, consulte Consulta con WQL.

Sintaxis

HRESULT ExecQuery(
  [in]  const BSTR           strQueryLanguage,
  [in]  const BSTR           strQuery,
  [in]  long                 lFlags,
  [in]  IWbemContext         *pCtx,
  [out] IEnumWbemClassObject **ppEnum
);

Parámetros

[in] strQueryLanguage

BSTR válido que contiene uno de los lenguajes de consulta admitidos por la administración de Windows. Debe ser "WQL", el acrónimo del lenguaje de consulta WMI.

[in] strQuery

BSTR válido que contiene el texto de la consulta. Este parámetro no puede ser NULL. Para más información sobre la creación de cadenas de consulta WMI, vea Consulta con WQL y la referencia WQL.

[in] lFlags

Las marcas siguientes afectan al comportamiento de este método. El valor sugerido para este parámetro es WBEM_FLAG_RETURN_IMMEDIATELY y WBEM_FLAG_FORWARD_ONLY para obtener el mejor rendimiento.

WBEM_FLAG_USE_AMENDED_QUALIFIERS

Si se establece esta marca, WMI recupera los calificadores modificados almacenados en el espacio de nombres localizado de la configuración regional de la conexión actual. Si no se establece, solo se recuperan los calificadores almacenados en el espacio de nombres inmediato.

WBEM_FLAG_FORWARD_ONLY

Esta marca hace que se devuelva un enumerador de solo avance. Los enumeradores de solo avance suelen ser mucho más rápidos y usan menos memoria que los enumeradores convencionales, pero no permiten llamadas a Clone o Reset.

WBEM_FLAG_BIDIRECTIONAL

Esta marca hace que La administración de Windows conserve punteros a objetos de la enumeración hasta que el cliente libere el enumerador.

WBEM_FLAG_RETURN_IMMEDIATELY

Esta marca hace que sea una llamada semiincrónica. Para más información, vea Llamada a un método.

WBEM_FLAG_ENSURE_LOCATABLE

Esta marca garantiza que los objetos devueltos tengan suficiente información para que las propiedades del sistema, como __PATH, __RELPATH y __SERVER, no sean NULL.

WBEM_FLAG_PROTOTYPE

Este marcador se utiliza para los prototipos. No ejecuta la consulta y, en su lugar, devuelve un objeto similar a un objeto de resultado típico.

WBEM_FLAG_DIRECT_READ

Esta marca hace que el acceso directo al proveedor de la clase especificada sin tener en cuenta su clase o subclases primarias.

[in] pCtx

Normalmente NULL. De lo contrario, se trata de un puntero a un objeto IWbemContext que puede usar el proveedor que proporciona las clases o instancias solicitadas. Los valores del objeto de contexto deben especificarse en la documentación del proveedor en cuestión. Para obtener más información sobre este parámetro, vea Realizar llamadas a WMI.

[out] ppEnum

Si no se produce ningún error, recibe el enumerador que permite al autor de la llamada recuperar las instancias del conjunto de resultados de la consulta. No es un error que la consulta tenga un conjunto de resultados con 0 instancias. Esto solo se determina intentando recorrer en iteración las instancias de . Este objeto devuelve con un recuento de referencias positivo. El autor de la llamada debe llamar a Release cuando el objeto ya no sea necesario.

Valor devuelto

Este método devuelve un valor HRESULT que indica el estado de la llamada al método. En la lista siguiente se muestra el valor contenido en un HRESULT.

Si se produce un error, puede obtener cualquier información disponible de la función COM GetErrorInfo.

También se pueden devolver códigos de error específicos de COM si los problemas de red provocan la pérdida de la conexión remota a la administración de Windows.

Comentarios

El método IWbemServices::ExecQuery procesa la consulta especificada en el parámetro strQuery y crea un enumerador a través del cual el autor de la llamada puede tener acceso a los resultados de la consulta. El enumerador es un puntero a una interfaz IEnumWbemClassObject; los resultados de la consulta son instancias de objetos de clase disponibles mediante la interfaz IWbemClassObject.

Hay límites para el número de palabras clave "AND" y "OR" que se pueden usar en las consultas WQL. Un gran número de palabras clave WQL usadas en una consulta compleja puede hacer que WMI devuelva el código de error WBEM_E_QUOTA_VIOLATION como valor HRESULT. El límite de palabras clave WQL que pueda usarse dependerá de la complejidad de la consulta.

Requisitos

   
Cliente mínimo compatible Windows Vista
Servidor mínimo compatible Windows Server 2008
Plataforma de destino Windows
Encabezado wbemcli.h (include Wbemidl.h)
Library Wbemuuid.lib
Archivo 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

Consulte también

IWbemServices

IWbemServices::ExecQueryAsync

Consulta con WQL