Compartir a través de


Función AttachVirtualDisk (virtdisk.h)

Conecta un disco duro virtual (VHD) o un archivo de imagen de CD o DVD (ISO) mediante la localización de un proveedor de VHD adecuado para realizar los datos adjuntos.

Sintaxis

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

Identificador de un disco virtual abierto. Para obtener información sobre cómo abrir un disco virtual, consulte la función OpenVirtualDisk .

[in, optional] SecurityDescriptor

Puntero opcional a un SECURITY_DESCRIPTOR que se va a aplicar al disco virtual conectado. Si este parámetro es NULL, se usa el descriptor de seguridad del archivo de imagen de disco virtual.

Asegúrese de que el descriptor de seguridad que AttachVirtualDisk aplica al disco virtual conectado concede al usuario el permiso de atributos de escritura, o que el descriptor de seguridad del archivo de imagen de disco virtual concede el permiso de atributos de escritura para el usuario si especifica NULL para este parámetro. Si el descriptor de seguridad no concede permisos de escritura para un usuario, Shell muestra el siguiente error cuando el usuario accede al disco virtual conectado: La Papelera de reciclaje está dañada. ¿Desea vaciar la Papelera de reciclaje para esta unidad?

[in] Flags

Combinación válida de valores de la enumeración ATTACH_VIRTUAL_DISK_FLAG .

[in] ProviderSpecificFlags

Marcas específicas del tipo de disco virtual que se está conectando. Puede ser cero si no se requiere ninguno.

[in, optional] Parameters

Puntero a una estructura de ATTACH_VIRTUAL_DISK_PARAMETERS válida que contiene datos de parámetros adjuntos.

[in, optional] Overlapped

Puntero opcional a una estructura SUPERPUESTA válida si se desea una operación asincrónica .

Valor devuelto

Estado de la solicitud.

Si la función se ejecuta correctamente, el valor devuelto se ERROR_SUCCESS.

Si se produce un error en la función, el valor devuelto es un código de error. Para obtener más información, vea Códigos de error del sistema.

Comentarios

La función AttachVirtualDisk no se admite para discos duros virtuales o ISO hospedados en medios digitales seguros (SD) conectados a un controlador SD en modo nativo (para el que se cargarían los controladores de sffdisk.sys, sffp_sd.sys y sdbus.sys) y se producirá el error ERROR_FILE_NOT_FOUND. Se admiten discos duros virtuales e ISO hospedados en medios SD conectados a un lector USB.

Si se produce un error en la función AttachVirtualDisk con un valor de código de error de ERROR_INVALID_PARAMETER, la causa puede deberse a cualquiera de las condiciones siguientes:

  • El parámetro VirtualDiskHandle no es un identificador válido creado por la función OpenVirtualDisk .
  • El parámetro Flags se establece en un valor mayor que 0x020.
  • El miembro Version del parámetro Parameters no está establecido en ATTACH_VIRTUAL_DISK_VERSION_1.
El volumen de host que contiene el archivo de imagen de disco virtual no se puede comprimir ni cifrar EFS.

Se producirá un error en esta función si no se encuentra un proveedor, si el archivo de imagen VHD o ISO no es válido, si la imagen del disco duro virtual ya está asociada o si el autor de la llamada no tiene SE_MANAGE_VOLUME_PRIVILEGE derechos de acceso. Para obtener más información sobre la seguridad de los archivos, vea Derechos de acceso y seguridad de archivos.

El modo de acceso previsto del disco virtual debe tenerse en cuenta al abrir el identificador de disco virtual. Por ejemplo, si el disco virtual se está conectando para el acceso de lectura y escritura, el parámetro VirtualDiskHandle debe haberse abierto con la marca de acceso VIRTUAL_DISK_ACCESS_ATTACH_RW . Para obtener más información, vea VIRTUAL_DISK_ACCESS_MASK y OpenVirtualDisk.

Los archivos de imagen de CD y DVD (ISO) no se admiten antes de Windows 8 y Windows Server 2012.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 7
Servidor mínimo compatible Windows Server 2008 R2
Plataforma de destino Windows
Encabezado virtdisk.h
Library VirtDisk.lib
Archivo DLL VirtDisk.dll

Consulte también

Acerca de VHD

Referencia de VHD