IVMHardDisk::MergeTo 方法

[自Windows 8起,Windows 虚拟电脑不再可供使用。 请改用 Hyper-V WMI 提供程序 (V2) 。]

将差异虚拟硬盘与其所有父磁盘合并 (,并将根父虚拟硬盘) 合并到新的硬盘文件。

语法

HRESULT MergeTo(
  [in]          BSTR           newDiskImagePath,
  [in]          VMHardDiskType newDiskImageType,
  [out, retval] IVMTask        **mergeTask
);

参数

newDiskImagePath [in]

将合并所选磁盘映像的新目标磁盘映像的路径。

newDiskImageType [in]

新目标磁盘映像的类型。 新目标磁盘映像允许的映像类型 vmDiskType_DynamicvmDiskType_FixedSize。 有关详细信息,请参阅 VMHardDiskType

mergeTask [out, retval]

用于跟踪合并过程完成情况的 IVMTask 对象。

返回值

此方法可以返回其中一个值。

返回代码/值 说明
S_OK
0
操作成功。
E_POINTER
0x80004003
参数为 NULL
E_INVALIDARG
0x80000003
newDiskImagePath 参数为空。
HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND)
0x80070002
系统找不到 newDiskImagePath 参数指定的文件。
HRESULT_FROM_WIN32 (ERROR_PATH_NOT_FOUND)
0x80070003
系统找不到 newDiskImagePath 参数指定的路径。
HRESULT_FROM_WIN32 (ERROR_INVALID_NAME)
0x8007007b
newDiskImagePath 参数包含无效字符 (以下之一:“*?<>/|“:”) 。
HRESULT_FROM_WIN32 (ERROR_BAD_PATHNAME)
0x800700a1
newDiskImagePath 参数指定空路径或相对路径。 绝对路径是必需的。
HRESULT_FROM_WIN32 (ERROR_BUFFER_OVERFLOW)
0x8007006f
newDiskImagePath 参数指定的路径太长。 路径必须小于 260 个字符。
HRESULT_FROM_WIN32 (ERROR_SHARING_VIOLATION)
0x80070020
此对象引用的虚拟硬盘正在使用中,或者此虚拟硬盘的父级正在使用中。
VM_E_WRONG_HD_IMAGE_TYPE
0xA004067B
此错误是由于此 IVMHardDisk 对象引用的虚拟硬盘映像不是差异磁盘映像,或者因为参数 newDiskImageType 不是接受的值之一, vmDiskType_DynamicvmDiskType_FixedSize
HRESULT_FROM_WIN32 (ERROR_ALREADY_EXISTS)
0x800700b7
newDiskImagePath 参数引用的文件已存在。
HRESULT_FROM_WIN32 (ERROR_DISK_FULL)
0x80070070
主机卷没有足够的空间来合并此虚拟硬盘。
VM_E_PARENT_PATH_NOT_FOUND
0xA0040677
此对象引用的虚拟硬盘的父级不存在。
VM_E_APP_SHUTTING_DOWN
0xA0040209
无法合并虚拟硬盘映像,因为应用程序正在关闭。
DISP_E_EXCEPTION
0x80020009
发生意外错误。

要求

要求
最低受支持的客户端
Windows 7 [仅限桌面应用]
最低受支持的服务器
无受支持的版本
客户端支持终止
Windows 7
产品
Windows Virtual PC
标头
VPCCOMInterfaces.h
IID
IID_IVMHardDisk定义为 ffa14ae6-48f5-42a4-8a22-186f2e5c7db0

另请参阅

IVMHardDisk