Compartir a través de


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

IWbemServices::ExecNotificationQueryAsync

Consulta con WQL

Recepción de eventos durante la duración de la aplicación

Recuperación de un código de error