Compartir a través de


Función DetachVirtualDisk (virtdisk.h)

Desasocia un disco duro virtual (VHD) o un archivo de imagen de CD o DVD (ISO) localizando un proveedor de disco virtual adecuado para realizar la operación.

Sintaxis

DWORD DetachVirtualDisk(
  [in] HANDLE                   VirtualDiskHandle,
  [in] DETACH_VIRTUAL_DISK_FLAG Flags,
  [in] ULONG                    ProviderSpecificFlags
);

Parámetros

[in] VirtualDiskHandle

Identificador de un disco virtual abierto, que debe haberse abierto con la marca VIRTUAL_DISK_ACCESS_DETACH establecida en el parámetro VirtualDiskAccessMask en la función OpenVirtualDisk . Para obtener información sobre cómo abrir un disco virtual, consulte la función OpenVirtualDisk .

[in] Flags

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

[in] ProviderSpecificFlags

Marcas específicas del tipo de disco virtual que se va a desasociar. Puede ser cero si no se requiere ninguno.

Valor devuelto

Estado de la solicitud.

Si la función se ejecuta correctamente, el valor devuelto es 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

Si se produce un error en la función DetachVirtualDisk 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 distinto de DETACH_VIRTUAL_DISK_FLAG_NONE (0).
El volumen de host que contiene el archivo de imagen de disco virtual no se puede comprimir ni cifrar EFS.

Todos los demás identificadores abiertos en el disco virtual deben cerrarse antes de que la función DetachVirtualDisk pueda realizarse correctamente.

Si el disco virtual está conectado y se ha cerrado otro identificador que se usó para adjuntarlo, esto se debe a que se especificó la marca de ATTACH_VIRTUAL_DISK_FLAG_PERMANENT_LIFETIME . En este caso, la función DetachVirtualDisk puede realizarse correctamente, pero el disco duro virtual permanecerá conectado. Si no se especificó el ATTACH_VIRTUAL_DISK_FLAG_PERMANENT_LIFETIME , el disco virtual se desasociará automáticamente cuando se cierre el último identificador abierto.

Esta función producirá un error si no se encuentra un proveedor, si el archivo de imagen no es válido, si la imagen no está adjunta o si el autor de la llamada no tiene SE_MANAGE_VOLUME_PRIVILEGE derechos de acceso en un sistema operativo Windows Server. Para obtener más información sobre la seguridad de los archivos, vea Seguridad de archivos y derechos de acceso.

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