Notifiche VDS
[A partire da Windows 8 e Windows Server 2012, l'interfaccia COM del servizio disco virtuale viene sostituita dall'API gestione archiviazione di Windows.]
Un provider può inviare una notifica di evento a VDS e VDS può a sua volta inoltrare la notifica alle applicazioni. Il modello di notifica usato da VDS è simile al modello di punto di connessione utilizzato dagli oggetti COM.
VDS genera notifiche del servizio per eventi come un'assegnazione di lettera di unità o l'arrivo di un disco non allocato. Quando VDS alloca un disco a un provider, il provider è responsabile della generazione delle notifiche associate. La figura seguente mostra le interfacce e i metodi usati nel modello di notifica VDS.
Per ricevere notifiche, VDS registra l'interfaccia IVdsAdviseSink con l'oggetto provider chiamando il metodo IVdsProviderPrivate::OnLoad e passando un puntatore all'interfaccia. Quando si verifica un evento di notifica, ad esempio l'arrivo di un nuovo volume o di un'unità, il provider passa la struttura di notifica appropriata a VDS come parametro del metodo IVdsAdviseSink::OnNotify .
Il processo è simile tra un'applicazione e un disco rigido virtuale. In particolare, per ricevere notifiche, un'applicazione registra la propria interfaccia IVdsAdviseSink con VDS chiamando il metodo IVdsService::Advise e passando un puntatore all'interfaccia. Quando VDS riceve una notifica da un provider, passa la struttura di notifica appropriata alle applicazioni registrate come parametro del metodo IVdsAdviseSink::OnNotify .
Nota
Un'applicazione che chiama Advise deve infine chiamare il metodo IVdsService::Unadvise . Idealmente, dovrebbe chiamare Unadvise non appena non deve più ricevere notifiche.
La tabella seguente elenca le notifiche generate dal provider in base al tipo di oggetto.
Oggetto | Notifica | Valore | Collegamento alla descrizione dell'evento |
---|---|---|---|
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 |
Disco | VDS_NF_DISK_ARRIVE | 8 | VDS_DISK_NOTIFICATION |
Disco | VDS_NF_DISK_DEPART | 9 | VDS_DISK_NOTIFICATION |
Disco | 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 |
Controller | VDS_NF_CONTROLLER_ARRIVE | 103 | VDS_CONTROLLER_NOTIFICATION |
Controller | VDS_NF_CONTROLLER_DEPART | 104 | VDS_CONTROLLER_NOTIFICATION |
Controller | VDS_NF_CONTROLLER_MODIFY | 350 | VDS_CONTROLLER_NOTIFICATION |
Controller | VDS_NF_CONTROLLER_REMOVED | 351 | VDS_CONTROLLER_NOTIFICATION |
Porta | VDS_NF_PORT_MODIFY | 352 | VDS_PORT_NOTIFICATION |
Porta | VDS_NF_PORT_REMOVED | 353 | VDS_PORT_NOTIFICATION |
Unità | VDS_NF_DRIVE_ARRIVE | 105 | VDS_DRIVE_NOTIFICATION |
Unità | VDS_NF_DRIVE_DEPART | 106 | VDS_DRIVE_NOTIFICATION |
Unità | VDS_NF_DRIVE_MODIFY | 107 | VDS_DRIVE_NOTIFICATION |
Unità | VDS_NF_DRIVE_REMOVED | 354 | VDS_DRIVE_NOTIFICATION |
LUN | VDS_NF_LUN_ARRIVE | 108 | VDS_LUN_NOTIFICATION |
LUN | VDS_NF_LUN_DEPART | 109 | VDS_LUN_NOTIFICATION |
LUN | VDS_NF_LUN_MODIFY | 110 | VDS_LUN_NOTIFICATION |
VDS genera le notifiche rimanenti. Nella tabella seguente sono elencate le costanti di notifica basate sul servizio per categoria.
Category | Notifica | Valore | Collegamento alla descrizione dell'evento |
---|---|---|---|
Disco | VDS_NF_DISK_ARRIVE | 8 | VDS_DISK_NOTIFICATION |
Disco | VDS_NF_DISK_DEPART | 9 | VDS_DISK_NOTIFICATION |
Disco | VDS_NF_DISK_MODIFY | 10 | VDS_DISK_NOTIFICATION |
Lettera unità | VDS_NF_DRIVE_LETTER_FREE | 201 | VDS_DRIVE_LETTER_NOTIFICATION |
Lettera unità | VDS_NF_DRIVE_LETTER_ASSIGN | 202 | VDS_DRIVE_LETTER_NOTIFICATION |
File system | VDS_NF_FILE_SYSTEM_MODIFY | 203 | VDS_FILE_SYSTEM_NOTIFICATION |
File system | VDS_NF_FILE_SYSTEM_FORMAT_PROGRESS | 204 | VDS_FILE_SYSTEM_NOTIFICATION |
Volume | VDS_NF_MOUNT_POINTS_CHANGE | 205 | VDS_MOUNT_POINT_NOTIFICATION |
Argomenti correlati