Bagikan melalui


Pemberitahuan VDS

[Dimulai dengan Windows 8 dan Windows Server 2012, antarmuka COM Layanan Disk Virtual digantikan oleh API Manajemen Penyimpanan Windows.]

Penyedia dapat mengirim pemberitahuan peristiwa ke VDS, dan VDS pada gilirannya dapat meneruskan pemberitahuan ke aplikasi. Model pemberitahuan yang digunakan oleh VDS menyerupai model titik koneksi yang digunakan oleh objek COM.

VDS menghasilkan pemberitahuan layanan untuk peristiwa seperti penetapan huruf drive atau kedatangan disk yang tidak dialokasikan. Setelah VDS mengalokasikan disk ke penyedia, penyedia bertanggung jawab untuk menghasilkan pemberitahuan terkait. Ilustrasi berikut menunjukkan antarmuka dan metode yang digunakan dalam model pemberitahuan VDS.

Diagram yang menunjukkan antarmuka dan metode (Saran, OnLoad, dan OnNotify) antara Aplikasi, Layanan Disk Virtual, dan Penyedia V D S.

Untuk menerima pemberitahuan, VDS mendaftarkan antarmuka IVdsAdviseSink dengan objek penyedia dengan memanggil metode IVdsProviderPrivate::OnLoad dan meneruskan pointer ke antarmuka. Ketika peristiwa pemberitahuan terjadi, seperti kedatangan volume atau drive baru, penyedia meneruskan struktur pemberitahuan yang sesuai ke VDS sebagai parameter metode IVdsAdviseSink::OnNotify .

Prosesnya mirip antara aplikasi dan VDS. Secara khusus, untuk menerima pemberitahuan, aplikasi mendaftarkan antarmuka IVdsAdviseSink dengan VDS dengan memanggil metode IVdsService::Advise dan meneruskan pointer ke antarmuka. Ketika VDS menerima pemberitahuan dari penyedia, VDS meneruskan struktur pemberitahuan yang sesuai ke aplikasi terdaftar sebagai parameter metode IVdsAdviseSink::OnNotify .

Catatan

Aplikasi yang memanggil Advise akhirnya harus memanggil metode IVdsService::Unadvise . Idealnya, ini harus memanggil Unadvise segera setelah tidak perlu lagi menerima pemberitahuan.

 

Tabel yang mengikuti mencantumkan pemberitahuan yang dihasilkan penyedia menurut jenis objek.

Object Pemberitahuan Nilai Tautan ke deskripsi peristiwa
Paket VDS_NF_PACK_ARRIVE 1 VDS_PACK_NOTIFICATION
Paket VDS_NF_PACK_DEPART 2 VDS_PACK_NOTIFICATION
Paket 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
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
Partisi VDS_NF_PARTITION_ARRIVE 11 VDS_PARTITION_NOTIFICATION
Partisi VDS_NF_PARTITION_DEPART 12 VDS_PARTITION_NOTIFICATION
Partisi VDS_NF_PARTITION_MODIFY 13 VDS_PARTITION_NOTIFICATION
Subsistem VDS_NF_SUB_SYSTEM_ARRIVE 101 VDS_SUB_SYSTEM_NOTIFICATION
Subsistem VDS_NF_SUB_SYSTEM_DEPART 102 VDS_SUB_SYSTEM_NOTIFICATION
Subsistem VDS_NF_SUB_SYSTEM_MODIFY 151 VDS_SUB_SYSTEM_NOTIFICATION
Pengontrol VDS_NF_CONTROLLER_ARRIVE 103 VDS_CONTROLLER_NOTIFICATION
Pengontrol VDS_NF_CONTROLLER_DEPART 104 VDS_CONTROLLER_NOTIFICATION
Pengontrol VDS_NF_CONTROLLER_MODIFY 350 VDS_CONTROLLER_NOTIFICATION
Pengontrol 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
Drive VDS_NF_DRIVE_ARRIVE 105 VDS_DRIVE_NOTIFICATION
Drive VDS_NF_DRIVE_DEPART 106 VDS_DRIVE_NOTIFICATION
Drive VDS_NF_DRIVE_MODIFY 107 VDS_DRIVE_NOTIFICATION
Drive 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 menghasilkan pemberitahuan yang tersisa. Tabel berikut ini mencantumkan konstanta pemberitahuan berbasis layanan menurut kategori.

Kategori Pemberitahuan Nilai Menautkan ke deskripsi peristiwa
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
Huruf kandar VDS_NF_DRIVE_LETTER_FREE 201 VDS_DRIVE_LETTER_NOTIFICATION
Huruf kandar VDS_NF_DRIVE_LETTER_ASSIGN 202 VDS_DRIVE_LETTER_NOTIFICATION
Sistem file VDS_NF_FILE_SYSTEM_MODIFY 203 VDS_FILE_SYSTEM_NOTIFICATION
Sistem file VDS_NF_FILE_SYSTEM_FORMAT_PROGRESS 204 VDS_FILE_SYSTEM_NOTIFICATION
Volume VDS_NF_MOUNT_POINTS_CHANGE 205 VDS_MOUNT_POINT_NOTIFICATION

 

Model Objek VDS

IVdsAdviseSink

IVdsAdviseSink::OnNotify

IVdsProviderPrivate::OnLoad

IVdsService::Advise