Función CreateVirtualDisk (virtdisk.h)
Crea un archivo de imagen de disco duro virtual (VHD), ya sea mediante parámetros predeterminados o mediante un disco virtual o un disco físico existente.
Sintaxis
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
);
Parámetros
[in] VirtualStorageType
Puntero a una estructura de VIRTUAL_STORAGE_TYPE que contiene el tipo de disco deseado y la información del proveedor.
[in] Path
Puntero a una cadena válida que representa la ruta de acceso al nuevo archivo de imagen de disco virtual.
[in] VirtualDiskAccessMask
Valor de VIRTUAL_DISK_ACCESS_MASK que se va a usar al abrir el archivo de disco virtual recién creado. Si el miembro Version del parámetro Parameters se establece en CREATE_VIRTUAL_DISK_VERSION_2 , solo se puede especificar el valor de VIRTUAL_DISK_ACCESS_NONE (0).
[in, optional] SecurityDescriptor
Puntero opcional a un SECURITY_DESCRIPTOR que se va a aplicar al archivo de imagen de disco virtual. Si este parámetro es NULL, se usará el descriptor de seguridad del directorio primario.
[in] Flags
Marcas de creación, que deben ser una combinación válida de la enumeración CREATE_VIRTUAL_DISK_FLAG .
[in] ProviderSpecificFlags
Marcas específicas del tipo de disco virtual que se va a crear. Puede ser cero si no se requiere ninguno.
[in] Parameters
Puntero a una estructura de CREATE_VIRTUAL_DISK_PARAMETERS válida que contiene datos de parámetros de creación.
[in, optional] Overlapped
Puntero opcional a una estructura SUPERPUESTA válida si se desea una operación asincrónica .
[out] Handle
Puntero al objeto handle que representa el disco virtual recién creado.
Valor devuelto
Si la función se ejecuta correctamente, el valor devuelto se ERROR_SUCCESS y el parámetro Handle contiene un puntero válido al nuevo objeto de disco virtual.
Si se produce un error en la función, el valor devuelto es un código de error y el valor del parámetro Handle no está definido. Para obtener más información, vea Códigos de error del sistema.
Comentarios
Si se produce un error en la función CreateVirtualDisk con un valor de código de error de ERROR_INVALID_PARAMETER, la causa puede deberse a cualquiera de las condiciones siguientes:
- El parámetro VirtualStorageType es NULL.
- El parámetro Parameters es NULL.
- El miembro Version del parámetro Parameters no está establecido en CREATE_VIRTUAL_DISK_VERSION_1 o CREATE_VIRTUAL_DISK_VERSION_2.
- El miembro Version del parámetro Parameters se establece en CREATE_VIRTUAL_DISK_VERSION_2 pero el parámetro VirtualDiskAccessMask no está establecido en VIRTUAL_DISK_ACCESS_NONE.
- El miembro BlockSizeInBytes del parámetro Parameters no se establece en CREATE_VIRTUAL_DISK_PARAMETERS_DEFAULT_BLOCK_SIZE (0), 0x80000 (512 KB) o 0x200000 (2 MB).
- El miembro MaximumSize del parámetro Parameters es inferior a 3 MB.
- El miembro MaximumSize del parámetro Parameters no está alineado con el valor del miembro SectorSizeInBytes .
- El parámetro VirtualDiskAccessMask se establece en un valor de
(VirtualDiskAccessMask & ~VIRTUAL_DISK_ACCESS_ALL)
. - El parámetro Flags es mayor que CREATE_VIRTUAL_DISK_FLAG_FULL_PHYSICAL_ALLOCATION.
Al crear los distintos tipos de discos virtuales, se recomiendan las siguientes combinaciones de parámetros de creación:
- Se debe especificar la marca CREATE_VIRTUAL_DISK_FLAG_FULL_PHYSICAL_ALLOCATION .
- No se debe especificar ParentPath.
- SourcePath se puede especificar si lo desea.
- No se debe especificar la marca CREATE_VIRTUAL_DISK_FLAG_FULL_PHYSICAL_ALLOCATION .
- No se debe especificar ParentPath.
- SourcePath se puede especificar si lo desea.
- No se debe especificar la marca CREATE_VIRTUAL_DISK_FLAG_FULL_PHYSICAL_ALLOCATION .
- Se debe especificar ParentPath.
- SourcePath no debe especificarse.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 7 |
Servidor mínimo compatible | Windows Server 2008 R2 |
Plataforma de destino | Windows |
Encabezado | virtdisk.h |
Library | VirtDisk.lib |
Archivo DLL | VirtDisk.dll |