Provider 对象

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

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

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

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

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

Diagram that shows an 'Application' branching into 'Providers', then 'Pack' or 'Subsystem', and then 'Spindles'.

对象属性包括一个持久 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