Share via


IVdsCreatePartitionEx::CreatePartitionEx 方法 (vds.h)

[從 Windows 8 和 Windows Server 2012 開始,虛擬磁碟服務 COM 介面會由 Windows 記憶體管理 API 取代。

在基本磁碟上建立分割區。

這個方法會取代 IVdsAdvancedDisk::CreatePartition 方法。

語法

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

參數

[in] ullOffset

分割區位移,以位元組為單位。 如果未對齊位移,而且未指定 ulAlign 參數,則位移會四捨五入或向下捨入至最接近的對齊界限,視建立分割區所在的磁碟大小而定。 如需詳細資訊,請參閱接下來的<備註>一節。

Windows Server 2003: 只有基本磁碟上的第一個分割區可以對齊;動態磁碟無法對齊。 對於基本磁碟上的其他分割區,您無法使用 ulAlign 參數來指定對齊方式;位移會四捨五入至主要開機記錄 (MBR) 磁碟的最接近圓柱界限,或 GUID 分割數據表 (GPT) 磁碟的最接近扇區界限。

當呼叫端同時指定 ullOffsetulAlign 參數時,位移必須位於第一個圓柱內。

[in] ullSize

新分割區的大小,以位元組為單位。

[in] ulAlign

對齊大小,以位元組為單位。

Windows Server 2003: 如果指定此參數,提供者會將分割區位移四捨五入到最接近的對齊界限;否則,則為最接近的圓柱界限。

如果磁碟的開頭有足夠的空間可容納分割區大小,而且指定 ulAlign 參數,但 ullOffset 參數不是, 則 CreatePartitionEx 的呼叫會失敗。

[in] para

CREATE_PARTITION_PARAMETERS 結構所定義之參數的指標。

[out] ppAsync

IVdsAsync 介面指標的位址,VDS 會在傳回時初始化。 呼叫端必須釋放 介面。 使用此指標來取消、等候或查詢作業的狀態。

傳回值

這個方法可以傳回標準 HRESULT 值,例如E_INVALIDARG或E_OUTOFMEMORY,以及 VDS 特定的傳回值。 它也可以使用 HRESULT_FROM_WIN32 宏傳回已轉換的系統錯誤碼。 錯誤可能來自 VDS 本身,或來自正在使用的基礎 VDS 提供者 。 可能的傳回值包括下列專案。

傳回碼/值 描述
S_OK
已成功建立分割區。
VDS_E_NO_MEDIA
0x80042412L
卸載式磁碟驅動器中沒有媒體。
VDS_E_DISK_IS_READ_ONLY
0x8004280BL
無法建立磁碟分區,因為磁碟是唯讀的。
VDS_E_INVALID_OPERATION
0x80042415L
媒體不支援這項作業。 例如,呼叫端無法在CD-ROM上建立資料分割。
VDS_E_NOT_SUPPORTED
0x80042400L
不支援在卸除式媒體上建立第二個分割區。 或者,此錯誤表示磁碟是動態磁碟。
VDS_E_PARTITION_LIMIT_REACHED
0x80042407L
呼叫端嘗試建立其他主要分割區或擴充分割區時,已存在具有擴充分割區) 的主要分割區 (數目上限。
VDS_S_UPDATE_BOOTFILE_FAILED
0x00042434L
已成功建立分割區,但 VDS 無法更新開機設定數據 (BCD) 存放區中的開機選項。

Windows Server 2003: 開機選項會儲存在itanium系統上 x86 或 x64 系統上的 boot.ini 檔案或 NVRAM 中。

備註

此方法會在具有 GPT 或 MBR 磁碟分區配置的基本磁碟上運作。

Windows Server 2003: 呼叫端只能對齊 MBR 磁碟的第一個分割區,而且必須將開始位移放在第一個圓柱或第二個圓柱的開頭,位於圓柱界限。

如果指定了 ullOffset 參數,且其值尚未使用 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Vds\ Alignment 登錄子機碼下的值對齊,則其值會自動使用下列值來對齊:如果磁碟為 4 GB 或更大,則預設對齊方式為 1 MB,如果磁碟小於 4 GB,則為 64 KB。

Windows Server 2003: 未對齊的數據分割位移會四捨五入至 MBR 磁碟的最接近圓柱界限,或捨入至 GPT 磁碟的最接近扇區界限。

如果動態磁碟是只讀且離線的,則必須在呼叫 CreatePartitionEx 之前進行讀取/寫入並上線,如下所示:

  1. 清除唯讀位。 (這是 VDS_DISK_PROP structure.) 中的 VDS_DF_READ_ONLY 旗標
  2. 呼叫 IVdsDiskOnline::Online 方法。

規格需求

需求
最低支援的用戶端 Windows Vista [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 R2 [僅限傳統型應用程式]
目標平台 Windows
標頭 vds.h
程式庫 Uuid.lib

另請參閱

IVdsAdvancedDisk::CreatePartition

IVdsAsync

IVdsCreatePartitionEx