Partager via


IVdsOpenVDisk ::Compact, méthode (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.]

Compacte le disque virtuel pour réduire la taille physique du fichier de stockage.

Syntaxe

HRESULT Compact(
  [in]  COMPACT_VIRTUAL_DISK_FLAG Flags,
  [in]  ULONG                     Reserved,
  [out] IVdsAsync                 **ppAsync
);

Paramètres

[in] Flags

Valeur d’énumération COMPACT_VIRTUAL_DISK_FLAG qui spécifie la façon dont le disque virtuel doit être compacté. Doit être défini sur COMPACT_VIRTUAL_DISK_FLAG_NONE.

[in] Reserved

Ce paramètre est réservé à une utilisation système.

[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 renvoie 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 les valeurs HRESULT de réussite ou d’échec à 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

Un disque virtuel peut être compacté uniquement s’il se trouve dans l’un des états suivants :

  • Détaché (mode hors connexion)
  • Attaché et ouvert avec accès en lecture seule (mode en ligne)
S’il est dans un autre état, l’opération de compactage échoue.

Le disque virtuel doit être un disque virtuel extensible (également appelé dynamique) ou un disque virtuel de différenciation.

L’opération peut être interrompue en toute sécurité et réexécuter ultérieurement. Si l’opération est interrompue et que le fichier de stockage est rouvert, la taille du fichier peut être réduite lors de l’ouverture du fichier.

L’opération peut être gourmande en processeur ou en E/S, ou les deux, selon la taille du disque virtuel et le nombre de blocs inutilisés nécessitant une manipulation.

Cette méthode réduit la taille du fichier de stockage du disque virtuel en récupérant l’espace inutilisé. Si cette méthode est appelée pour un disque virtuel détaché, elle peut uniquement récupérer de l’espace dans le fichier qui n’a jamais été utilisé pour écrire des données. S’il est appelé pour un disque virtuel attaché et ouvert avec un accès en lecture seule, il est en mesure de récupérer de l’espace qui était autrefois utilisé, mais qui a été libéré par la suite. L’appel de cette méthode pour un disque virtuel attaché et ouvert avec un accès en lecture seule récupère la quantité maximale d’espace libre dans le fichier du magasin de stockage.

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