VDS-Benachrichtigungen
[Ab Windows 8 und Windows Server 2012 wird die COM-Schnittstelle des Virtuellen Datenträgerdiensts von der Windows Storage Management-API abgelöst.]
Ein Anbieter kann eine Ereignisbenachrichtigung an VDS senden, und VDS kann die Benachrichtigung wiederum an Anwendungen weiterleiten. Das von VDS verwendete Benachrichtigungsmodell ähnelt dem Verbindungspunktmodell, das von COM-Objekten verwendet wird.
VDS generiert Dienstbenachrichtigungen für Ereignisse, z. B. eine Laufwerkbuchstabenzuweisung oder das Eintreffen eines nicht zugeordneten Datenträgers. Sobald VDS einen Datenträger einem Anbieter zuordnet, ist der Anbieter für die Generierung der zugehörigen Benachrichtigungen verantwortlich. Die folgende Abbildung zeigt die Schnittstellen und Methoden, die im VDS-Benachrichtigungsmodell verwendet werden.
Um Benachrichtigungen zu empfangen, registriert VDS seine IVdsAdviseSink-Schnittstelle beim Anbieterobjekt, indem die IVdsProviderPrivate::OnLoad-Methode aufgerufen und ein Zeiger auf die Schnittstelle übergeben wird. Wenn ein Benachrichtigungsereignis auftritt, z. B. das Eintreffen eines neuen Volumes oder Laufwerks, übergibt der Anbieter die entsprechende Benachrichtigungsstruktur als IVdsAdviseSink::OnNotify-Methodenparameter an VDS.
Der Prozess ist zwischen einer Anwendung und VDS ähnlich. Insbesondere zum Empfangen von Benachrichtigungen registriert eine Anwendung ihre IVdsAdviseSink-Schnittstelle bei VDS, indem sie die IVdsService::Advise-Methode aufruft und einen Zeiger auf die Schnittstelle übergibt. Wenn VDS eine Benachrichtigung von einem Anbieter empfängt, übergibt er die entsprechende Benachrichtigungsstruktur als IVdsAdviseSink::OnNotify-Methodenparameter an registrierte Anwendungen.
Hinweis
Eine Anwendung, die Advise aufruft, muss schließlich die IVdsService::Unadvise-Methode aufrufen. Im Idealfall sollte unadvise aufgerufen werden, sobald keine Benachrichtigungen mehr empfangen werden müssen.
Die folgende Tabelle enthält die vom Anbieter generierten Benachrichtigungen nach Objekttyp.
Object | Benachrichtigung | Wert | Link zur Ereignisbeschreibung |
---|---|---|---|
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 |
Lautstärke | VDS_NF_VOLUME_ARRIVE | 4 | VDS_VOLUME_NOTIFICATION |
Lautstärke | VDS_NF_VOLUME_DEPART | 5 | VDS_VOLUME_NOTIFICATION |
Lautstärke | VDS_NF_VOLUME_MODIFY | 6 | VDS_VOLUME_NOTIFICATION |
Lautstärke | VDS_NF_VOLUME_REBUILDING_PROGRESS | 7 | VDS_VOLUME_NOTIFICATION |
Datenträger | VDS_NF_DISK_ARRIVE | 8 | VDS_DISK_NOTIFICATION |
Datenträger | VDS_NF_DISK_DEPART | 9 | VDS_DISK_NOTIFICATION |
Datenträger | 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 |
Port | VDS_NF_PORT_MODIFY | 352 | VDS_PORT_NOTIFICATION |
Port | VDS_NF_PORT_REMOVED | 353 | VDS_PORT_NOTIFICATION |
Laufwerk | VDS_NF_DRIVE_ARRIVE | 105 | VDS_DRIVE_NOTIFICATION |
Laufwerk | VDS_NF_DRIVE_DEPART | 106 | VDS_DRIVE_NOTIFICATION |
Laufwerk | VDS_NF_DRIVE_MODIFY | 107 | VDS_DRIVE_NOTIFICATION |
Laufwerk | 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 generiert die verbleibenden Benachrichtigungen. In der folgenden Tabelle sind dienstbasierte Benachrichtigungskonstanten nach Kategorie aufgeführt.
Category | Benachrichtigung | Wert | Link zur Ereignisbeschreibung |
---|---|---|---|
Datenträger | VDS_NF_DISK_ARRIVE | 8 | VDS_DISK_NOTIFICATION |
Datenträger | VDS_NF_DISK_DEPART | 9 | VDS_DISK_NOTIFICATION |
Datenträger | VDS_NF_DISK_MODIFY | 10 | VDS_DISK_NOTIFICATION |
Laufwerkbuchstabe | VDS_NF_DRIVE_LETTER_FREE | 201 | VDS_DRIVE_LETTER_NOTIFICATION |
Laufwerkbuchstabe | VDS_NF_DRIVE_LETTER_ASSIGN | 202 | VDS_DRIVE_LETTER_NOTIFICATION |
Dateisystem | VDS_NF_FILE_SYSTEM_MODIFY | 203 | VDS_FILE_SYSTEM_NOTIFICATION |
Dateisystem | VDS_NF_FILE_SYSTEM_FORMAT_PROGRESS | 204 | VDS_FILE_SYSTEM_NOTIFICATION |
Lautstärke | VDS_NF_MOUNT_POINTS_CHANGE | 205 | VDS_MOUNT_POINT_NOTIFICATION |
Zugehörige Themen