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