Функция OpenVirtualDisk (virtdisk.h)
Открывает файл виртуального жесткого диска (VHD) или CD или DVD-образа (ISO) для использования.
Синтаксис
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))
. - Элемент Version параметра Parameters не имеет значения OPEN_VIRTUAL_DISK_VERSION_1 или OPEN_VIRTUAL_DISK_VERSION_2.
Путь, на который указывает параметр Path, не может находиться в локальной сетевой папке (то есть сетевой общей папке с помощью замыкания на себя). Эта функция завершится ошибкой ERROR_FILE_SYSTEM_LIMITATION (665), если путь находится в общей локальной сети. Эта функция завершится сбоем с ошибкой ERROR_FILE_CORRUPT (1392), если открывается виртуальный диск ISO и размер файла даже не кратен 2 КБ (2048 байт), не менее 34 КБ (34 816 байт) или дескриптор структуры тома не содержит известный идентификатор тома CDFS или UDFS.
После завершения приложения с помощью дескриптора объекта, возвращаемого в параметре Handle , используйте функцию CloseHandle , чтобы закрыть дескриптор.
Файлы образов КОМПАКТ-дисков и DVD-дисков (ISO) не поддерживаются до Windows 8 и Windows Server 2012.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 7 |
Минимальная версия сервера | Windows Server 2008 R2 |
Целевая платформа | Windows |
Header | virtdisk.h |
Библиотека | VirtDisk.lib |
DLL | VirtDisk.dll |