Partager via


Fonction DetachVirtualDisk (virtdisk.h)

Détache un disque dur virtuel (VHD) ou un fichier image CD ou DVD (ISO) en localisant un fournisseur de disque virtuel approprié pour accomplir l’opération.

Syntaxe

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

Paramètres

[in] VirtualDiskHandle

Handle d’un disque virtuel ouvert, qui doit avoir été ouvert à l’aide de l’indicateur VIRTUAL_DISK_ACCESS_DETACH défini dans le paramètre VirtualDiskAccessMask sur la fonction OpenVirtualDisk . Pour plus d’informations sur l’ouverture d’un disque virtuel, consultez la fonction OpenVirtualDisk .

[in] Flags

Combinaison valide de valeurs de l’énumération DETACH_VIRTUAL_DISK_FLAG .

[in] ProviderSpecificFlags

Indicateurs spécifiques au type de disque virtuel détaché. Peut être égal à zéro si aucun n’est requis.

Valeur retournée

Statut de la demande.

Si la fonction réussit, la valeur de retour est ERROR_SUCCESS.

Si la fonction échoue, la valeur de retour est un code d’erreur. Pour plus d’informations, consultez Codes d’erreur système.

Remarques

Si la fonction DetachVirtualDisk échoue avec une valeur de code d’erreur ERROR_INVALID_PARAMETER, la cause peut être due à l’une des conditions suivantes :

  • Le paramètre VirtualDiskHandle n’est pas un handle valide créé par la fonction OpenVirtualDisk .
  • Le paramètre Flags est défini sur une valeur autre que DETACH_VIRTUAL_DISK_FLAG_NONE (0).
Le volume hôte qui contient le fichier d’image de disque virtuel ne peut pas être compressé ou chiffré EFS.

Tous les autres handles ouverts sur le disque virtuel doivent être fermés pour que la fonction DetachVirtualDisk puisse réussir.

Si le disque virtuel est attaché et qu’un autre handle utilisé pour l’attacher a été fermé, c’est parce que l’indicateur ATTACH_VIRTUAL_DISK_FLAG_PERMANENT_LIFETIME a été spécifié. Dans ce cas, la fonction DetachVirtualDisk peut réussir, mais le disque dur virtuel reste attaché. Si le ATTACH_VIRTUAL_DISK_FLAG_PERMANENT_LIFETIME n’a pas été spécifié, le disque virtuel est automatiquement détaché lorsque le dernier handle ouvert est fermé.

Cette fonction échoue si un fournisseur est introuvable, si le fichier image n’est pas valide, si l’image n’est pas attachée ou si l’appelant ne dispose pas de droits d’accès SE_MANAGE_VOLUME_PRIVILEGE sur un système d’exploitation Windows Server. Pour plus d’informations sur la sécurité des fichiers, consultez Sécurité des fichiers et droits d’accès.

Les fichiers image CD et DVD (ISO) ne sont pas pris en charge avant Windows 8 et Windows Server 2012.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 7
Serveur minimal pris en charge Windows Server 2008 R2
Plateforme cible Windows
En-tête virtdisk.h
Bibliothèque VirtDisk.lib
DLL VirtDisk.dll

Voir aussi

À propos du disque dur virtuel

Référence du disque dur virtuel