VDS-Benachrichtigungen
[Ab Windows 8 und Windows Server 2012 wird die Virtual Disk Service COM-Schnittstelle von der Windows Storage Management APIersetzt.]
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 wie eine Laufwerkbuchstabenzuweisung oder das Eintreffen eines nicht zugewiesenen Datenträgers. Sobald VDS einem Anbieter einen Datenträger zuweist, ist der Anbieter für das Generieren 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 mit dem Anbieterobjekt, indem die IVdsProviderPrivate::OnLoad--Methode aufgerufen und ein Zeiger an 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 ähnelt einer Anwendung und VDS. Speziell zum Empfangen von Benachrichtigungen registriert eine Anwendung ihre IVdsAdviseSink- Schnittstelle mit VDS, indem sie die IVdsService::Advise Methode aufruft und einen Zeiger an die Schnittstelle übergibt. Wenn VDS eine Benachrichtigung von einem Anbieter empfängt, übergibt es die entsprechende Benachrichtigungsstruktur an registrierte Anwendungen als IVdsAdviseSink::OnNotify Methodenparameter.
Anmerkung
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.
In der folgenden Tabelle sind die vom Anbieter generierten Benachrichtigungen nach Objekttyp aufgeführt.
Objekt | Benachrichtigung | Wert | Link zur Ereignisbeschreibung |
---|---|---|---|
Packen | VDS_NF_PACK_ARRIVE | 1 | VDS_PACK_NOTIFICATION |
Packen | VDS_NF_PACK_DEPART | 2 | VDS_PACK_NOTIFICATION |
Packen | VDS_NF_PACK_MODIFY | 3 | VDS_PACK_NOTIFICATION |
Volumen | VDS_NF_VOLUME_ARRIVE | 4 | VDS_VOLUME_NOTIFICATION |
Volumen | VDS_NF_VOLUME_DEPART | 5 | VDS_VOLUME_NOTIFICATION |
Volumen | VDS_NF_VOLUME_MODIFY | 6 | VDS_VOLUME_NOTIFICATION |
Volumen | VDS_NF_VOLUME_REBUILDING_PROGRESS | 7 | VDS_VOLUME_NOTIFICATION |
Scheibe | VDS_NF_DISK_ARRIVE | 8 | VDS_DISK_NOTIFICATION |
Scheibe | VDS_NF_DISK_DEPART | 9 | VDS_DISK_NOTIFICATION |
Scheibe | VDS_NF_DISK_MODIFY | 10 | VDS_DISK_NOTIFICATION |
Trennwand | VDS_NF_PARTITION_ARRIVE | 11 | VDS_PARTITION_NOTIFICATION |
Trennwand | VDS_NF_PARTITION_DEPART | 12 | VDS_PARTITION_NOTIFICATION |
Trennwand | 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 |
Hafen | VDS_NF_PORT_MODIFY | 352 | VDS_PORT_NOTIFICATION |
Hafen | VDS_NF_PORT_REMOVED | 353 | VDS_PORT_NOTIFICATION |
Treiben | VDS_NF_DRIVE_ARRIVE | 105 | VDS_DRIVE_NOTIFICATION |
Treiben | VDS_NF_DRIVE_DEPART | 106 | VDS_DRIVE_NOTIFICATION |
Treiben | VDS_NF_DRIVE_MODIFY | 107 | VDS_DRIVE_NOTIFICATION |
Treiben | 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 übrigen Benachrichtigungen. In der folgenden Tabelle sind dienstbasierte Benachrichtigungskonstanten nach Kategorie aufgeführt.
Kategorie | Benachrichtigung | Wert | Link zur Ereignisbeschreibung |
---|---|---|---|
Scheibe | VDS_NF_DISK_ARRIVE | 8 | VDS_DISK_NOTIFICATION |
Scheibe | VDS_NF_DISK_DEPART | 9 | VDS_DISK_NOTIFICATION |
Scheibe | 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 |
Volumen | VDS_NF_MOUNT_POINTS_CHANGE | 205 | VDS_MOUNT_POINT_NOTIFICATION |
Verwandte Themen
-
IVdsService:: beraten