Функция CreateVirtualDisk (virtdisk.h)
Создает файл образа виртуального жесткого диска (VHD) с помощью параметров по умолчанию или существующего виртуального диска или физического диска.
Синтаксис
DWORD CreateVirtualDisk(
[in] PVIRTUAL_STORAGE_TYPE VirtualStorageType,
[in] PCWSTR Path,
[in] VIRTUAL_DISK_ACCESS_MASK VirtualDiskAccessMask,
[in, optional] PSECURITY_DESCRIPTOR SecurityDescriptor,
[in] CREATE_VIRTUAL_DISK_FLAG Flags,
[in] ULONG ProviderSpecificFlags,
[in] PCREATE_VIRTUAL_DISK_PARAMETERS Parameters,
[in, optional] LPOVERLAPPED Overlapped,
[out] PHANDLE Handle
);
Параметры
[in] VirtualStorageType
Указатель на структуру VIRTUAL_STORAGE_TYPE , содержащую требуемый тип диска и сведения о поставщике.
[in] Path
Указатель на допустимую строку, представляющую путь к новому файлу образа виртуального диска.
[in] VirtualDiskAccessMask
Значение VIRTUAL_DISK_ACCESS_MASK , используемое при открытии только что созданного файла виртуального диска. Если элемент Version параметра Parameters имеет значение CREATE_VIRTUAL_DISK_VERSION_2 можно указать только значение VIRTUAL_DISK_ACCESS_NONE (0).
[in, optional] SecurityDescriptor
Необязательный указатель на SECURITY_DESCRIPTOR для применения к файлу образа виртуального диска. Если этот параметр имеет значение NULL, будет использоваться дескриптор безопасности родительского каталога.
[in] Flags
Флаги создания, которые должны быть допустимым сочетанием перечисления CREATE_VIRTUAL_DISK_FLAG .
[in] ProviderSpecificFlags
Флаги, относящиеся к типу создаваемого виртуального диска. Может быть равно нулю, если они не требуются.
[in] Parameters
Указатель на допустимую структуру CREATE_VIRTUAL_DISK_PARAMETERS , содержащую данные параметров создания.
[in, optional] Overlapped
Необязательный указатель на допустимую структуру OVERLAPPED , если требуется асинхронная операция.
[out] Handle
Указатель на объект дескриптора, представляющий только что созданный виртуальный диск.
Возвращаемое значение
Если функция выполнена успешно, возвращаемое значение будет ERROR_SUCCESS а параметр Handle содержит допустимый указатель на новый объект виртуального диска.
Если функция завершается сбоем, возвращаемое значение представляет собой код ошибки, а значение параметра Handle не определено. Дополнительные сведения см. в разделе Системные коды ошибок.
Комментарии
Если функция CreateVirtualDisk завершается сбоем со значением кода ошибки ERROR_INVALID_PARAMETER, причина может быть вызвана любым из следующих условий:
- Параметр VirtualStorageType имеет значение NULL.
- Параметр Parameters имеет значение NULL.
- Для элемента Version параметра Parameters не задано значение CREATE_VIRTUAL_DISK_VERSION_1 или CREATE_VIRTUAL_DISK_VERSION_2.
- Элемент Version параметра Parameters имеет значение CREATE_VIRTUAL_DISK_VERSION_2 но для параметра VirtualDiskAccessMask не задано значение VIRTUAL_DISK_ACCESS_NONE.
- Для элемента BlockSizeInBytes параметра Parameters не задано значение CREATE_VIRTUAL_DISK_PARAMETERS_DEFAULT_BLOCK_SIZE (0), 0x80000 (512 КБ) или 0x200000 (2 МБ).
- Размер элемента MaximumSize параметра Parameters меньше 3 МБ.
- Член MaximumSize параметра Parameters не соответствует значению члена SectorSizeInBytes .
- Параметру VirtualDiskAccessMask присваивается значение
(VirtualDiskAccessMask & ~VIRTUAL_DISK_ACCESS_ALL)
. - Параметр Flags больше CREATE_VIRTUAL_DISK_FLAG_FULL_PHYSICAL_ALLOCATION.
При создании различных типов виртуальных дисков рекомендуется использовать следующие сочетания параметров создания.
- Необходимо указать флаг CREATE_VIRTUAL_DISK_FLAG_FULL_PHYSICAL_ALLOCATION .
- ParentPath не следует указывать.
- При необходимости можно указать SourcePath.
- Не следует указывать флаг CREATE_VIRTUAL_DISK_FLAG_FULL_PHYSICAL_ALLOCATION .
- ParentPath не следует указывать.
- При необходимости можно указать SourcePath.
- Не следует указывать флаг CREATE_VIRTUAL_DISK_FLAG_FULL_PHYSICAL_ALLOCATION .
- Необходимо указать ParentPath.
- Не следует указывать SourcePath.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 7 |
Минимальная версия сервера | Windows Server 2008 R2 |
Целевая платформа | Windows |
Header | virtdisk.h |
Библиотека | VirtDisk.lib |
DLL | VirtDisk.dll |