VDS 通知
[从 Windows 8 和 Windows Server 2012 开始,虚拟磁盘服务 COM 接口由 Windows 存储管理 API 取代。]
提供程序可以向 VDS 发送事件通知,VDS 可以将通知转发到应用程序。 VDS 使用的通知模型类似于 COM 对象使用的连接点模型。
VDS 为诸如驱动器号分配或未分配磁盘的到达等事件生成服务通知。 VDS 将磁盘分配给提供程序后,提供程序将负责生成关联的通知。 下图显示了 VDS 通知模型中使用的接口和方法。
为了接收通知,VDS 通过调用 IVdsProviderPrivate::OnLoad 方法并传递指向接口的指针,将 IVdsAdviseSink 接口注册到提供程序对象。 发生通知事件(例如新卷或驱动器的到达)时,提供程序将相应的通知结构作为 IVdsAdviseSink::OnNotify 方法参数传递给 VDS 。
应用程序与 VDS 之间的过程类似。 具体而言,为了接收通知,应用程序通过调用 IVdsService ::Advise 方法并传递指向接口的指针,将 IVdsAdviseSink 接口注册到 VDS 。 当 VDS 收到来自提供程序的通知时,它将相应的通知结构作为 IVdsAdviseSink::OnNotify 方法参数传递给已注册的应用程序。
注意
调用 Advise 的应用程序最终必须调用 IVdsService::Unadvise 方法。 理想情况下,它应在不再需要接收通知时立即调用 Unadvise 。
下表按对象类型列出提供程序生成的通知。
Object | 通知 | 值 | 指向事件说明的链接 |
---|---|---|---|
Pack | VDS_NF_PACK_ARRIVE | 1 | VDS_PACK_NOTIFICATION |
Pack | VDS_NF_PACK_DEPART | 2 | VDS_PACK_NOTIFICATION |
Pack | 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 |
磁盘 | 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 |
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 生成剩余的通知。 下表按类别列出了基于服务的通知常量。
类别 | 通知 | 值 | 指向事件说明的链接 |
---|---|---|---|
磁盘 | 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 |
数据量(Volume) | VDS_NF_MOUNT_POINTS_CHANGE | 205 | VDS_MOUNT_POINT_NOTIFICATION |
相关主题