VDS 通知
[從 Windows 8 和 Windows Server 2012 開始,虛擬磁碟服務 COM 介面會由 Windows 記憶體管理 API取代。
提供者可以將事件通知傳送至 VDS,而 VDS 可以接著將通知轉送給應用程式。 VDS 所使用的通知模型類似於 COM 物件所使用的連接點模型。
VDS 會針對磁碟驅動器號指派或未配置磁碟的抵達等事件產生服務通知。 一旦 VDS 將磁碟配置給提供者,提供者就會負責產生相關聯的通知。 下圖顯示 VDS 通知模型中所使用的介面和方法。
為了接收通知,VDS 會呼叫 IVdsProviderPrivate::OnLoad 方法,並將指標傳遞至介面,以向提供者對象註冊其 IVdsAdviseSink 介面。 當通知事件發生時,例如新磁碟區或磁碟驅動器的抵達,提供者會將適當的通知結構傳遞至 VDS 作為 IVdsAdviseSink::OnNotify 方法參數。
應用程式與 VDS 之間的程式很類似。 具體來說,若要接收通知,應用程式會藉由呼叫 IVdsService::Advise 方法來向 VDS 註冊其 IVdsAdviseSink 介面,並將指標傳遞至介面。 當 VDS 收到來自提供者的通知時,它會將適當的通知結構傳遞至已註冊的應用程式作為 IVdsAdviseSink::OnNotify 方法參數。
注意
呼叫 建議 的應用程式最終必須呼叫 IVdsService::Unadvise 方法。 在理想情況下,它應該在不再需要收到通知時,立即呼叫 取消。
下列數據表會依物件類型列出提供者產生的通知。
物件 | 通知 | 價值 | 事件描述的連結 |
---|---|---|---|
包 | VDS_NF_PACK_ARRIVE | 1 | VDS_PACK_NOTIFICATION |
包 | VDS_NF_PACK_DEPART | 2 | VDS_PACK_NOTIFICATION |
包 | VDS_NF_PACK_MODIFY | 3 | VDS_PACK_NOTIFICATION |
卷 | VDS_NF_VOLUME_ARRIVE | 4 | VDS_VOLUME_NOTIFICATION |
卷 | VDS_NF_VOLUME_DEPART | 5 | VDS_VOLUME_NOTIFICATION |
卷 | VDS_NF_VOLUME_MODIFY | 6 | VDS_VOLUME_NOTIFICATION |
卷 | VDS_NF_VOLUME_REBUILDING_PROGRESS | 7 | VDS_VOLUME_NOTIFICATION |
磁碟 | VDS_NF_DISK_ARRIVE | 8 | VDS_DISK_NOTIFICATION |
磁碟 | VDS_NF_DISK_DEPART | 9 | VDS_DISK_NOTIFICATION |
磁碟 | VDS_NF_DISK_MODIFY | 10 | VDS_DISK_NOTIFICATION |
分區 | VDS_NF_PARTITION_ARRIVE | 11 | VDS_PARTITION_NOTIFICATION |
分區 | VDS_NF_PARTITION_DEPART | 12 | VDS_PARTITION_NOTIFICATION |
分區 | VDS_NF_PARTITION_MODIFY | 13 | VDS_PARTITION_NOTIFICATION |
子系統 | VDS_NF_SUB_SYSTEM_ARRIVE | 101 | VDS_SUB_SYSTEM_NOTIFICATION |
子系統 | VDS_NF_SUB_SYSTEM_DEPART | 102 | VDS_SUB_SYSTEM_NOTIFICATION |
子系統 | VDS_NF_SUB_SYSTEM_MODIFY | 151 | VDS_SUB_SYSTEM_NOTIFICATION |
控制器 | VDS_NF_CONTROLLER_ARRIVE | 103 | VDS_CONTROLLER_NOTIFICATION |
控制器 | VDS_NF_CONTROLLER_DEPART | 104 | VDS_CONTROLLER_NOTIFICATION |
控制器 | VDS_NF_CONTROLLER_MODIFY | 350 | VDS_CONTROLLER_NOTIFICATION |
控制器 | VDS_NF_CONTROLLER_REMOVED | 351 | VDS_CONTROLLER_NOTIFICATION |
港口 | VDS_NF_PORT_MODIFY | 352 | VDS_PORT_NOTIFICATION |
港口 | VDS_NF_PORT_REMOVED | 353 | VDS_PORT_NOTIFICATION |
駕駛 | VDS_NF_DRIVE_ARRIVE | 105 | VDS_DRIVE_NOTIFICATION |
駕駛 | VDS_NF_DRIVE_DEPART | 106 | VDS_DRIVE_NOTIFICATION |
駕駛 | VDS_NF_DRIVE_MODIFY | 107 | VDS_DRIVE_NOTIFICATION |
駕駛 | VDS_NF_DRIVE_REMOVED | 354 | VDS_DRIVE_NOTIFICATION |
倫 | VDS_NF_LUN_ARRIVE | 108 | VDS_LUN_NOTIFICATION |
倫 | VDS_NF_LUN_DEPART | 109 | VDS_LUN_NOTIFICATION |
倫 | VDS_NF_LUN_MODIFY | 110 | VDS_LUN_NOTIFICATION |
VDS 會產生剩餘的通知。 下表依類別列出以服務為基礎的通知常數。
類別 | 通知 | 價值 | 事件描述的連結 |
---|---|---|---|
磁碟 | VDS_NF_DISK_ARRIVE | 8 | VDS_DISK_NOTIFICATION |
磁碟 | VDS_NF_DISK_DEPART | 9 | VDS_DISK_NOTIFICATION |
磁碟 | VDS_NF_DISK_MODIFY | 10 | VDS_DISK_NOTIFICATION |
驅動器號 | VDS_NF_DRIVE_LETTER_FREE | 201 | VDS_DRIVE_LETTER_NOTIFICATION |
驅動器號 | VDS_NF_DRIVE_LETTER_ASSIGN | 202 | VDS_DRIVE_LETTER_NOTIFICATION |
檔案系統 | VDS_NF_FILE_SYSTEM_MODIFY | 203 | VDS_FILE_SYSTEM_NOTIFICATION |
檔案系統 | VDS_NF_FILE_SYSTEM_FORMAT_PROGRESS | 204 | VDS_FILE_SYSTEM_NOTIFICATION |
卷 | VDS_NF_MOUNT_POINTS_CHANGE | 205 | VDS_MOUNT_POINT_NOTIFICATION |
相關主題