AttachVirtualDisk, fonction (virtdisk.h)

Attache un disque dur virtuel (VHD) ou un fichier image CD ou DVD (ISO) en recherchant un fournisseur de disque dur virtuel approprié pour effectuer la pièce jointe.

Syntaxe

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

Paramètres

[in] VirtualDiskHandle

Handle pour un disque virtuel ouvert. Pour plus d’informations sur l’ouverture d’un disque virtuel, consultez la fonction OpenVirtualDisk .

[in, optional] SecurityDescriptor

Pointeur facultatif vers un SECURITY_DESCRIPTOR à appliquer au disque virtuel attaché. Si ce paramètre a la valeur NULL, le descripteur de sécurité du fichier image de disque virtuel est utilisé.

Vérifiez que le descripteur de sécurité attachVirtualDisk s’applique au disque virtuel attaché accorde l’autorisation d’attributs d’écriture à l’utilisateur, ou que le descripteur de sécurité du fichier image de disque virtuel accorde l’autorisation d’attributs d’écriture à l’utilisateur si vous spécifiez NULL pour ce paramètre. Si le descripteur de sécurité n’accorde pas l’autorisation d’attributs d’écriture à un utilisateur, Shell affiche l’erreur suivante lorsque l’utilisateur accède au disque virtuel attaché : La Corbeille est endommagée. Voulez-vous vider la Corbeille pour ce lecteur ?

[in] Flags

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

[in] ProviderSpecificFlags

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

[in, optional] Parameters

Pointeur vers une structure de ATTACH_VIRTUAL_DISK_PARAMETERS valide qui contient des données de paramètre de pièce jointe.

[in, optional] Overlapped

Pointeur facultatif vers une structure OVERLAPPED valide si une opération asynchrone est souhaitée.

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

La fonction AttachVirtualDisk n’est pas prise en charge pour les disques durs virtuels ou les isos hébergés sur un support SD (Secure Digital) branché à un contrôleur SD en mode natif (pour lequel sffdisk.sys, sffp_sd.sys et sdbus.sys pilotes sont chargés) et échoue avec l’erreur ERROR_FILE_NOT_FOUND. Les disques durs virtuels et les isos hébergés sur un support SD connecté à un lecteur USB sont pris en charge.

Si la fonction AttachVirtualDisk é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 supérieure 0x020à .
  • Le membre Version du paramètre Parameters n’est pas défini sur ATTACH_VIRTUAL_DISK_VERSION_1.
Le volume hôte qui contient le fichier image de disque virtuel ne peut pas être compressé ou chiffré PAR EFS.

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

Le mode d’accès prévu du disque virtuel doit être pris en compte lors de l’ouverture du handle de disque virtuel. Par exemple, si le disque virtuel est attaché pour l’accès en lecture/écriture, le paramètre VirtualDiskHandle doit avoir été ouvert à l’aide de l’indicateur d’accès VIRTUAL_DISK_ACCESS_ATTACH_RW . Pour plus d’informations, consultez VIRTUAL_DISK_ACCESS_MASK et OpenVirtualDisk.

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