Dela via


VDS-meddelanden

[Från och med Windows 8 och Windows Server 2012 ersätts com-gränssnittet virtual disk service COM med Windows Storage Management API.]

En leverantör kan skicka ett händelsemeddelande till VDS, och VDS kan i sin tur vidarebefordra meddelandet till program. Meddelandemodellen som används av VDS liknar anslutningspunktsmodellen som används av COM-objekt.

VDS genererar tjänstmeddelanden för händelser som en enhetsbeteckningstilldelning eller ankomsten av en oallokerad disk. När VDS allokerar en disk till en provider ansvarar providern för att generera de associerade meddelandena. Bilden nedan visar de gränssnitt och metoder som används i VDS-meddelandemodellen.

diagram som visar gränssnittet och metoderna (Råd, OnLoad och OnNotify) mellan program, Virtual Disk Service och V D S Providers.

För att ta emot meddelanden registrerar VDS sitt IVdsAdviseSink- gränssnitt med providerobjektet genom att anropa metoden IVdsProviderPrivate::OnLoad och skicka en pekare till gränssnittet. När en meddelandehändelse inträffar, till exempel ankomsten av en ny volym eller enhet, skickar providern lämplig meddelandestruktur till VDS som en IVdsAdviseSink::OnNotify metodparameter.

Processen liknar ett program och VDS. Mer specifikt registrerar ett program sitt IVdsAdviseSink- gränssnitt med VDS genom att anropa IVdsService::Råda-metoden och skicka en pekare till gränssnittet. När VDS tar emot ett meddelande från en provider skickar det lämplig meddelandestruktur till registrerade program som en IVdsAdviseSink::OnNotify metodparameter.

Not

Ett program som anropar Advise måste så småningom anropa metoden IVdsService::Unadvise. Helst bör den anropa Unadvise så snart den inte längre behöver ta emot meddelanden.

 

Tabellen som följer visar de providergenererade meddelandena efter objekttyp.

Objekt Anmälan Värde Länk till händelsebeskrivning
Packa VDS_NF_PACK_ARRIVE 1 VDS_PACK_NOTIFICATION
Packa VDS_NF_PACK_DEPART 2 VDS_PACK_NOTIFICATION
Packa VDS_NF_PACK_MODIFY 3 VDS_PACK_NOTIFICATION
Volym VDS_NF_VOLUME_ARRIVE 4 VDS_VOLUME_NOTIFICATION
Volym VDS_NF_VOLUME_DEPART 5 VDS_VOLUME_NOTIFICATION
Volym VDS_NF_VOLUME_MODIFY 6 VDS_VOLUME_NOTIFICATION
Volym VDS_NF_VOLUME_REBUILDING_PROGRESS 7 VDS_VOLUME_NOTIFICATION
Skiva VDS_NF_DISK_ARRIVE 8 VDS_DISK_NOTIFICATION
Skiva VDS_NF_DISK_DEPART 9 VDS_DISK_NOTIFICATION
Skiva VDS_NF_DISK_MODIFY 10 VDS_DISK_NOTIFICATION
Skifte VDS_NF_PARTITION_ARRIVE 11 VDS_PARTITION_NOTIFICATION
Skifte VDS_NF_PARTITION_DEPART 12 VDS_PARTITION_NOTIFICATION
Skifte VDS_NF_PARTITION_MODIFY 13 VDS_PARTITION_NOTIFICATION
Delsystem VDS_NF_SUB_SYSTEM_ARRIVE 101 VDS_SUB_SYSTEM_NOTIFICATION
Delsystem VDS_NF_SUB_SYSTEM_DEPART 102 VDS_SUB_SYSTEM_NOTIFICATION
Delsystem VDS_NF_SUB_SYSTEM_MODIFY 151 VDS_SUB_SYSTEM_NOTIFICATION
Kontrollant VDS_NF_CONTROLLER_ARRIVE 103 VDS_CONTROLLER_NOTIFICATION
Kontrollant VDS_NF_CONTROLLER_DEPART 104 VDS_CONTROLLER_NOTIFICATION
Kontrollant VDS_NF_CONTROLLER_MODIFY 350 VDS_CONTROLLER_NOTIFICATION
Kontrollant VDS_NF_CONTROLLER_REMOVED 351 VDS_CONTROLLER_NOTIFICATION
Hamn VDS_NF_PORT_MODIFY 352 VDS_PORT_NOTIFICATION
Hamn VDS_NF_PORT_REMOVED 353 VDS_PORT_NOTIFICATION
Köra VDS_NF_DRIVE_ARRIVE 105 VDS_DRIVE_NOTIFICATION
Köra VDS_NF_DRIVE_DEPART 106 VDS_DRIVE_NOTIFICATION
Köra VDS_NF_DRIVE_MODIFY 107 VDS_DRIVE_NOTIFICATION
Köra 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 genererar de återstående meddelandena. I följande tabell visas tjänstbaserade meddelandekonstanter efter kategori.

Kategori Anmälan Värde Länk till händelsebeskrivning
Skiva VDS_NF_DISK_ARRIVE 8 VDS_DISK_NOTIFICATION
Skiva VDS_NF_DISK_DEPART 9 VDS_DISK_NOTIFICATION
Skiva VDS_NF_DISK_MODIFY 10 VDS_DISK_NOTIFICATION
Enhetsbeteckning VDS_NF_DRIVE_LETTER_FREE 201 VDS_DRIVE_LETTER_NOTIFICATION
Enhetsbeteckning VDS_NF_DRIVE_LETTER_ASSIGN 202 VDS_DRIVE_LETTER_NOTIFICATION
Filsystem VDS_NF_FILE_SYSTEM_MODIFY 203 VDS_FILE_SYSTEM_NOTIFICATION
Filsystem VDS_NF_FILE_SYSTEM_FORMAT_PROGRESS 204 VDS_FILE_SYSTEM_NOTIFICATION
Volym VDS_NF_MOUNT_POINTS_CHANGE 205 VDS_MOUNT_POINT_NOTIFICATION

 

VDS-objektmodell

IVdsAdviseSink

IVdsAdviseSink::OnNotify

IVdsProviderPrivate::OnLoad

IVdsService::Råda