Função OpenVirtualDisk (virtdisk.h)
Abre um VHD (disco rígido virtual) ou um ISO (arquivo de imagem de CD ou DVD) para uso.
Sintaxe
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
);
Parâmetros
[in] VirtualStorageType
Um ponteiro para uma estrutura de VIRTUAL_STORAGE_TYPE válida.
[in] Path
Um ponteiro para um caminho válido para a imagem de disco virtual a ser aberta.
[in] VirtualDiskAccessMask
Um valor válido da enumeração VIRTUAL_DISK_ACCESS_MASK .
[in] Flags
Uma combinação válida de valores da enumeração OPEN_VIRTUAL_DISK_FLAG .
[in, optional] Parameters
Um ponteiro opcional para uma estrutura de OPEN_VIRTUAL_DISK_PARAMETERS válida. Pode ser NULL.
[out] Handle
Um ponteiro para o objeto handle que representa o disco virtual aberto.
Retornar valor
Se a função for bem-sucedida, o valor retornado será ERROR_SUCCESS (0) 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
Para evitar uma falha de solicitação aberta ao tentar abrir um identificador para um disco virtual permanentemente anexado, os seguintes requisitos se aplicam:
- O parâmetro VirtualDiskAccessMask deve incluir o sinalizador VIRTUAL_DISK_ACCESS_DETACH (0x00040000).
- O acesso de gravação ao arquivo não deve ser solicitado se a operação aberta original que criou o disco virtual permanentemente anexado solicitou apenas acesso de leitura.
- O parâmetro VirtualStorageType é NULL.
- O parâmetro Path é NULL.
- O parâmetro VirtualDiskAccessMask é definido como um valor de
(VirtualDiskAccessMask & ~VIRTUAL_DISK_ACCESS_ALL)
. - O parâmetro Flags é definido como um valor de
(Flags & ~(OPEN_VIRTUAL_DISK_FLAG_NO_PARENTS | OPEN_VIRTUAL_DISK_FLAG_BLANK_FILE))
. - O membro Version do parâmetro Parameters não está definido como OPEN_VIRTUAL_DISK_VERSION_1 ou OPEN_VIRTUAL_DISK_VERSION_2.
O caminho apontado pelo parâmetro Path não pode estar em um compartilhamento de rede local (que é um compartilhamento de rede por meio de loopback). Essa função falhará com o erro ERROR_FILE_SYSTEM_LIMITATION (665) se o caminho estiver em um compartilhamento de rede local. Essa função falhará com o erro ERROR_FILE_CORRUPT (1392) se um disco virtual ISO estiver sendo aberto e o tamanho do arquivo não for um múltiplo de 2 KB (2.048 bytes), for pelo menos 34 KB (34.816 bytes) ou o descritor de estrutura de volume não contiver um identificador de volume cdfs ou UDFS conhecido.
Quando um aplicativo terminar de usar o identificador de objeto retornado no parâmetro Handle , use a função CloseHandle para fechar o identificador.
Não há suporte para ISO (arquivos de imagem de CD e DVD) antes de Windows 8 e Windows Server 2012.
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 |