OpenVirtualDisk, fonction (virtdisk.h)
Ouvre un disque dur virtuel (VHD) ou un fichier image CD ou DVD (ISO) à utiliser.
Syntaxe
DWORD OpenVirtualDisk(
[in] PVIRTUAL_STORAGE_TYPE VirtualStorageType,
[in] PCWSTR Path,
[in] VIRTUAL_DISK_ACCESS_MASK VirtualDiskAccessMask,
[in] OPEN_VIRTUAL_DISK_FLAG Flags,
[in, optional] POPEN_VIRTUAL_DISK_PARAMETERS Parameters,
[out] PHANDLE Handle
);
Paramètres
[in] VirtualStorageType
Pointeur vers une structure VIRTUAL_STORAGE_TYPE valide.
[in] Path
Pointeur vers un chemin d’accès valide à l’image de disque virtuel à ouvrir.
[in] VirtualDiskAccessMask
Valeur valide de l’énumération VIRTUAL_DISK_ACCESS_MASK .
[in] Flags
Combinaison valide de valeurs de l’énumération OPEN_VIRTUAL_DISK_FLAG .
[in, optional] Parameters
Pointeur facultatif vers une structure OPEN_VIRTUAL_DISK_PARAMETERS valide. Peut être NULL.
[out] Handle
Pointeur vers l’objet handle qui représente le disque virtuel ouvert.
Valeur retournée
Si la fonction réussit, la valeur de retour est ERROR_SUCCESS (0) et le paramètre Handle contient un pointeur valide vers le nouvel objet de disque virtuel.
Si la fonction échoue, la valeur de retour est un code d’erreur et la valeur du paramètre Handle n’est pas définie. Pour plus d’informations, consultez Codes d’erreur système.
Remarques
Pour éviter l’échec d’une demande ouverte lors de la tentative d’ouverture d’un handle sur un disque virtuel attaché de manière permanente, les conditions suivantes s’appliquent :
- Le paramètre VirtualDiskAccessMask doit inclure l’indicateur VIRTUAL_DISK_ACCESS_DETACH (0x00040000).
- L’accès en écriture au fichier ne doit pas être demandé si l’opération d’ouverture d’origine qui a créé le disque virtuel attaché en permanence demandait uniquement l’accès en lecture.
- Le paramètre VirtualStorageType a la valeur NULL.
- Le paramètre Path a la valeur NULL.
- Le paramètre VirtualDiskAccessMask est défini sur une valeur de
(VirtualDiskAccessMask & ~VIRTUAL_DISK_ACCESS_ALL)
. - Le paramètre Flags est défini sur une valeur de
(Flags & ~(OPEN_VIRTUAL_DISK_FLAG_NO_PARENTS | OPEN_VIRTUAL_DISK_FLAG_BLANK_FILE))
. - Le membre Version du paramètre Parameters n’est pas défini sur OPEN_VIRTUAL_DISK_VERSION_1 ou OPEN_VIRTUAL_DISK_VERSION_2.
Le chemin d’accès pointé par le paramètre Path ne peut pas se trouver sur un partage réseau local (c’est-à-dire un partage réseau via un bouclage). Cette fonction échoue avec l’erreur ERROR_FILE_SYSTEM_LIMITATION (665) si le chemin se trouve sur un partage réseau local. Cette fonction échoue avec l’erreur ERROR_FILE_CORRUPT (1392) si un disque virtuel ISO est ouvert et que la taille du fichier n’est pas un multiple pair de 2 Ko (2 048 octets), si elle est d’au moins 34 Ko (34 816 octets), ou si le descripteur de structure de volume ne contient pas d’identificateur de volume CDFS ou UDFS connu.
Lorsqu’une application a terminé d’utiliser le handle d’objet retourné dans le paramètre Handle , utilisez la fonction CloseHandle pour fermer le handle.
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 |