IVdsDiskPartitionMF2::FormatPartitionEx2 方法 (vds.h)

[从Windows 8和Windows Server 2012开始,虚拟磁盘服务 COM 接口由 Windows 存储管理 API 取代。]

设置现有 OEM、ESP 或未知分区的格式。 此方法与 IVdsDiskPartitionMF::FormatPartition 方法相同,只是使用 Options 参数指定格式设置选项。

语法

HRESULT FormatPartitionEx2(
  [in]  ULONGLONG ullOffset,
  [in]  LPWSTR    pwszFileSystemTypeName,
  [in]  USHORT    usFileSystemRevision,
  [in]  ULONG     ulDesiredUnitAllocationSize,
  [in]  LPWSTR    pwszLabel,
  [in]  DWORD     Options,
  [out] IVdsAsync **ppAsync
);

参数

[in] ullOffset

分区从磁盘开头的字节偏移量。 此偏移量必须是分区开始的偏移量。

[in] pwszFileSystemTypeName

一个 以 NULL 结尾的 Unicode 字符串,包含用于格式化分区的文件系统的名称。 必须为 NULL 或以下值之一:“NTFS”、“FAT”、“FAT32”、“UDF”或“EXFAT”。 如果此参数为 NULL,则使用默认值。 有关详细信息,请参阅 VDS_FILE_SYSTEM_FORMAT_SUPPORT_FLAG

[in] usFileSystemRevision

文件系统的修订(如果有)。 此成员表示为 16 位二进制编码的十进制数,其中小数点在第二位和第三位之间隐含。 例如,值为 0x0250 表示修订版 2.50。

[in] ulDesiredUnitAllocationSize

文件系统的分配单元大小(以字节为单位)。 该值必须是 2 的幂。 如果值为 0,则将使用由文件系统类型确定的默认分配单元。 分配单元范围依赖于文件系统。

[in] pwszLabel

一个 以 NULL 结尾的 Unicode 字符串,其中包含要分配给分区的新文件系统的标签。 最大标签大小取决于文件系统。

[in] Options

指定格式设置选项的 VDS_FORMAT_OPTION_FLAGS 枚举值的位掩码。

[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 接口可以返回以下相关警告和错误代码。

返回代码/值 说明
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
卷大小太小,无法格式化。

要求

要求
最低受支持的客户端 Windows 7 [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 R2 [仅限桌面应用]
目标平台 Windows
标头 vds.h

另请参阅

IVdsDiskPartitionMF2

VDS_FILE_SYSTEM_FORMAT_SUPPORT_FLAG

VDS_FORMAT_OPTION_FLAGS