IVMHardDisk::Convert 方法

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

将固定大小的虚拟硬盘转换为动态扩展的虚拟硬盘,或将动态扩展的虚拟硬盘转换为固定大小的虚拟硬盘。

语法

HRESULT Convert(
  [in]          BSTR           convertedDiskImagePath,
  [in]          VMHardDiskType convertedDiskImageType,
  [out, retval] IVMTask        **convertTask
);

参数

convertedDiskImagePath [in]

目标磁盘映像文件的路径。

convertedDiskImageType [in]

目标磁盘映像的类型。 有关值列表,请参阅 VMHardDiskType

convertTask [out, retval]

用于跟踪转换过程完成情况的 IVMTask 对象。

返回值

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

返回代码/值 说明
S_OK
0
操作成功。
E_INVALIDARG
0x80000003
convertedDiskImagePath 参数为空或文件名上缺少 .vhd 扩展名。
E_POINTER
0x80004003
参数为 NULL
HRESULT_FROM_WIN32 (ERROR_PATH_NOT_FOUND)
0x80070003
系统找不到 convertedDiskImagePath 参数指定的路径。
HRESULT_FROM_WIN32 (ERROR_INVALID_NAME)
0x8007007b
convertedDiskImagePath 参数包含无效字符 (“*?<>/|“:”) 。
HRESULT_FROM_WIN32 (ERROR_BAD_PATHNAME)
0x800700a1
convertedDiskImagePath 参数指定空路径或相对路径。 绝对路径是必需的。
HRESULT_FROM_WIN32 (ERROR_BUFFER_OVERFLOW)
0x8007006f
convertedDiskImagePath 参数指定的路径太长。 路径必须小于 MAX_PATH ( 260) 个字符。
HRESULT_FROM_WIN32 (ERROR_SHARING_VIOLATION)
0x80070020
此对象引用的虚拟硬盘正在使用中,或者此虚拟硬盘的父级正在使用中。
HRESULT_FROM_WIN32 (ERROR_DISK_FULL)
0x80070070
主机卷没有足够的空间来转换此虚拟硬盘。
HRESULT_FROM_WIN32 (ERROR_ALREADY_EXISTS)
0x800700b7
convertedDiskImagePath 参数引用的文件已存在。
VM_E_WRONG_HD_IMAGE_TYPE
0xA004067B
convertedDiskImagePath 参数必须是 vmDiskType_DynamicvmDiskType_FixedSize
VM_E_INVALID_HD_FILE
0xA0040682
IVMHardDisk 对象引用的虚拟硬盘映像似乎不是有效的映像。
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