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.
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 |