Função DetachVirtualDisk (virtdisk.h)
Desanexa um VHD (disco rígido virtual) ou um ISO (arquivo de imagem de CD ou DVD) localizando um provedor de disco virtual apropriado para realizar a operação.
Sintaxe
DWORD DetachVirtualDisk(
[in] HANDLE VirtualDiskHandle,
[in] DETACH_VIRTUAL_DISK_FLAG Flags,
[in] ULONG ProviderSpecificFlags
);
Parâmetros
[in] VirtualDiskHandle
Um identificador para um disco virtual aberto, que deve ter sido aberto usando o sinalizador VIRTUAL_DISK_ACCESS_DETACH definido no parâmetro VirtualDiskAccessMask para a função OpenVirtualDisk . Para obter informações sobre como abrir um disco virtual, consulte a função OpenVirtualDisk .
[in] Flags
Uma combinação válida de valores da enumeração DETACH_VIRTUAL_DISK_FLAG .
[in] ProviderSpecificFlags
Sinaliza específicos para o tipo de disco virtual que está sendo desanexado. Pode ser zero se nenhuma for necessária.
Retornar valor
Status da solicitação.
Se a função for bem-sucedida, o valor retornado será ERROR_SUCCESS.
Se a função falhar, o valor retornado será um código de erro. Para obter mais informações, consulte Códigos de erro do sistema.
Comentários
Se a função DetachVirtualDisk 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 VirtualDiskHandle não é um identificador válido criado pela função OpenVirtualDisk .
- O parâmetro Flags é definido como um valor diferente de DETACH_VIRTUAL_DISK_FLAG_NONE (0).
Todas as outras alças abertas para o disco virtual devem ser fechadas antes que a função DetachVirtualDisk possa ser bem-sucedida.
Se o disco virtual estiver anexado e outro identificador que foi usado para anexá-lo tiver sido fechado, isso ocorre porque o sinalizador ATTACH_VIRTUAL_DISK_FLAG_PERMANENT_LIFETIME foi especificado. Nesse caso, a função DetachVirtualDisk pode ter êxito, mas o VHD permanecerá anexado. Se o ATTACH_VIRTUAL_DISK_FLAG_PERMANENT_LIFETIME não tiver sido especificado, o disco virtual será desanexado automaticamente quando o último identificador aberto for fechado.
Essa função falhará se um provedor não puder ser encontrado, se o arquivo de imagem não for válido, se a imagem não estiver anexada ou se o chamador não tiver direitos de acesso SE_MANAGE_VOLUME_PRIVILEGE em um sistema operacional Windows Server. Para obter mais informações sobre segurança de arquivo, consulte Segurança de arquivos e Direitos de Acesso.
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 |