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).
O volume do host que contém o arquivo de imagem de disco virtual não pode ser compactado ou criptografado por EFS.

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

Confira também

Sobre o VHD

Referência de VHD