Compartilhar via


Método IVdsOpenVDisk::Attach (vds.h)

[Começando com Windows 8 e Windows Server 2012, a interface COM do Serviço de Disco Virtual é substituída pela API de Gerenciamento de Armazenamento do Windows.]

Anexa um disco virtual.

Sintaxe

HRESULT Attach(
  [in]  LPWSTR                   pStringSecurityDescriptor,
  [in]  ATTACH_VIRTUAL_DISK_FLAG Flags,
  [in]  ULONG                    ProviderSpecificFlags,
  [in]  ULONG                    TimeoutInMs,
  [out] IVdsAsync                **ppAsync
);

Parâmetros

[in] pStringSecurityDescriptor

Uma cadeia de caracteres que contém o descritor de segurança para o disco virtual. Se não for especificado, o descritor de segurança em uso será: "D:P(A;; GA;;; WD)" no Windows 7 e "D:P(A;; GA;;; WD)(A;; GA;;; AC)" no Windows 8.1 e posterior.

[in] Flags

Uma máscara de bits de ATTACH_VIRTUAL_DISK_FLAG valores de enumeração que especificam como o disco virtual deve ser anexado. Os possíveis valores incluem os seguintes.

Valor Significado
ATTACH_VIRTUAL_DISK_FLAG_NONE
0x00000000
Nenhum sinalizador é especificado.
ATTACH_VIRTUAL_DISK_FLAG_READ_ONLY
0x00000001
Anexe o disco virtual como somente leitura.
ATTACH_VIRTUAL_DISK_FLAG_NO_DRIVE_LETTER
0x00000002
Monte todos os volumes no disco virtual anexado sem atribuir letras de unidade a eles.
ATTACH_VIRTUAL_DISK_FLAG_PERMANENT_LIFETIME
0x00000004
O serviço VDS define automaticamente esse sinalizador para que o VHD permaneça anexado até que o método IVdsOpenVDisk::D etach seja chamado para desanexá-lo.
ATTACH_VIRTUAL_DISK_FLAG_NO_LOCAL_HOST
0x00000008
Reservado. Não use.

[in] ProviderSpecificFlags

Uma máscara de bits de sinalizadores que são específicos para o tipo de disco virtual que está sendo anexado. Esses sinalizadores são específicos do provedor. Para o provedor de disco virtual da Microsoft, esse parâmetro deve ser zero.

[in] TimeoutInMs

Esse parâmetro é reservado para uso futuro.

[out] ppAsync

Um ponteiro para uma interface IVdsAsync que, após a conclusão bem-sucedida, recebe a interface IVdsAsync para monitorar e controlar essa operação. Os chamadores devem liberar a interface recebida quando tiverem terminado com ela. Se o método IVdsAsync::Wait for chamado na interface e um valor HRESULT bem-sucedido for retornado, as interfaces retornadas na estrutura VDS_ASYNC_OUTPUT deverão ser liberadas chamando o método IUnknown::Release em cada ponteiro de interface. No entanto, se Wait retornar um valor HRESULT de falha ou se o parâmetro pHrResult de Wait receber um valor HRESULT de falha, os ponteiros de interface na estrutura VDS_ASYNC_OUTPUT serão NULL e não precisarão ser liberados. Você pode testar valores HRESULT com êxito ou falha usando as macros SUCCEEDED e FAILED definidas em Winerror.h.

Retornar valor

Esse método pode retornar valores HRESULT padrão, como E_INVALIDARG ou E_OUTOFMEMORY e valores retornados específicos do VDS. Ele também pode retornar códigos de erro do sistema convertidos usando a macro HRESULT_FROM_WIN32 . Os erros podem ser originados do próprio VDS ou do provedor de VDS subjacente que está sendo usado. Os possíveis valores retornados incluem o seguinte.

Código de retorno Descrição
S_OK
O método foi concluído com sucesso.

Comentários

Quando um disco virtual é anexado, o chamador pode receber uma ou todas as seguintes notificações:

  • Se o chamador estiver registrado para notificações do VDS, o chamador receberá uma notificação de chegada em disco. Para obter mais informações, consulte Notificações do VDS.
  • Se o chamador estiver registrado para notificações PnP, o chamador receberá uma notificação de chegada do disco PnP. Para obter mais informações, consulte RegisterDeviceNotification.
Os aplicativos devem inicializar a segurança em todo o processo chamando a função CoInitializeSecurity . O parâmetro dwImpLevel deve ser definido como RPC_C_IMP_LEVEL_IMPERSONATE.

Windows Server 2008, Windows Vista e Windows Server 2003: Essas ações não são necessárias até o Windows 7 e o Windows Server 2008 R2.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 7 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 R2 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho vds.h
Biblioteca Uuid.lib

Confira também

IVdsOpenVDisk