VDS Notifications
[À 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.]
Un fournisseur peut envoyer une notification d’événement à VDS, et VDS peut à son tour transférer la notification aux applications. Le modèle de notification utilisé par VDS ressemble au modèle de point de connexion utilisé par les objets COM.
VDS génère des notifications de service pour des événements tels qu’une affectation de lettre de lecteur ou l’arrivée d’un disque non alloué. Une fois que VDS alloue un disque à un fournisseur, le fournisseur est chargé de générer les notifications associées. L’illustration qui suit montre les interfaces et les méthodes utilisées dans le modèle de notification VDS.
Pour recevoir des notifications, VDS inscrit son interface IVdsAdviseSink auprès de l’objet fournisseur en appelant la méthode IVdsProviderPrivate::OnLoad et en passant un pointeur vers l’interface. Lorsqu’un événement de notification se produit, tel que l’arrivée d’un nouveau volume ou d’un nouveau lecteur, le fournisseur transmet la structure de notification appropriée à VDS en tant que paramètre de méthode IVdsAdviseSink::OnNotify .
Le processus est similaire entre une application et un VDS. Plus précisément, pour recevoir des notifications, une application inscrit son interface IVdsAdviseSink auprès de VDS en appelant la méthode IVdsService::Advise et en passant un pointeur vers l’interface. Lorsque VDS reçoit une notification d’un fournisseur, il transmet la structure de notification appropriée aux applications inscrites en tant que paramètre de méthode IVdsAdviseSink::OnNotify .
Notes
Une application qui appelle Advise doit finalement appeler la méthode IVdsService::Unadvise . Dans l’idéal, il doit appeler Unadvise dès qu’il n’a plus besoin de recevoir de notifications.
Le tableau qui suit répertorie les notifications générées par le fournisseur par type d’objet.
Object | Notification | Valeur | Lien vers la description de l’événement |
---|---|---|---|
Pack | VDS_NF_PACK_ARRIVE | 1 | VDS_PACK_NOTIFICATION |
Pack | VDS_NF_PACK_DEPART | 2 | VDS_PACK_NOTIFICATION |
Pack | VDS_NF_PACK_MODIFY | 3 | VDS_PACK_NOTIFICATION |
Volume | VDS_NF_VOLUME_ARRIVE | 4 | VDS_VOLUME_NOTIFICATION |
Volume | VDS_NF_VOLUME_DEPART | 5 | VDS_VOLUME_NOTIFICATION |
Volume | VDS_NF_VOLUME_MODIFY | 6 | VDS_VOLUME_NOTIFICATION |
Volume | VDS_NF_VOLUME_REBUILDING_PROGRESS | 7 | VDS_VOLUME_NOTIFICATION |
Disque | VDS_NF_DISK_ARRIVE | 8 | VDS_DISK_NOTIFICATION |
Disque | VDS_NF_DISK_DEPART | 9 | VDS_DISK_NOTIFICATION |
Disque | VDS_NF_DISK_MODIFY | 10 | VDS_DISK_NOTIFICATION |
Partition | VDS_NF_PARTITION_ARRIVE | 11 | VDS_PARTITION_NOTIFICATION |
Partition | VDS_NF_PARTITION_DEPART | 12 | VDS_PARTITION_NOTIFICATION |
Partition | VDS_NF_PARTITION_MODIFY | 13 | VDS_PARTITION_NOTIFICATION |
Subsystem | VDS_NF_SUB_SYSTEM_ARRIVE | 101 | VDS_SUB_SYSTEM_NOTIFICATION |
Subsystem | VDS_NF_SUB_SYSTEM_DEPART | 102 | VDS_SUB_SYSTEM_NOTIFICATION |
Subsystem | VDS_NF_SUB_SYSTEM_MODIFY | 151 | VDS_SUB_SYSTEM_NOTIFICATION |
Contrôleur | VDS_NF_CONTROLLER_ARRIVE | 103 | VDS_CONTROLLER_NOTIFICATION |
Contrôleur | VDS_NF_CONTROLLER_DEPART | 104 | VDS_CONTROLLER_NOTIFICATION |
Contrôleur | VDS_NF_CONTROLLER_MODIFY | 350 | VDS_CONTROLLER_NOTIFICATION |
Contrôleur | VDS_NF_CONTROLLER_REMOVED | 351 | VDS_CONTROLLER_NOTIFICATION |
Port | VDS_NF_PORT_MODIFY | 352 | VDS_PORT_NOTIFICATION |
Port | VDS_NF_PORT_REMOVED | 353 | VDS_PORT_NOTIFICATION |
Lecteur | VDS_NF_DRIVE_ARRIVE | 105 | VDS_DRIVE_NOTIFICATION |
Lecteur | VDS_NF_DRIVE_DEPART | 106 | VDS_DRIVE_NOTIFICATION |
Lecteur | VDS_NF_DRIVE_MODIFY | 107 | VDS_DRIVE_NOTIFICATION |
Lecteur | VDS_NF_DRIVE_REMOVED | 354 | VDS_DRIVE_NOTIFICATION |
Numéro d'unité logique | VDS_NF_LUN_ARRIVE | 108 | VDS_LUN_NOTIFICATION |
Numéro d'unité logique | VDS_NF_LUN_DEPART | 109 | VDS_LUN_NOTIFICATION |
Numéro d'unité logique | VDS_NF_LUN_MODIFY | 110 | VDS_LUN_NOTIFICATION |
VDS génère les notifications restantes. Le tableau suivant répertorie les constantes de notification basées sur le service par catégorie.
Category | Notification | Valeur | Lien vers la description de l’événement |
---|---|---|---|
Disque | VDS_NF_DISK_ARRIVE | 8 | VDS_DISK_NOTIFICATION |
Disque | VDS_NF_DISK_DEPART | 9 | VDS_DISK_NOTIFICATION |
Disque | VDS_NF_DISK_MODIFY | 10 | VDS_DISK_NOTIFICATION |
Lettre de lecteur | VDS_NF_DRIVE_LETTER_FREE | 201 | VDS_DRIVE_LETTER_NOTIFICATION |
Lettre de lecteur | VDS_NF_DRIVE_LETTER_ASSIGN | 202 | VDS_DRIVE_LETTER_NOTIFICATION |
Système de fichiers | VDS_NF_FILE_SYSTEM_MODIFY | 203 | VDS_FILE_SYSTEM_NOTIFICATION |
Système de fichiers | VDS_NF_FILE_SYSTEM_FORMAT_PROGRESS | 204 | VDS_FILE_SYSTEM_NOTIFICATION |
Volume | VDS_NF_MOUNT_POINTS_CHANGE | 205 | VDS_MOUNT_POINT_NOTIFICATION |
Rubriques connexes