IVdsOpenVDisk::Merge 方法 (vds.h)
[从 Windows 8 和 Windows Server 2012 开始,虚拟磁盘服务 COM 接口由 Windows 存储管理 API 取代。]
将子虚拟磁盘与其差异链中的父级合并。
语法
HRESULT Merge(
[in] MERGE_VIRTUAL_DISK_FLAG Flags,
[in] ULONG MergeDepth,
[out] IVdsAsync **ppAsync
);
参数
[in] Flags
一个MERGE_VIRTUAL_DISK_FLAG枚举值,该值指定如何合并虚拟磁盘。 必须设置为 MERGE_VIRTUAL_DISK_FLAG_NONE。
[in] MergeDepth
差异链中要合并在一起的父磁盘数。 磁盘必须已打开,且 ReadWriteDepth 至少等于此值。
[out] ppAsync
指向 IVdsAsync 接口的指针,成功完成后,该接口接收 IVdsAsync 接口以监视和控制此操作。 调用方必须在使用完接口后释放收到的接口。 如果在接口上调用 IVdsAsync::Wait 方法并返回成功的 HRESULT 值,则必须通过在每个接口指针上调用 IUnknown::Release 方法释放VDS_ASYNC_OUTPUT结构中返回的接口。 但是,如果 Wait 返回失败的 HRESULT 值,或者如果 Wait 的 pHrResult 参数收到失败的 HRESULT 值,则VDS_ASYNC_OUTPUT结构中的接口指针为 NULL,不需要释放。 可以使用 Winerror.h 中定义的 SUCCEEDED 和 FAILED 宏测试成功或失败 HRESULT 值。
返回值
此方法可以返回标准 HRESULT 值,例如E_INVALIDARG或E_OUTOFMEMORY,以及 特定于 VDS 的返回值。 它还可以使用 HRESULT_FROM_WIN32 宏返回转换的系统错误代码。 错误可能源自 VDS 本身或正在使用的基础 VDS 提供程序 。 可能的返回值包括以下内容。
返回代码 | 说明 |
---|---|
|
该方法已成功完成。 |
备注
仅当虚拟磁盘已分离时,才能将其合并。
此方法将子磁盘中的所有数据块移动到父磁盘。 但是,它不会在操作结束时删除失效的子磁盘。
必须已使用读/写访问权限打开虚拟磁盘。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 7 [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 R2 [仅限桌面应用] |
目标平台 | Windows |
标头 | vds.h |
Library | Uuid.lib |