Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Открывает файл виртуального жесткого диска (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 |