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 |