Aracılığıyla paylaş


VDS Bildirimleri

[Windows 8 ve Windows Server 2012'de başlayarak, Sanal Disk Hizmeti COM arabiriminin yerini Windows Depolama Yönetimi API'sinin.]

Sağlayıcı VDS'ye olay bildirimi gönderebilir ve VDS de bildirimi uygulamalara iletebilir. VDS tarafından kullanılan bildirim modeli, COM nesneleri tarafından kullanılan bağlantı noktası modeline benzer.

VDS, sürücü harfi ataması veya ayrılmamış diskin gelmesi gibi olaylar için hizmet bildirimleri oluşturur. VDS bir sağlayıcıya disk ayırdıktan sonra, sağlayıcı ilişkili bildirimleri oluşturmakla sorumludur. Aşağıdaki çizimde VDS bildirim modelinde kullanılan arabirimler ve yöntemler gösterilmektedir.

Uygulamalar, Sanal Disk Hizmeti ve V D S Sağlayıcıları arasındaki arabirim ve yöntemleri (Advise, OnLoad ve OnNotify) gösteren Diyagramı.

Bildirimleri almak için VDS, IVdsProviderPrivate::OnLoad yöntemini çağırıp arabirime bir işaretçi geçirerek IVdsAdviseSink arabirimini sağlayıcı nesnesine kaydeder. Yeni bir birimin veya sürücünün gelmesi gibi bir bildirim olayı gerçekleştiğinde sağlayıcı, IVdsAdviseSink::OnNotify yöntemi parametresi olarak VDS'ye uygun bildirim yapısını geçirir.

İşlem bir uygulama ile VDS arasında benzerdir. Özellikle, bir uygulama bildirimleri almak için IVdsService::Advise yöntemini çağırarak ve arabirime bir işaretçi geçirerek IVdsAdviseSink arabirimini VDS'ye kaydeder. VDS bir sağlayıcıdan bildirim aldığında, uygun bildirim yapısını kayıtlı uygulamalara IVdsAdviseSink::OnNotify yöntemi parametresi olarak geçirir.

Not

Öneri çağıran bir uygulamanın sonunda IVdsService::Unadvise yöntemini çağırması gerekir. İdeal olarak Unadvise artık bildirim alması gerekmediğinde çağırmalıdır.

 

Aşağıdaki tabloda, nesne türüne göre sağlayıcı tarafından oluşturulan bildirimler listelenir.

Nesne Bildirim Değer Olay açıklaması bağlantısı
Paketlemek VDS_NF_PACK_ARRIVE 1 VDS_PACK_NOTIFICATION
Paketlemek VDS_NF_PACK_DEPART 2 VDS_PACK_NOTIFICATION
Paketlemek VDS_NF_PACK_MODIFY 3 VDS_PACK_NOTIFICATION
Hacim VDS_NF_VOLUME_ARRIVE 4 VDS_VOLUME_NOTIFICATION
Hacim VDS_NF_VOLUME_DEPART 5 VDS_VOLUME_NOTIFICATION
Hacim VDS_NF_VOLUME_MODIFY 6 VDS_VOLUME_NOTIFICATION
Hacim VDS_NF_VOLUME_REBUILDING_PROGRESS 7 VDS_VOLUME_NOTIFICATION
Disk VDS_NF_DISK_ARRIVE 8 VDS_DISK_NOTIFICATION
Disk VDS_NF_DISK_DEPART 9 VDS_DISK_NOTIFICATION
Disk VDS_NF_DISK_MODIFY 10 VDS_DISK_NOTIFICATION
Bölüm VDS_NF_PARTITION_ARRIVE 11 VDS_PARTITION_NOTIFICATION
Bölüm VDS_NF_PARTITION_DEPART 12 VDS_PARTITION_NOTIFICATION
Bölüm VDS_NF_PARTITION_MODIFY 13 VDS_PARTITION_NOTIFICATION
Alt VDS_NF_SUB_SYSTEM_ARRIVE 101 VDS_SUB_SYSTEM_NOTIFICATION
Alt VDS_NF_SUB_SYSTEM_DEPART 102 VDS_SUB_SYSTEM_NOTIFICATION
Alt VDS_NF_SUB_SYSTEM_MODIFY 151 VDS_SUB_SYSTEM_NOTIFICATION
Denetleyici VDS_NF_CONTROLLER_ARRIVE 103 VDS_CONTROLLER_NOTIFICATION
Denetleyici VDS_NF_CONTROLLER_DEPART 104 VDS_CONTROLLER_NOTIFICATION
Denetleyici VDS_NF_CONTROLLER_MODIFY 350 VDS_CONTROLLER_NOTIFICATION
Denetleyici VDS_NF_CONTROLLER_REMOVED 351 VDS_CONTROLLER_NOTIFICATION
Liman VDS_NF_PORT_MODIFY 352 VDS_PORT_NOTIFICATION
Liman VDS_NF_PORT_REMOVED 353 VDS_PORT_NOTIFICATION
Sürmek VDS_NF_DRIVE_ARRIVE 105 VDS_DRIVE_NOTIFICATION
Sürmek VDS_NF_DRIVE_DEPART 106 VDS_DRIVE_NOTIFICATION
Sürmek VDS_NF_DRIVE_MODIFY 107 VDS_DRIVE_NOTIFICATION
Sürmek 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 kalan bildirimleri oluşturur. Aşağıdaki tabloda hizmet tabanlı bildirim sabitleri kategoriye göre listelemektedir.

Kategori Bildirim Değer Olay açıklaması bağlantısı
Disk VDS_NF_DISK_ARRIVE 8 VDS_DISK_NOTIFICATION
Disk VDS_NF_DISK_DEPART 9 VDS_DISK_NOTIFICATION
Disk VDS_NF_DISK_MODIFY 10 VDS_DISK_NOTIFICATION
Sürücü harfi VDS_NF_DRIVE_LETTER_FREE 201 VDS_DRIVE_LETTER_NOTIFICATION
Sürücü harfi VDS_NF_DRIVE_LETTER_ASSIGN 202 VDS_DRIVE_LETTER_NOTIFICATION
Dosya sistemi VDS_NF_FILE_SYSTEM_MODIFY 203 VDS_FILE_SYSTEM_NOTIFICATION
Dosya sistemi VDS_NF_FILE_SYSTEM_FORMAT_PROGRESS 204 VDS_FILE_SYSTEM_NOTIFICATION
Hacim VDS_NF_MOUNT_POINTS_CHANGE 205 VDS_MOUNT_POINT_NOTIFICATION

 

VDS Nesne Modeli

IVdsAdviseSink

IVdsAdviseSink::OnNotify

IVdsProviderPrivate::OnLoad

IVdsService::Öneri