Condividi tramite


Metodo IVdsCreatePartitionEx::CreatePartitionEx (vds.h)

[A partire da Windows 8 e Windows Server 2012, l'interfaccia COM del servizio disco virtuale viene sostituita dall'API gestione archiviazione di Windows.

Crea una partizione in un disco di base.

Questo metodo sostituisce il metodo IVdsAdvancedDisk::CreatePartition .

Sintassi

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

Parametri

[in] ullOffset

Offset di partizione, in byte. Se l'offset non è allineato e il parametro ulAlign non viene specificato, l'offset viene arrotondato o verso il basso fino al limite di allineamento più vicino a seconda delle dimensioni del disco in cui viene creata la partizione. Per ulteriori informazioni, vedere la sezione Osservazioni successiva.

Windows Server 2003: È possibile allineare solo la prima partizione in un disco di base; i dischi dinamici non possono essere allineati. Per altre partizioni in un disco di base, non è possibile specificare l'allineamento usando il parametro ulAlign ; l'offset viene arrotondato al limite del cilindro più vicino per i dischi MBR (Master Boot Record) o il limite del settore più vicino per i dischi GPT (GUID Partition Table).

Quando il chiamante specifica sia i parametri ullOffset che ulAlign , l'offset deve trovarsi all'interno del primo cilindro.

[in] ullSize

Dimensioni, in byte, della nuova partizione.

[in] ulAlign

Dimensioni di allineamento, in byte.

Windows Server 2003: Se questo parametro viene specificato, il provider esegue il round up dell'offset di partizione al limite di allineamento più vicino; in caso contrario, al limite del cilindro più vicino.

Se l'inizio di un disco ha spazio sufficiente per supportare le dimensioni della partizione e il parametro ulAlign viene specificato, ma il parametro ullOffset non è, la chiamata a CreatePartitionEx ha esito negativo.

[in] para

Puntatore ai parametri definiti dalla struttura CREATE_PARTITION_PARAMETERS .

[out] ppAsync

Indirizzo di un puntatore dell'interfaccia IVdsAsync , che il VDS inizializza sul ritorno. I chiamanti devono rilasciare l'interfaccia. Usare questo puntatore per annullare, attendere o eseguire query sullo stato dell'operazione.

Valore restituito

Questo metodo può restituire valori HRESULT standard, ad esempio E_INVALIDARG o E_OUTOFMEMORY e valori restituiti specifici di VDS. Può anche restituire codici di errore di sistema convertiti usando la macro HRESULT_FROM_WIN32 . Gli errori possono derivare da VDS stesso o dal provider VDS sottostante usato. I valori restituiti possibili includono quanto segue.

Codice/valore restituito Descrizione
S_OK
La partizione è stata creata correttamente.
VDS_E_NO_MEDIA
0x80042412L
Nessun supporto in un'unità rimovibile.
VDS_E_DISK_IS_READ_ONLY
0x8004280BL
Impossibile creare la partizione perché il disco è di sola lettura.
VDS_E_INVALID_OPERATION
0x80042415L
Il supporto non supporta questa operazione. Ad esempio, il chiamante non può creare una partizione in un CD-ROM.
VDS_E_NOT_SUPPORTED
0x80042400L
La creazione di una seconda partizione su supporti rimovibili non è supportata. In alternativa, questo errore indica che il disco è un disco dinamico.
VDS_E_PARTITION_LIMIT_REACHED
0x80042407L
Il numero massimo di partizioni (partizioni primarie o partizioni primarie con una partizione estesa) esiste già quando il chiamante tenta di creare una partizione primaria aggiuntiva o una partizione estesa.
VDS_S_UPDATE_BOOTFILE_FAILED
0x00042434L
La partizione è stata creata correttamente, ma VDS non è riuscita ad aggiornare le opzioni di avvio nell'archivio dati di configurazione di avvio .BCD.

Windows Server 2003: Le opzioni di avvio vengono archiviate nel file boot.ini in un sistema x86 o x64 o NVRAM in un sistema Itanium.

Commenti

Questo metodo opera su dischi di base con uno schema di partizione GPT o MBR.

Windows Server 2003: I chiamanti possono allineare solo la prima partizione di un disco MBR e devono posizionare l'offset iniziale nel primo cilindro o all'inizio del secondo cilindro, al limite del cilindro.

Se il parametro ullOffset viene specificato e il relativo valore non è già allineato usando i valori nella sottochiave HKEY_LOCAL_MACHINE del\\ Registro di sistemaCurrentControlSet\ ServicesVds\AlignServices\, il relativo valore verrà allineato automaticamente usando i valori seguenti: l'allineamento predefinito è 1 MB se il disco è 4 GB o maggiore o 64 KB se il disco è inferiore a 4 GB.

Windows Server 2003: Gli offset di partizione non autorizzati vengono arrotondati al limite del cilindro più vicino per i dischi MBR o al limite del settore più vicino per i dischi GPT.

Se un disco dinamico è di sola lettura e offline, deve essere eseguito in lettura/scrittura e portato online come segue prima di chiamare CreatePartitionEx:

  1. Deselezionare il bit di sola lettura. Si tratta del flag di VDS_DF_READ_ONLY nella struttura VDS_DISK_PROP .
  2. Chiamare il metodo IVdsDiskOnline::Online .

Requisiti

Requisito Valore
Client minimo supportato Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2003 R2 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione vds.h
Libreria Uuid.lib

Vedi anche

IVdsAdvancedDisk::CreatePartition

IVdsAsync

IVdsCreatePartitionEx