Partager via


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

[À compter de Windows 8 et Windows Server 2012, l’interface COM du service de disque virtuel est remplacée par l’API Gestion du stockage Windows.]

Transmet des notifications des fournisseurs à VDS et de VDS aux applications.

Syntaxe

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

Paramètres

[in] lNumberOfNotifications

Nombre de notifications spécifiées dans pNotificationArray.

[in] pNotificationArray

Pointeur vers un tableau de structures VDS_NOTIFICATION . Un fournisseur alloue la mémoire pour le tableau lorsque le fournisseur appelle le service ; le service libère le tableau. VDS alloue le tableau lorsque le service appelle une application. Dans ce cas, les appelants doivent libérer le tableau à l’aide de la fonction CoTaskMemFree .

Valeur retournée

Cette méthode peut retourner des valeurs HRESULT standard, telles que E_INVALIDARG ou E_OUTOFMEMORY, et des valeurs de retour spécifiques à VDS. Il peut également retourner des codes d’erreur système convertis à l’aide de la macro HRESULT_FROM_WIN32 . Les erreurs peuvent provenir de VDS lui-même ou du fournisseur VDS sous-jacent utilisé. Les valeurs de retour possibles sont les suivantes.

Code de retour Description
S_FALSE
VDS retourne cette valeur à un fournisseur si le service n’est pas entièrement initialisé lorsque le fournisseur appelle cette méthode, ou si certaines notifications sont perdues par le service.

Remarques

Une application implémente cette méthode pour recevoir des notifications de VDS. Certaines de ces notifications proviennent de VDS ; d’autres sont des notifications de fournisseur qui sont transférées par VDS.

VDS conserve un cache d’informations sur les propriétés de tous les objets VDS, tels que les sous-systèmes et les contrôleurs. Chaque fois qu’une modification se produit et déclenche une notification, ce cache est mis à jour automatiquement. En outre, l’appel d’IVdsHwProvider::Refresh ou IVdsService::Refresh en réponse à une notification VDS peut entraîner l’envoi d’une boucle de notifications sans fin. Pour ces raisons, une application ne doit pas appeler IVdsHwProvider::Refresh ou IVdsService::Refresh dans son implémentation de cette méthode.

Pour les fournisseurs qui utilisent cette méthode pour envoyer des notifications, il est recommandé de regrouper les notifications provenant d’un événement unique. Par exemple, lorsqu’une LUN est supprimée, envoyez VDS_NF_DRIVE_MODIFY notifications pour tous les lecteurs affectés ensemble.

Configuration requise

   
Client minimal pris en charge Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
Plateforme cible Windows
En-tête vds.h
Bibliothèque Uuid.lib

Voir aussi

IVdsAdviseSink

IVdsHwProvider::Refresh

IVdsService::Advise

IVdsService::Refresh

IVdsService::Unadvise

VDS Notifications

VDS_NOTIFICATION