OpenVirtualDisk 函数 (virtdisk.h)
(ISO) 打开虚拟硬盘 (VHD) 或 CD 或 DVD 映像文件以供使用。
语法
DWORD OpenVirtualDisk(
[in] PVIRTUAL_STORAGE_TYPE VirtualStorageType,
[in] PCWSTR Path,
[in] VIRTUAL_DISK_ACCESS_MASK VirtualDiskAccessMask,
[in] OPEN_VIRTUAL_DISK_FLAG Flags,
[in, optional] POPEN_VIRTUAL_DISK_PARAMETERS Parameters,
[out] PHANDLE Handle
);
参数
[in] VirtualStorageType
指向有效 VIRTUAL_STORAGE_TYPE 结构的指针。
[in] Path
指向要打开的虚拟磁盘映像的有效路径的指针。
[in] VirtualDiskAccessMask
VIRTUAL_DISK_ACCESS_MASK 枚举的有效值。
[in] Flags
OPEN_VIRTUAL_DISK_FLAG 枚举的值的有效组合。
[in, optional] Parameters
指向有效 OPEN_VIRTUAL_DISK_PARAMETERS 结构的可选指针。 可以为 NULL。
[out] Handle
指向表示打开的虚拟磁盘的句柄对象的指针。
返回值
如果函数成功,则返回值为 ERROR_SUCCESS (0) ,并且 Handle 参数包含指向新虚拟磁盘对象的有效指针。
如果函数失败,则返回值为错误代码, 并且 Handle 参数的值未定义。 有关详细信息,请参阅 系统错误代码。
注解
为了防止在尝试打开永久附加虚拟磁盘的句柄时打开请求失败,以下要求适用:
- VirtualDiskAccessMask 参数必须包含 VIRTUAL_DISK_ACCESS_DETACH (0x00040000) 标志。
- 如果创建永久附加虚拟磁盘的原始打开操作仅请求读取访问权限,则不得请求对文件的写入访问权限。
- VirtualStorageType 参数为 NULL。
- Path 参数为 NULL。
- VirtualDiskAccessMask 参数设置为 值
(VirtualDiskAccessMask & ~VIRTUAL_DISK_ACCESS_ALL)
。 - Flags 参数设置为 的值
(Flags & ~(OPEN_VIRTUAL_DISK_FLAG_NO_PARENTS | OPEN_VIRTUAL_DISK_FLAG_BLANK_FILE))
。 - Parameters 参数的 Version 成员未设置为 OPEN_VIRTUAL_DISK_VERSION_1 或 OPEN_VIRTUAL_DISK_VERSION_2。
Path 参数指向的路径不能位于通过环回) 的网络共享 (本地网络共享上。 如果路径 位于 本地网络共享上,此函数将失败并出现错误ERROR_FILE_SYSTEM_LIMITATION (665) 。 如果打开 ISO 虚拟磁盘且文件大小不是 2 KB (2,048 字节) 的偶数倍数,) 至少为 34 KB (34,816 字节,或者卷结构描述符不包含已知的 CDFS 或 UDFS 卷标识符,则此函数将失败并出现 ERROR_FILE_CORRUPT 错误 (1392) 。
当应用程序使用 Handle 参数中 返回的对象句柄完成时,请使用 CloseHandle 函数关闭句柄。
在Windows 8和Windows Server 2012之前,不支持 (ISO) 的 CD 和 DVD 映像文件。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 7 |
最低受支持的服务器 | Windows Server 2008 R2 |
目标平台 | Windows |
标头 | virtdisk.h |
Library | VirtDisk.lib |
DLL | VirtDisk.dll |