Compartilhar via


Método IVdsCreatePartitionEx::CreatePartitionEx (vds.h)

[Começando com Windows 8 e Windows Server 2012, a interface COM do Serviço de Disco Virtual é substituída pela API de Gerenciamento de Armazenamento do Windows.]

Cria uma partição em um disco básico.

Esse método substitui o método IVdsAdvancedDisk::CreatePartition .

Sintaxe

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

Parâmetros

[in] ullOffset

O deslocamento de partição, em bytes. Se o deslocamento não estiver alinhado e o parâmetro ulAlign não for especificado, o deslocamento será arredondado para cima ou para baixo até o limite de alinhamento mais próximo, dependendo do tamanho do disco no qual a partição é criada. Para obter mais informações, consulte a seção Comentários a seguir.

Windows Server 2003: Somente a primeira partição em um disco básico pode ser alinhada; discos dinâmicos não podem ser alinhados. Para outras partições em um disco básico, não é possível especificar o alinhamento usando o parâmetro ulAlign ; o deslocamento é arredondado para o limite de cilindro mais próximo para discos MBR (Registro Mestre de Inicialização) ou o limite de setor mais próximo para discos DE TABELA de Partição GUID (GPT).

Quando o chamador especifica os parâmetros ullOffset e ulAlign , o deslocamento deve estar dentro do primeiro cilindro.

[in] ullSize

O tamanho, em bytes, da nova partição.

[in] ulAlign

O tamanho do alinhamento, em bytes.

Windows Server 2003: Se esse parâmetro for especificado, o provedor arredondará o deslocamento da partição para o limite de alinhamento mais próximo; caso contrário, para o limite de cilindro mais próximo.

Se o início de um disco tiver espaço suficiente para acomodar o tamanho da partição e o parâmetro ulAlign for especificado, mas o parâmetro ullOffset não for, a chamada para CreatePartitionEx falhará.

[in] para

O ponteiro para parâmetros definidos pela estrutura CREATE_PARTITION_PARAMETERS .

[out] ppAsync

O endereço de um ponteiro de interface IVdsAsync , que o VDS inicializa no retorno. Os chamadores devem liberar a interface . Use esse ponteiro para cancelar, aguardar ou consultar o status da operação.

Retornar valor

Esse método pode retornar valores HRESULT padrão, como E_INVALIDARG ou E_OUTOFMEMORY e valores retornados específicos do VDS. Ele também pode retornar códigos de erro do sistema convertidos usando a macro HRESULT_FROM_WIN32 . Os erros podem ser originados do próprio VDS ou do provedor de VDS subjacente que está sendo usado. Os possíveis valores retornados incluem o seguinte.

Valor/código retornado Descrição
S_OK
A partição foi criada com êxito.
VDS_E_NO_MEDIA
0x80042412L
Não há mídia em uma unidade removível.
VDS_E_DISK_IS_READ_ONLY
0x8004280BL
Não foi possível criar a partição, pois o disco é somente leitura.
VDS_E_INVALID_OPERATION
0x80042415L
A mídia não dá suporte a essa operação. Por exemplo, o chamador não pode criar uma partição em um CD-ROM.
VDS_E_NOT_SUPPORTED
0x80042400L
Não há suporte para a criação de uma segunda partição em mídia removível. Como alternativa, esse erro indica que o disco é um disco dinâmico.
VDS_E_PARTITION_LIMIT_REACHED
0x80042407L
O número máximo de partições (partições primárias ou partições primárias com uma partição estendida) já existe quando o chamador tenta criar uma partição primária adicional ou uma partição estendida.
VDS_S_UPDATE_BOOTFILE_FAILED
0x00042434L
A partição foi criada com êxito, mas o VDS não conseguiu atualizar as opções de inicialização no repositório BCD (Dados de Configuração de Inicialização).

Windows Server 2003: As opções de inicialização são armazenadas no arquivo boot.ini em um sistema x86 ou x64 ou NVRAM em um sistema Itanium.

Comentários

Esse método opera em discos básicos com um esquema de partição GPT ou MBR.

Windows Server 2003: Os chamadores podem alinhar apenas a primeira partição de um disco MBR e devem colocar o deslocamento inicial no primeiro cilindro ou no início do segundo cilindro, no limite do cilindro.

Se o parâmetro ullOffset for especificado e seu valor ainda não estiver alinhado usando os valores na subchave do Registro deAlinhamento deVds\ doSystem\CurrentControlSet\Services\HKEY_LOCAL_MACHINE\, seu valor será alinhado automaticamente usando os seguintes valores: O alinhamento padrão será de 1 MB se o disco for 4 GB ou maior ou 64 KB se o disco for menor que 4 GB.

Windows Server 2003: Os deslocamentos de partição não alinhados são arredondados para o limite de cilindro mais próximo para discos MBR ou para o limite de setor mais próximo para discos GPT.

Se um disco dinâmico for somente leitura e offline, ele deverá ser feito de leitura/gravação e colocado online da seguinte maneira antes de chamar CreatePartitionEx:

  1. Limpe o bit somente leitura. (Esse é o sinalizador VDS_DF_READ_ONLY na estrutura VDS_DISK_PROP .)
  2. Chame o método IVdsDiskOnline::Online .

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 R2 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho vds.h
Biblioteca Uuid.lib

Confira também

IVdsAdvancedDisk::CreatePartition

IVdsAsync

IVdsCreatePartitionEx