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