Função CreateVirtualDisk (virtdisk.h)
Cria um arquivo de imagem VHD (disco rígido virtual), usando parâmetros padrão ou usando um disco virtual ou disco físico existente.
Sintaxe
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
Um ponteiro para uma estrutura VIRTUAL_STORAGE_TYPE que contém o tipo de disco desejado e as informações do fornecedor.
[in] Path
Um ponteiro para uma cadeia de caracteres válida que representa o caminho para o novo arquivo de imagem de disco virtual.
[in] VirtualDiskAccessMask
O valor VIRTUAL_DISK_ACCESS_MASK a ser usado ao abrir o arquivo de disco virtual recém-criado. Se o membro Version do parâmetro Parameters estiver definido como CREATE_VIRTUAL_DISK_VERSION_2 , somente o valor de VIRTUAL_DISK_ACCESS_NONE (0) poderá ser especificado.
[in, optional] SecurityDescriptor
Um ponteiro opcional para um SECURITY_DESCRIPTOR a ser aplicado ao arquivo de imagem de disco virtual. Se esse parâmetro for NULL, o descritor de segurança do diretório pai será usado.
[in] Flags
Sinalizadores de criação, que devem ser uma combinação válida da enumeração CREATE_VIRTUAL_DISK_FLAG .
[in] ProviderSpecificFlags
Sinalizadores específicos para o tipo de disco virtual que está sendo criado. Pode ser zero se nenhum for necessário.
[in] Parameters
Um ponteiro para uma estrutura de CREATE_VIRTUAL_DISK_PARAMETERS válida que contém dados de parâmetro de criação.
[in, optional] Overlapped
Um ponteiro opcional para uma estrutura OVERLAPPED válida se a operação assíncrona for desejada.
[out] Handle
Um ponteiro para o objeto handle que representa o disco virtual recém-criado.
Retornar valor
Se a função for bem-sucedida, o valor retornado será ERROR_SUCCESS e o parâmetro Handle conterá um ponteiro válido para o novo objeto de disco virtual.
Se a função falhar, o valor retornado será um código de erro e o valor do parâmetro Handle será indefinido. Para obter mais informações, consulte Códigos de erro do sistema.
Comentários
Se a função CreateVirtualDisk falhar com um valor de código de erro de ERROR_INVALID_PARAMETER, a causa poderá ser devido a qualquer uma das seguintes condições:
- O parâmetro VirtualStorageType é NULL.
- O parâmetro Parameters é NULL.
- O membro Version do parâmetro Parameters não está definido como CREATE_VIRTUAL_DISK_VERSION_1 ou CREATE_VIRTUAL_DISK_VERSION_2.
- O membro Version do parâmetro Parameters é definido como CREATE_VIRTUAL_DISK_VERSION_2 mas o parâmetro VirtualDiskAccessMask não está definido como VIRTUAL_DISK_ACCESS_NONE.
- O membro BlockSizeInBytes do parâmetro Parameters não está definido como CREATE_VIRTUAL_DISK_PARAMETERS_DEFAULT_BLOCK_SIZE (0), 0x80000 (512 KB) ou 0x200000 (2 MB).
- O membro MaximumSize do parâmetro Parameters é menor que 3 MB.
- O membro MaximumSize do parâmetro Parameters não está alinhado com o valor do membro SectorSizeInBytes .
- O parâmetro VirtualDiskAccessMask é definido como um valor de
(VirtualDiskAccessMask & ~VIRTUAL_DISK_ACCESS_ALL)
. - O parâmetro Flags é maior que CREATE_VIRTUAL_DISK_FLAG_FULL_PHYSICAL_ALLOCATION.
Ao criar os vários tipos de discos virtuais, as seguintes combinações de parâmetros de criação são recomendadas:
- O sinalizador CREATE_VIRTUAL_DISK_FLAG_FULL_PHYSICAL_ALLOCATION deve ser especificado.
- ParentPath não deve ser especificado.
- SourcePath pode ser especificado, se desejado.
- O sinalizador CREATE_VIRTUAL_DISK_FLAG_FULL_PHYSICAL_ALLOCATION não deve ser especificado.
- ParentPath não deve ser especificado.
- SourcePath pode ser especificado, se desejado.
- O sinalizador CREATE_VIRTUAL_DISK_FLAG_FULL_PHYSICAL_ALLOCATION não deve ser especificado.
- ParentPath deve ser especificado.
- SourcePath não deve ser especificado.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 7 |
Servidor mínimo com suporte | Windows Server 2008 R2 |
Plataforma de Destino | Windows |
Cabeçalho | virtdisk.h |
Biblioteca | VirtDisk.lib |
DLL | VirtDisk.dll |