Método IVdsAdviseSink::OnNotify (vds.h)

[A partir de Windows 8 y Windows Server 2012, la interfaz COM del servicio de disco virtual se sustituye por la API de administración de almacenamiento de Windows.]

Pasa notificaciones de proveedores a VDS y de VDS a aplicaciones.

Sintaxis

HRESULT OnNotify(
  [in] LONG             lNumberOfNotifications,
  [in] VDS_NOTIFICATION *pNotificationArray
);

Parámetros

[in] lNumberOfNotifications

Número de notificaciones especificadas en pNotificationArray.

[in] pNotificationArray

Puntero a una matriz de estructuras VDS_NOTIFICATION . Un proveedor asigna la memoria de la matriz cuando el proveedor llama al servicio; el servicio libera la matriz. VDS asigna la matriz cuando el servicio llama a una aplicación. En este caso, los llamadores deben liberar la matriz mediante la función CoTaskMemFree .

Valor devuelto

Este método puede devolver valores HRESULT estándar, como E_INVALIDARG o E_OUTOFMEMORY, y valores devueltos específicos de VDS. También puede devolver códigos de error del sistema convertidos mediante la macro HRESULT_FROM_WIN32 . Los errores se pueden originar en VDS en sí o en el proveedor de VDS subyacente que se está usando. Entre los posibles valores devueltos se incluyen los siguientes.

Código devuelto Descripción
S_FALSE
VDS devuelve este valor a un proveedor si el servicio no se inicializa completamente cuando el proveedor llama a este método, o si el servicio pierde algunas notificaciones.

Comentarios

Una aplicación implementa este método para recibir notificaciones de VDS. Algunas de estas notificaciones se originan en VDS; otros son notificaciones de proveedor reenviadas por VDS.

VDS mantiene una memoria caché de información sobre las propiedades de todos los objetos VDS, como subsistemas y controladores. Cada vez que se produce un cambio que desencadena una notificación, esta memoria caché se actualiza automáticamente. Además, llamar a IVdsHwProvider::Refresh o IVdsService::Refresh en respuesta a una notificación de VDS podría provocar que se envíe un bucle infinito de notificaciones. Por estos motivos, una aplicación no debe llamar a IVdsHwProvider::Refresh o IVdsService::Refresh en su implementación de este método.

En el caso de los proveedores que usan este método para enviar notificaciones, se recomienda agrupar las notificaciones que se originan en un único evento. Por ejemplo, cuando se elimina un LUN, envíe VDS_NF_DRIVE_MODIFY notificaciones para todas las unidades afectadas juntas.

Requisitos

   
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado vds.h
Library Uuid.lib

Consulte también

IVdsAdviseSink

IVdsHwProvider::Refresh

IVdsService::Advise

IVdsService::Refresh

IVdsService::Unadvise

Notificaciones de VDS

VDS_NOTIFICATION