Método IVdsCreatePartitionEx::CreatePartitionEx (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.]

Crea una partición en un disco básico.

Este método reemplaza al método IVdsAdvancedDisk::CreatePartition .

Sintaxis

HRESULT CreatePartitionEx(
  [in]  ULONGLONG                   ullOffset,
  [in]  ULONGLONG                   ullSize,
  [in]  ULONG                       ulAlign,
  [in]  CREATE_PARTITION_PARAMETERS *para,
  [out] IVdsAsync                   **ppAsync
);

Parámetros

[in] ullOffset

Desplazamiento de partición, en bytes. Si el desplazamiento no está alineado y no se especifica el parámetro ulAlign , el desplazamiento se redondea hacia arriba o hacia abajo hasta el límite de alineación más cercano en función del tamaño del disco en el que se crea la partición. Para obtener más información, vea la sección Comentarios que se muestra más adelante.

Windows Server 2003: Solo se puede alinear la primera partición en un disco básico; los discos dinámicos no se pueden alinear. Para otras particiones en un disco básico, no se puede especificar la alineación mediante el parámetro ulAlign ; el desplazamiento se redondea al límite de cilindro más cercano para los discos de registro de arranque maestro (MBR) o el límite de sector más cercano para los discos de tabla de particiones GUID (GPT).

Cuando el autor de la llamada especifica los parámetros ullOffset y ulAlign , el desplazamiento debe estar dentro del primer cilindro.

[in] ullSize

Tamaño, en bytes, de la nueva partición.

[in] ulAlign

Tamaño de alineación, en bytes.

Windows Server 2003: Si se especifica este parámetro, el proveedor redondea el desplazamiento de partición al límite de alineación más cercano; de lo contrario, al límite del cilindro más cercano.

Si el principio de un disco tiene suficiente espacio para acomodar el tamaño de la partición y se especifica el parámetro ulAlign , pero el parámetro ullOffset no es así, se produce un error en la llamada a CreatePartitionEx .

[in] para

Puntero a parámetros definidos por la estructura CREATE_PARTITION_PARAMETERS .

[out] ppAsync

Dirección de un puntero de interfaz IVdsAsync , que VDS inicializa al devolver. Los autores de llamadas deben liberar la interfaz . Use este puntero para cancelar, esperar o consultar el estado de la operación.

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 pueden originarse en VDS en sí o en el proveedor de VDS subyacente que se está usando. Entre los valores devueltos posibles se incluyen los siguientes.

Código o valor devuelto Descripción
S_OK
La partición se creó correctamente.
VDS_E_NO_MEDIA
0x80042412L
No hay ningún medio en una unidad extraíble.
VDS_E_DISK_IS_READ_ONLY
0x8004280BL
No se pudo crear la partición porque el disco es de solo lectura.
VDS_E_INVALID_OPERATION
0x80042415L
El medio no admite esta operación. Por ejemplo, el autor de la llamada no puede crear una partición en un CD-ROM.
VDS_E_NOT_SUPPORTED
0x80042400L
No se admite la creación de una segunda partición en medios extraíbles. Como alternativa, este error indica que el disco es un disco dinámico.
VDS_E_PARTITION_LIMIT_REACHED
0x80042407L
El número máximo de particiones (particiones principales o particiones principales con una partición extendida) ya existe cuando el autor de la llamada intenta crear una partición principal adicional o una partición extendida.
VDS_S_UPDATE_BOOTFILE_FAILED
0x00042434L
La partición se creó correctamente, pero VDS no pudo actualizar las opciones de arranque en el almacén de datos de configuración de arranque (BCD).

Windows Server 2003: Las opciones de arranque se almacenan en el archivo boot.ini en un sistema x86 o x64 o NVRAM en un sistema Itanium.

Comentarios

Este método funciona en discos básicos que tienen un esquema de partición GPT o MBR.

Windows Server 2003: Los llamadores solo pueden alinear la primera partición de un disco MBR y deben colocar el desplazamiento inicial en el primer cilindro o el principio del segundo cilindro, en el límite del cilindro.

Si se especifica el parámetro ullOffset y su valor aún no está alineado con los valores de la subclave HKEY_LOCAL_MACHINE delRegistroVds\alignment deSystem\\CurrentControlSet\Services\, su valor se alineará automáticamente con los siguientes valores: La alineación predeterminada es de 1 MB si el disco es de 4 GB o más, o 64 KB si el disco es inferior a 4 GB.

Windows Server 2003: Los desplazamientos de partición no asignados se redondean al límite de cilindro más cercano para los discos MBR o al límite de sector más cercano para los discos GPT.

Si un disco dinámico es de solo lectura y está sin conexión, se debe realizar lectura y escritura y ponerse en línea como se indica a continuación antes de llamar a CreatePartitionEx:

  1. Borre el bit de solo lectura. (Esta es la marca VDS_DF_READ_ONLY en la estructura VDS_DISK_PROP ).
  2. Llame al método IVdsDiskOnline::Online .

Requisitos

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

Consulte también

IVdsAdvancedDisk::CreatePartition

IVdsAsync

IVdsCreatePartitionEx