Método IWbemObjectSink::Indicate (wbemcli.h)

Un origen llama al método Indicate para proporcionar una notificación. Normalmente, WMI llama a la implementación de cliente de esta interfaz después de que el cliente ejecute uno de los métodos asincrónicos de IWbemServices. En otros casos, varios tipos de proveedores llaman a una implementación exportada por WMI para entregar eventos. Por lo tanto, es posible que el código de cliente tenga que implementar esta interfaz en algunos casos y usar la implementación de otro componente en otros casos.

Use esta interfaz y método junto con los métodos asincrónicos de la interfaz IWbemServices .

Los clientes y proveedores deben implementar esta interfaz para recibir notificaciones o para ejecutar los métodos asincrónicos de IWbemServices. Para más información, vea Llamada a un método.

Sintaxis

HRESULT Indicate(
  [in] long             lObjectCount,
  [in] IWbemClassObject **apObjArray
);

Parámetros

[in] lObjectCount

Número de objetos de la siguiente matriz de punteros.

[in] apObjArray

Matriz de punteros a interfaces IWbemClassObject . La propia memoria de matriz es de solo lectura y es propiedad del autor de la llamada del método . Dado que se trata de un parámetro in, la implementación tiene la opción de llamar a IWbemClassObject::AddRef en cualquier puntero de objeto de la matriz y mantenerla antes de devolver si los objetos se usarán después de que se haya devuelto el método, de acuerdo con las reglas COM. Si los objetos solo se usan durante la llamada a Indicate , no es necesario llamar a AddRef en cada puntero de objeto.

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.

Comentarios

Al implementar un receptor de suscripción de eventos (IWbemObjectSink o IWbemEventSink), no llame a WMI desde el método Indicate en el objeto receptor. Por ejemplo, llamar a IWbemServices::CancelAsyncCall desde una implementación de Indicate puede interferir con el estado WMI. Para cancelar una suscripción de evento, establezca una marca y llame a IWbemServices::CancelAsyncCall desde otro subproceso u objeto. En el caso de las implementaciones que no están relacionadas con un receptor de eventos, como las recuperaciones de objetos, enumeraciones y consultas, puede volver a llamar a WMI.

Las implementaciones del receptor deben procesar la notificación de eventos en 100 ms porque el subproceso WMI que entrega la notificación de eventos no puede realizar otro trabajo hasta que el objeto receptor haya completado el procesamiento. Si la notificación requiere una gran cantidad de procesamiento, el receptor puede usar una cola interna para otro subproceso a fin de controlar el procesamiento.

Cuando un proveedor de eventos llama a Indicar para proporcionar un evento, se puede producir un error en la llamada a WBEM_E_SERVER_TOO_BUSY. El proveedor puede optar por responder a este mensaje si vuelve a activar el evento.

Nota Dado que es posible que la devolución de llamada al receptor 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. Para más información, consulte Llamada a un método.
 

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

Consulte también

IWbemObjectSink

IWbemObjectSink::SetStatus

IWbemObjectSinkEx

IWbemServices::ExecQueryAsync