Partager via


Méthode IVdsPack::MigrateDisks (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.]

Migre un ensemble de disques d’un pack vers un autre.

Syntaxe

HRESULT MigrateDisks(
  [in]  VDS_OBJECT_ID *pDiskArray,
  [in]  LONG          lNumberOfDisks,
  [in]  VDS_OBJECT_ID TargetPack,
  [in]  BOOL          bForce,
  [in]  BOOL          bQueryOnly,
  [out] HRESULT       *pResults,
  [out] BOOL          *pbRebootNeeded
);

Paramètres

[in] pDiskArray

Pointeur vers un tableau de GUID ; un pour chaque disque.

[in] lNumberOfDisks

Nombre de disques à migrer.

[in] TargetPack

GUID de l’objet pack.

[in] bForce

Si ce paramètre a la valeur TRUE, VDS ignore toutes les erreurs de cette méthode et tente de migrer les disques de manière inconditionnelle. Si elle est définie sur FALSE, l’opération ne se poursuit pas. Dans certains cas, une migration forcée peut entraîner une perte de données.

[in] bQueryOnly

Si ce paramètre a la valeur TRUE, la migration n’a pas lieu. Si elle est définie sur FALSE, l’opération continue.

[out] pResults

Adresse d’un tableau de valeurs HRESULT allouées par l’appelant. Le nombre d’éléments dans le tableau est lNumberOfDisks.

Si un disque peut être migré ou a été correctement migré, l’élément de tableau correspondant reçoit S_OK ; sinon, il reçoit le code d’avertissement ou le code d’erreur retourné par le fournisseur. Pour obtenir la liste des codes de résultat supplémentaires, consultez Valeurs de retour.

[out] pbRebootNeeded

Si ce paramètre est défini sur TRUE, vous devez redémarrer l’ordinateur pour terminer l’opération. S’il est défini sur FALSE, l’opération se termine sans redémarrer.

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/valeur de retour Description
S_OK
La migration s’est terminée avec succès.
S_FALSE
Au moins l’un des disques ne peut pas être converti ou peut être converti avec un avertissement.
VDS_E_DISK_NOT_ONLINE
0x8004244BL
L’un des disques n’est pas disponible.
VDS_E_IMPORT_SET_INCOMPLETE
0x80042451L
Une tentative d’importation d’un sous-ensemble des disques dans le pack étranger a été effectuée.
 

Les avertissements et erreurs suivants peuvent être retournés par le biais de pResults :

Code/valeur de retour Description
VDS_S_BOOT_PARTITION_NUMBER_CHANGE
0x00042436L
Le numéro de partition de la partition de démarrage a été modifié à la suite de l’opération de migration.
VDS_E_NO_FREE_SPACE
0x80042437L
Le disque sélectionné ne dispose pas de suffisamment d’espace libre pour terminer l’opération.
VDS_E_ACTIVE_PARTITION
0x80042438L
Une partition active a été détectée sur le disque sélectionné, et il ne s’agit pas de la partition active utilisée pour démarrer le système d’exploitation actif.
VDS_E_PARTITION_OF_UNKNOWN_TYPE
0x80042439L
Les informations de partition ne peuvent pas être lues.
VDS_E_LEGACY_VOLUME_FORMAT
0x8004243AL
Une partition de type inconnu a été détectée sur le disque sélectionné.
VDS_E_NON_CONTIGUOUS_DATA_PARTITIONS
0x8004243BL
Le disque GPT sélectionné contient une partition de données non de base, qui est précédée et suivie d’une ou plusieurs partitions de données de base.
VDS_E_MIGRATE_OPEN_VOLUME
0x8004243CL
Impossible d’ouvrir un volume sur le disque sélectionné.

Remarques

VDS implémente cette méthode.

Un pack unique ne peut avoir qu’un seul disque de base. Par conséquent, vous ne pouvez migrer qu’un seul disque à la fois entre un pack de base et un pack dynamique.

Vous devez forcer cette opération lors de la conversion d’un disque de base au format de disque dynamique et que la fin du disque manque d’espace pour la base de données LDM. Définissez le paramètre bForce sur true et forcez l’opération malgré la limite d’espace. De même, si une partition OEM se trouve au milieu d’un disque MBR avec de l’espace libre ou des volumes de données de chaque côté.

Après avoir migré des disques dynamiques vers un pack dynamique, vous devez utiliser la méthode IVdsPack::GetProperties pour déterminer si le pack source ou de destination est désormais le pack en ligne.

Pour plus d’informations sur l’utilisation de la méthode MigrateDisks pour ajouter des disques étrangers à un pack, consultez Ajout de disques étrangers à un pack.

Configuration requise

   
Client minimal pris en charge Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
Plateforme cible Windows
En-tête vds.h
Bibliothèque Uuid.lib

Voir aussi

IVdsPack

IVdsPack::GetProperties