Share via


Méthode IVdsOpenVDisk ::Attach (vds.h)

[À compter de Windows 8 et Windows Server 2012, l’interface COM du service de disque virtuel est remplacée par l’API Gestion du stockage Windows.]

Joint un disque virtuel.

Syntaxe

HRESULT Attach(
  [in]  LPWSTR                   pStringSecurityDescriptor,
  [in]  ATTACH_VIRTUAL_DISK_FLAG Flags,
  [in]  ULONG                    ProviderSpecificFlags,
  [in]  ULONG                    TimeoutInMs,
  [out] IVdsAsync                **ppAsync
);

Paramètres

[in] pStringSecurityDescriptor

Chaîne qui contient le descripteur de sécurité du disque virtuel. S’il n’est pas spécifié, le descripteur de sécurité utilisé est : « D :P(A ;; GA;;; WD) » sur Windows 7 et « D :P(A ;; GA;;; WD)(A ;; GA;;; AC) » sur Windows 8.1 et versions ultérieures.

[in] Flags

Masque de bits de ATTACH_VIRTUAL_DISK_FLAG valeurs d’énumération spécifiant la façon dont le disque virtuel doit être attaché. Les valeurs possibles sont les suivantes.

Valeur Signification
ATTACH_VIRTUAL_DISK_FLAG_NONE
0x00000000
Aucun indicateur n'est spécifié.
ATTACH_VIRTUAL_DISK_FLAG_READ_ONLY
0x00000001
Attachez le disque virtuel en lecture seule.
ATTACH_VIRTUAL_DISK_FLAG_NO_DRIVE_LETTER
0x00000002
Montez tous les volumes sur le disque virtuel attaché sans leur affecter de lettres de lecteur.
ATTACH_VIRTUAL_DISK_FLAG_PERMANENT_LIFETIME
0x00000004
Le service VDS définit automatiquement cet indicateur afin que le disque dur virtuel reste attaché jusqu’à ce que la méthode IVdsOpenVDisk ::D etach soit appelée pour le détacher.
ATTACH_VIRTUAL_DISK_FLAG_NO_LOCAL_HOST
0x00000008
Réservé. Ne pas utiliser.

[in] ProviderSpecificFlags

Masque de bits d’indicateurs spécifiques au type de disque virtuel attaché. Ces indicateurs sont spécifiques au fournisseur. Pour le fournisseur de disque virtuel Microsoft, ce paramètre doit être égal à zéro.

[in] TimeoutInMs

Ce paramètre est réservé à un usage futur.

[out] ppAsync

Pointeur vers une interface IVdsAsync qui, une fois l’exécution réussie, reçoit l’interface IVdsAsync pour surveiller et contrôler cette opération. Les appelants doivent libérer l’interface reçue lorsqu’ils en ont terminé. Si la méthode IVdsAsync ::Wait est appelée sur l’interface et qu’une valeur HRESULT de réussite est retournée, les interfaces retournées dans la structure VDS_ASYNC_OUTPUT doivent être libérées en appelant la méthode IUnknown ::Release sur chaque pointeur d’interface. Toutefois, si Wait retourne une valeur HRESULT d’échec ou si le paramètre pHrResult de Wait reçoit une valeur HRESULT d’échec, les pointeurs d’interface dans la structure VDS_ASYNC_OUTPUT sont NULL et n’ont pas besoin d’être libérés. Vous pouvez tester la réussite ou l’échec des valeurs HRESULT à l’aide des macros SUCCEEDED et FAILED définies dans Winerror.h.

Valeur retournée

Cette méthode peut retourner des valeurs HRESULT standard, telles que E_INVALIDARG ou E_OUTOFMEMORY, et des valeurs de retour spécifiques à VDS. Il peut également retourner des codes d’erreur système convertis à l’aide de la macro HRESULT_FROM_WIN32 . Les erreurs peuvent provenir de VDS lui-même ou du fournisseur VDS sous-jacent utilisé. Les valeurs de retour possibles sont les suivantes.

Code de retour Description
S_OK
La commande s'est correctement terminée.

Notes

Lorsqu’un disque virtuel est attaché, l’appelant peut recevoir une ou toutes les notifications suivantes :

  • Si l’appelant est inscrit pour les notifications VDS, l’appelant reçoit une notification d’arrivée de disque. Pour plus d’informations, consultez Notifications VDS.
  • Si l’appelant est inscrit pour les notifications PnP, l’appelant reçoit une notification d’arrivée de disque PnP. Pour plus d’informations, consultez RegisterDeviceNotification.
Les applications doivent initialiser la sécurité à l’échelle du processus en appelant la fonction CoInitializeSecurity . Le paramètre dwImpLevel doit être défini sur RPC_C_IMP_LEVEL_IMPERSONATE.

Windows Server 2008, Windows Vista et Windows Server 2003 : Ces actions ne sont pas requises avant Windows 7 et Windows Server 2008 R2.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 7 [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 R2 [applications de bureau uniquement]
Plateforme cible Windows
En-tête vds.h
Bibliothèque Uuid.lib

Voir aussi

IVdsOpenVDisk