Compartilhar via


Função AttachVirtualDisk (virtdisk.h)

Anexa um VHD (disco rígido virtual) ou UM ARQUIVO DE IMAGEM DE DVD ou CD (ISO) localizando um provedor VHD apropriado para realizar o anexo.

Sintaxe

DWORD AttachVirtualDisk(
  [in]           HANDLE                          VirtualDiskHandle,
  [in, optional] PSECURITY_DESCRIPTOR            SecurityDescriptor,
  [in]           ATTACH_VIRTUAL_DISK_FLAG        Flags,
  [in]           ULONG                           ProviderSpecificFlags,
  [in, optional] PATTACH_VIRTUAL_DISK_PARAMETERS Parameters,
  [in, optional] LPOVERLAPPED                    Overlapped
);

Parâmetros

[in] VirtualDiskHandle

Um identificador para um disco virtual aberto. Para obter informações sobre como abrir um disco virtual, consulte a função OpenVirtualDisk .

[in, optional] SecurityDescriptor

Um ponteiro opcional para um SECURITY_DESCRIPTOR a ser aplicado ao disco virtual anexado. Se esse parâmetro for NULL, o descritor de segurança do arquivo de imagem de disco virtual será usado.

Verifique se o descritor de segurança que AttachVirtualDisk se aplica ao disco virtual anexado concede a permissão de atributos de gravação para o usuário ou se o descritor de segurança do arquivo de imagem de disco virtual concede a permissão de atributos de gravação para o usuário se você especificar NULL para esse parâmetro. Se o descritor de segurança não conceder permissão de atributos de gravação para um usuário, o Shell exibirá o seguinte erro quando o usuário acessar o disco virtual anexado: a Lixeira está corrompida. Deseja esvaziar a Lixeira desta unidade?

[in] Flags

Uma combinação válida de valores da enumeração ATTACH_VIRTUAL_DISK_FLAG .

[in] ProviderSpecificFlags

Sinalizadores específicos para o tipo de disco virtual que está sendo anexado. Pode ser zero se nenhuma for necessária.

[in, optional] Parameters

Um ponteiro para uma estrutura de ATTACH_VIRTUAL_DISK_PARAMETERS válida que contém dados de parâmetro de anexo.

[in, optional] Overlapped

Um ponteiro opcional para uma estrutura OVERLAPPED válida se a operação assíncrona for desejada.

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

A função AttachVirtualDisk não tem suporte para VHDs ou ISOs hospedados em mídia SD (Secure Digital) conectada a um controlador SD no modo nativo (para o qual sffdisk.sys, sffp_sd.sys e drivers sdbus.sys seriam carregados) e falhará com o erro ERROR_FILE_NOT_FOUND. Há suporte para VHDs e ISOs hospedados em mídia SD conectada a um leitor USB.

Se a função AttachVirtualDisk 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 maior que 0x020.
  • O membro Version do parâmetro Parameters não está definido como ATTACH_VIRTUAL_DISK_VERSION_1.
O volume do host que contém o arquivo de imagem de disco virtual não pode ser compactado ou criptografado por EFS.

Essa função falhará se um provedor não puder ser encontrado, se o arquivo de imagem VHD ou ISO não for válido, se a imagem VHD já estiver anexada ou se o chamador não tiver direitos de acesso SE_MANAGE_VOLUME_PRIVILEGE . Para obter mais informações sobre segurança de arquivo, consulte Segurança de arquivos e Direitos de Acesso.

O modo de acesso pretendido do disco virtual deve ser considerado ao abrir o identificador de disco virtual. Por exemplo, se o disco virtual estiver sendo anexado para acesso de leitura/gravação, o parâmetro VirtualDiskHandle deverá ter sido aberto usando o sinalizador de acesso VIRTUAL_DISK_ACCESS_ATTACH_RW . Para obter mais informações, consulte VIRTUAL_DISK_ACCESS_MASK e OpenVirtualDisk.

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