Método IVdsPack::MigrateDisks (vds.h)

[A partir de Windows 8 y Windows Server 2012, la interfaz COM del servicio de disco virtual se sustituye por la API de administración de almacenamiento de Windows.]

Migra un conjunto de discos de un paquete a otro paquete.

Sintaxis

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

Parámetros

[in] pDiskArray

Puntero a una matriz de GUID; uno para cada disco.

[in] lNumberOfDisks

Número de discos que se van a migrar.

[in] TargetPack

GUID del objeto pack.

[in] bForce

Si este parámetro se establece en TRUE, VDS omite todos los errores de este método e intenta migrar los discos incondicionalmente. Si se establece en FALSE, la operación no continúa. En algunos casos, una migración forzada puede provocar la pérdida de datos.

[in] bQueryOnly

Si este parámetro se establece en TRUE, no se produce la migración. Si se establece en FALSE, la operación continúa.

[out] pResults

Dirección de una matriz asignada por el autor de la llamada de valores HRESULT . El número de elementos de la matriz es lNumberOfDisks.

Si se puede migrar un disco o se ha migrado correctamente, el elemento de matriz correspondiente recibe S_OK; de lo contrario, recibe el código de advertencia o el código de error devuelto por el proveedor. Para obtener la lista de códigos de resultado adicionales, vea Valores devueltos.

[out] pbRebootNeeded

Si este parámetro se establece en TRUE, debe reiniciar el equipo para completar la operación. Si se establece en FALSE, la operación se completa sin reiniciar.

Valor devuelto

Este método puede devolver valores HRESULT estándar, como E_INVALIDARG o E_OUTOFMEMORY, y valores devueltos específicos de VDS. También puede devolver códigos de error del sistema convertidos mediante la macro HRESULT_FROM_WIN32 . Los errores se pueden originar en VDS en sí o en el proveedor de VDS subyacente que se está usando. Entre los posibles valores devueltos se incluyen los siguientes.

Código o valor devuelto Descripción
S_OK
La migración se completó correctamente.
S_FALSE
No se puede convertir al menos uno de los discos o se puede convertir con advertencia.
VDS_E_DISK_NOT_ONLINE
0x8004244BL
Uno de los discos no está disponible.
VDS_E_IMPORT_SET_INCOMPLETE
0x80042451L
Se intentó importar un subconjunto de los discos del paquete externo.
 

Las siguientes advertencias y errores se pueden devolver a través de pResults:

Código o valor devuelto Descripción
VDS_S_BOOT_PARTITION_NUMBER_CHANGE
0x00042436L
El número de partición de la partición de arranque cambió como resultado de la operación de migración.
VDS_E_NO_FREE_SPACE
0x80042437L
El disco seleccionado no tiene suficiente espacio libre para completar la operación.
VDS_E_ACTIVE_PARTITION
0x80042438L
Se detectó una partición activa en el disco seleccionado y no es la partición activa utilizada para arrancar el sistema operativo activo.
VDS_E_PARTITION_OF_UNKNOWN_TYPE
0x80042439L
No se puede leer la información de partición.
VDS_E_LEGACY_VOLUME_FORMAT
0x8004243AL
Se detectó una partición con un tipo desconocido en el disco seleccionado.
VDS_E_NON_CONTIGUOUS_DATA_PARTITIONS
0x8004243BL
El disco GPT seleccionado contiene una partición de datos no básica, que va precedida de y seguida de una o varias particiones de datos básicas.
VDS_E_MIGRATE_OPEN_VOLUME
0x8004243CL
No se puede abrir un volumen en el disco seleccionado.

Comentarios

VDS implementa este método.

Un solo paquete solo puede tener un disco básico. Por lo tanto, solo puede migrar un disco a la vez entre un paquete básico y dinámico.

Debe forzar esta operación al convertir un disco básico en formato de disco dinámico y el final del disco carece de espacio suficiente para la base de datos LDM. Establezca el parámetro bForce en true y fuerce la operación a pesar de la limitación de espacio. Del mismo modo, si una partición OEM está en medio de un disco MBR con espacio libre o volúmenes de datos en cualquier lado.

Después de migrar discos dinámicos a un paquete dinámico, debe usar el método IVdsPack::GetProperties para determinar si el paquete de origen o de destino es ahora el paquete en línea.

Para obtener información sobre el uso del método MigrateDisks para agregar discos externos a un paquete, vea Agregar discos externos a un paquete.

Requisitos

   
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado vds.h
Library Uuid.lib

Consulte también

IVdsPack

IVdsPack::GetProperties