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