Método IWbemServices::ExecNotificationQueryAsync (wbemcli.h)
El método IWbemServices::ExecNotificationQueryAsync realiza la misma tarea que IWbemServices::ExecNotificationQuery , salvo que se proporcionan eventos al controlador de respuesta especificado hasta que se llama a CancelAsyncCall para detener la notificación de eventos.
Sintaxis
HRESULT ExecNotificationQueryAsync(
[in] const BSTR strQueryLanguage,
[in] const BSTR strQuery,
[in] long lFlags,
[in] IWbemContext *pCtx,
[in] IWbemObjectSink *pResponseHandler
);
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".
[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 puede ser el siguiente valor.
WBEM_FLAG_SEND_STATUS
Esta marca registra con Administración de Windows una solicitud para recibir informes de estado intermedios a través de la implementación del cliente de IWbemObjectSink::SetStatus. La implementación del proveedor debe admitir informes de estado intermedios para que esta marca cambie el comportamiento.
[in] pCtx
Normalmente NULL. De lo contrario, se trata de un puntero a un objeto IWbemContext que puede usar el proveedor que devuelve 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.
[in] pResponseHandler
Puntero a la implementación del autor de la llamada de IWbemObjectSink. Este controlador recibe los objetos del conjunto de resultados de la consulta a medida que están disponibles. Para dejar de recibir eventos, el autor de la llamada debe llamar a IWbemServices::CancelAsyncCall con el mismo valor de puntero para pResponseHandler. A medida que los eventos están disponibles, se llama a la implementación IWbemObjectSink::Indicate para entregar los objetos de evento. No se llama al método IWbemObjectSink::SetStatus en ningún momento, porque no hay ninguna condición final o de terminación. La llamada se ejecuta indefinidamente hasta que se cancela. Si se devuelve algún código de error, no se usa el puntero IWbemObjectSink proporcionado. Si se devuelve WBEM_S_NO_ERROR , se llama a la implementación IWbemObjectSink del usuario para indicar el resultado de la operación. Administración de Windows solo llama a AddRef en el puntero en los casos en los que WBEM_S_NO_ERROR devuelve. En los casos en los que se devuelve un código de error, el recuento de referencias es el mismo que en la entrada. Para obtener una explicación detallada de este parámetro, vea Llamar a un método.
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.
Otros códigos de error se devuelven al receptor de objetos especificado por el parámetro pResponseHandler .
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
Se llama al método IWbemObjectSink::SetStatus para indicar el final del conjunto de resultados. También se puede llamar sin llamadas intermedias a IWbemObjectSink::Indicar si se producen condiciones de error.
Dado que es posible que la devolución de llamada no se devuelva en el mismo nivel de autenticación que requiere el cliente, se recomienda usar la semisynchronous en lugar de la comunicación asincrónica. Si necesita comunicación asincrónica, consulte Llamar a un método.
Para obtener más información sobre el uso de métodos de forma semiincrónica, vea IWbemServices::ExecNotificationQuery y Llamada a un método.
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 de 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 |