Método IWbemServices::ExecNotificationQuery (wbemcli.h)
El método IWbemServices::ExecNotificationQuery ejecuta una consulta para recibir eventos. La llamada se devuelve inmediatamente y el usuario puede sondear el enumerador devuelto en busca de eventos a medida que llegan. Si se libera el enumerador que se devuelve, se cancelará la consulta.
Sintaxis
HRESULT ExecNotificationQuery(
[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. No puede ser NULL. Actualmente, solo se admite el lenguaje de consulta WMI (WQL).
[in] strQuery
BSTR válido que contiene el texto de la consulta relacionada con eventos. 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
Este parámetro debe establecerse en WBEM_FLAG_RETURN_IMMEDIATELY y WBEM_FLAG_FORWARD_ONLY o se produce un error en la llamada.
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_RETURN_IMMEDIATELY
El usuario debe especificar esta marca o se produce un error en la llamada. Esto se debe a que los eventos se reciben de manera continua, lo que significa que el usuario debe sondear el enumerador que se devuelve. Bloquear esta llamada indefinidamente mientras espera un posible evento bloquea el subproceso durante un período de tiempo indefinido. Para más información, vea Llamada a un método.
[in] pCtx
Normalmente NULL. De lo contrario, se trata de un puntero a un objeto IWbemContext que puede usar el proveedor que proporciona los eventos solicitados. 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, este parámetro recibe el enumerador que permite al autor de la llamada recuperar las instancias del conjunto de resultados de la consulta. El autor de la llamada llama periódicamente a IEnumWbemClassObject::Next para ver si hay algún evento disponible. Tenga en cuenta que, en este uso, Reset no mueve el enumerador de nuevo al principio de la secuencia de eventos; no tiene ningún efecto. El parámetro puede seguir recibiendo eventos hasta que se llame a Release en el enumerador devuelto.
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
Existe un límite en el número de palabras clave AND y OR que pueden utilizarse en las consultas WQL. Un gran número de palabras clave WQL utilizadas 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
Requisito | Value |
---|---|
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::ExecNotificationQueryAsync