Share via


IVdsDiskPartitionMF::FormatPartitionEx 方法 (vds.h)

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

格式化現有的 OEM、ESP 或未知的數據分割。

語法

HRESULT FormatPartitionEx(
  [in]  ULONGLONG ullOffset,
  [in]  LPWSTR    pwszFileSystemTypeName,
  [in]  USHORT    usFileSystemRevision,
  [in]  ULONG     ulDesiredUnitAllocationSize,
  [in]  LPWSTR    pwszLabel,
  [in]  BOOL      bForce,
  [in]  BOOL      bQuickFormat,
  [in]  BOOL      bEnableCompression,
  [out] IVdsAsync **ppAsync
);

參數

[in] ullOffset

磁碟開頭的分割區位移。 這個位移必須是分割區開頭的位移。

[in] pwszFileSystemTypeName

NULL 終止的 Unicode 字串,包含用來格式化數據分割之檔案系統的名稱。 必須是 NULL 或下列其中一項:“NTFS”、“FAT”、“FAT32”、“UDF” 或 “EXFAT”。 如果此參數為 NULL,則會使用預設值。

[in] usFileSystemRevision

文件系統的修訂,如果有的話。 這個成員會以16位的二進位編碼十進位數表示,其中第二個和第三位數之間隱含小數點。 例如,0x0250值表示修訂 2.50。

[in] ulDesiredUnitAllocationSize

檔系統的配置單位大小,以位元組為單位。 此值必須是 2 的冪。 如果值為 0,則會使用檔案系統類型所決定的預設配置單位。 配置單位範圍取決於文件系統。

[in] pwszLabel

Null 終止的 Unicode 字串,以指派給磁碟區的新文件系統。 標籤大小上限取決於文件系統。

[in] bForce

布爾值,判斷是否強制文件系統格式,不論數據分割是否正在使用中。

[in] bQuickFormat

布爾值,判斷檔系統磁碟區是否為快速格式。 快速格式不會驗證磁碟區上的每個扇區。

[in] bEnableCompression

布爾值,決定是否要建立已啟用壓縮的文件系統。

注意 如果文件系統不是 NTFS,則會忽略此參數。
 

[out] ppAsync

在成功完成時, IVdsAsync 介面的指標會接收 IVdsAsync 介面,以監視和控制這項作業。 呼叫端必須在完成介面時釋放接收的介面。

傳回值

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

傳回碼/值 描述
S_OK
磁碟區已成功分割。
VDS_E_BAD_PROVIDER_DATA
0x80042441L
提供者傳回不正確的數據。
VDS_E_DISK_REMOVEABLE
0x8004255AL
卸除式媒體不支援此作業。
VDS_E_FS_NOT_DETERMINED
0x80042593L
無法判斷預設檔案系統。
VDS_E_MISSING_DISK
0x80042454L
磁碟遺失。
VDS_E_OBJECT_NOT_FOUND
0x80042405L
數據分割不存在。
VDS_E_PARTITION_NOT_OEM
0x8004256FL
非 OEM 磁碟分區不支援此作業。
 

此外, IVdsAsync 介面可以傳回下列相關的警告和錯誤碼。

傳回碼/值 Description
VDS_S_VOLUME_COMPRESS_FAILED
0x00042443L
檔案系統已格式化,但未壓縮。
VDS_E_ACCESS_DENIED
0x80042427L
存取遭到拒絕。
VDS_E_BAD_LABEL
0x80042429L
標籤無效。
VDS_E_CANT_QUICK_FORMAT
0x8004242AL
磁碟區無法快速格式化。
VDS_E_CLUSTER_COUNT_BEYOND_32BITS
0x80042430L
叢集數目太大,無法以32位整數表示。
VDS_E_CLUSTER_SIZE_TOO_BIG
0x8004242FL
叢集大小太大,無法允許格式化。
VDS_E_CLUSTER_SIZE_TOO_SMALL
0x8004242EL
叢集大小太小,無法允許格式化。
VDS_E_INCOMPATIBLE_FILE_SYSTEM
0x80042425L
檔系統不相容。
VDS_E_INCOMPATIBLE_MEDIA
0x80042426L
媒體不相容。
VDS_E_IO_ERROR
0x8004242BL
格式期間發生 I/O 錯誤。
VDS_E_MEDIA_WRITE_PROTECTED
0x80042428L
媒體受到寫入保護。
VDS_E_VOLUME_TOO_BIG
0x8004242DL
磁碟區大小太大而無法格式化。
VDS_E_VOLUME_TOO_SMALL
0x8004242CL
磁碟區大小太小而無法格式化。

備註

這個方法只會格式化 OEM、ESP 和未知的數據分割。 對於其他分割區,您必須改用 IVdsVolumeMF::FormatIVdsVolumeMF2::FormatEx 方法來格式化對應的磁碟區。 請注意,OEM、ESP 和未知的數據分割不會公開為磁碟區,因此無法使用 FormatFormatEx 格式化。

這個方法無法用來格式化抽取式媒體。

如果 OEM 磁碟分區格式化為 FAT 或 FAT32,則分割區類型不會變更。 如果格式化為NTFS,則分割區類型會變更為 PARTITION_IFS (0x07) 。 如需數據分割類型的相關信息,請參閱 CREATE_PARTITION_PARAMETERS

如需文件系統限制的詳細資訊,例如最小和最大配置單位大小 (也稱為叢集大小) ,請參閱 NTFS技術參考FAT技術參考

規格需求

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

另請參閱

IVdsAdvancedDisk::FormatPartition

IVdsDiskPartitionMF