Compartir a través de


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

[A partir de Windows 8 y Windows Server 2012, la interfaz COM del servicio de disco virtual se sustituye por la API de administración de almacenamiento de Windows.]

Conecta un disco virtual.

Sintaxis

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

Parámetros

[in] pStringSecurityDescriptor

Cadena que contiene el descriptor de seguridad del disco virtual. Si no se especifica, el descriptor de seguridad en uso es: "D:P(A;; GA;;; WD)" en Windows 7 y "D:P(A;; GA;;; WD)(A;; GA;;; AC)" en Windows 8.1 y versiones posteriores.

[in] Flags

Máscara de bits de ATTACH_VIRTUAL_DISK_FLAG valores de enumeración que especifican cómo se va a conectar el disco virtual. Estos son algunos de los valores posibles.

Valor Significado
ATTACH_VIRTUAL_DISK_FLAG_NONE
0x00000000
No hay marcas especificadas.
ATTACH_VIRTUAL_DISK_FLAG_READ_ONLY
0x00000001
Conecte el disco virtual como de solo lectura.
ATTACH_VIRTUAL_DISK_FLAG_NO_DRIVE_LETTER
0x00000002
Monte todos los volúmenes en el disco virtual conectado sin asignarles letras de unidad.
ATTACH_VIRTUAL_DISK_FLAG_PERMANENT_LIFETIME
0x00000004
El servicio VDS establece automáticamente esta marca para que el disco duro virtual permanezca conectado hasta que se llame al método IVdsOpenVDisk::D etach para desasociarlo.
ATTACH_VIRTUAL_DISK_FLAG_NO_LOCAL_HOST
0x00000008
Reservado. No utilizar.

[in] ProviderSpecificFlags

Máscara de bits de marcas que son específicas del tipo de disco virtual que se está conectando. Estas marcas son específicas del proveedor. Para el proveedor de discos virtuales de Microsoft, este parámetro debe ser cero.

[in] TimeoutInMs

Este parámetro se reserva para uso futuro.

[out] ppAsync

Puntero a una interfaz IVdsAsync que, tras la finalización correcta, recibe la interfaz IVdsAsync para supervisar y controlar esta operación. Los autores de llamadas deben liberar la interfaz recibida cuando hayan terminado con ella. Si se llama al método IVdsAsync::Wait en la interfaz y se devuelve un valor HRESULT correcto, las interfaces devueltas en la estructura de VDS_ASYNC_OUTPUT deben liberarse llamando al método IUnknown::Release en cada puntero de interfaz. Sin embargo, si Wait devuelve un valor HRESULT de error o si el parámetro pHrResult de Wait recibe un valor HRESULT de error, los punteros de interfaz de la estructura VDS_ASYNC_OUTPUT son NULL y no es necesario liberar. Puede probar los valores HRESULT correctos o erróneos mediante las macros SUCCEEDED y FAILED definidas en Winerror.h.

Valor devuelto

Este método puede devolver valores HRESULT estándar, como E_INVALIDARG o E_OUTOFMEMORY, y valores devueltos específicos de VDS. También puede devolver códigos de error del sistema convertidos mediante la macro HRESULT_FROM_WIN32 . Los errores se pueden originar en VDS en sí o en el proveedor de VDS subyacente que se está usando. Entre los posibles valores devueltos se incluyen los siguientes.

Código devuelto Descripción
S_OK
El método se completó correctamente.

Comentarios

Cuando se conecta un disco virtual, el autor de la llamada puede recibir una o todas las notificaciones siguientes:

  • Si el autor de la llamada está registrado para las notificaciones de VDS, el autor de la llamada recibe una notificación de llegada de disco. Para obtener más información, consulte Notificaciones de VDS.
  • Si el autor de la llamada está registrado para las notificaciones PnP, el autor de la llamada recibe una notificación de llegada del disco PnP. Para obtener más información, vea RegisterDeviceNotification.
Las aplicaciones deben inicializar la seguridad de todo el proceso mediante una llamada a la función CoInitializeSecurity . El parámetro dwImpLevel debe establecerse en RPC_C_IMP_LEVEL_IMPERSONATE.

Windows Server 2008, Windows Vista y Windows Server 2003: Estas acciones no son necesarias hasta Windows 7 y Windows Server 2008 R2.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 7 [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 R2 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado vds.h
Library Uuid.lib

Consulte también

IVdsOpenVDisk