Provider 对象

[从Windows 8和Windows Server 2012开始,虚拟磁盘服务 COM 接口由 Windows 存储管理 API 取代。]

提供程序对象为负责存储管理的程序建模。 此对象提供对软件提供程序和硬件提供程序功能的访问权限。 提供程序程序对软件设备执行操作 (卷和磁盘) 和硬件设备, (RAID 控制器) 后面的存储子系统和驱动器阵列。

VDS 将提供程序对象注册为 Windows 注册表中的 COM 对象,并使用包含的接口 (不聚合) 来实现其余对象,包装所有接口和方法并有条件地添加功能。 提供程序对象包装的对象和接口因提供程序类型而异。

无法直接从应用程序实例化提供程序对象。 相反,必须启动 VDS,获取指向服务对象的指针,并使用服务对象查询主机已知的提供程序。 有关加载 VDS 的说明,请参阅 启动和服务对象

使用 IVdsService::QueryProviders 方法枚举主机上已注册的提供程序程序。 方法的第一个参数使你能够仅指定软件提供程序和/或硬件提供程序。 使用提供程序对象,可以对由该提供程序管理的对象执行操作。 如下图所示,可以使用 IVdsSwProvider 接口公开的方法创建和查询与软件提供程序关联的包对象。 同样,可以使用 IVdsHwProvider 接口上的方法与与硬件提供程序关联的子系统对象进行交互。

显示“应用程序”分支为“提供程序”,然后是“Pack”或“子系统”,然后是“心轴”的示意图。

对象属性包括表示特定提供程序的持久 GUID 对象标识符和表示提供程序版本的第二个 GUID。 请注意,VDS 对象模型中的其他对象标识符是非永久性的。 此对象的其余属性包括提供程序名称、其他版本信息、提供程序类型软件或硬件) 、各种标志以及仅适用于软件提供程序的重新生成优先级设置。

下表列出了相关的接口、枚举和结构

类型 元素
始终由此对象公开的接口 IVdsProvider
始终由软件提供程序公开的接口 IVdsSwProvider
始终仅由硬件提供程序公开的接口 IVdsHwProvider
此对象可能公开的接口 IVdsProviderSupport
只能由硬件提供程序公开的接口 IVdsHwProviderTypeIVdsHwProviderStoragePoolsWindows Server 2008、Windows Vista 和 Windows Server 2003: 不支持 IVdsHwProviderStoragePools 接口。
始终实现但不向应用程序公开的接口 IVdsProviderPrivate
始终由硬件提供程序实现但不向应用程序公开的接口 IVdsHwProviderPrivate
可由硬件提供程序实现但未向应用程序公开的接口 IVdsHwProviderPrivateMpio
关联的枚举 VDS_PROVIDER_FLAGVDS_QUERY_PROVIDER_FLAGVDS_PROVIDER_TYPE
关联的结构 无。

VDS 对象模型

启动和服务对象

IVdsService::QueryProviders

IVdsSwProvider

IVdsHwProvider