IVdsVolumeMF2::FormatEx 方法 (vds.h)

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

格式化分区上的文件系统卷。

语法

HRESULT FormatEx(
  [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] pwszFileSystemTypeName

以 Null 结尾的 Unicode 字符串,其中包含用于格式化卷的文件系统的名称。 此参数可以是 NULL ,也可以是 Windows 文件系统的名称。 支持以下文件系统:“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] bForce

一个布尔值,用于确定是否强制使用文件系统格式,而不管分区是否正在使用中。

[in] bQuickFormat

确定文件系统卷是否为快速格式的布尔值。 快速格式不会验证卷上的每个扇区。

[in] bEnableCompression

用于确定是否在启用压缩的情况下创建文件系统卷的布尔值。

注意 如果文件系统不是 NTFS,则忽略此参数。
 

[out] ppAsync

指向 IVdsAsync 接口的指针,成功完成后,该接口接收 IVdsAsync 接口以监视和控制此操作。 调用方必须在使用完接口后释放收到的接口。

返回值

此方法可以返回标准 HRESULT 值,例如E_INVALIDARG或E_OUTOFMEMORY,以及 特定于 VDS 的返回值。 它还可以使用 HRESULT_FROM_WIN32 宏返回转换的系统错误代码。 错误可能源自 VDS 本身或正在使用的基础 VDS 提供程序 。 可能的返回值包括以下内容。

返回代码/值 说明
S_OK
0x00000000L
已成功格式化文件系统。
VDS_E_OPERATION_DENIED
0x8004240AL
如果调用方尝试格式化系统、启动、故障转储、休眠或页面文件卷,则会拒绝该操作。
VDS_E_OBJECT_STATUS_FAILED
0x80042431L
卷已失败。
VDS_E_PACK_OFFLINE
0x80042444L
包含该卷的包不可访问。 无法访问脱机包中的所有卷。
VDS_E_FS_NOT_DETERMINED
0x80042593L
无法确定默认文件系统。
 

此外, IVdsAsync 接口可以返回以下相关警告和错误代码:

返回代码/值 说明
VDS_E_INCOMPATIBLE_FILE_SYSTEM
0x80042425L
文件系统不兼容。
VDS_E_INCOMPATIBLE_MEDIA
0x80042426L
媒体不兼容。
VDS_E_ACCESS_DENIED
0x80042427L
访问被拒绝。
VDS_E_MEDIA_WRITE_PROTECTED
0x80042428L
介质受写保护。
VDS_E_BAD_LABEL
0x80042429L
标签无效。
VDS_E_CANT_QUICK_FORMAT
0x8004242AL
卷无法快速格式化。
VDS_E_IO_ERROR
0x8004242BL
格式化期间发生 I/O 错误。
VDS_E_VOLUME_TOO_SMALL
0x8004242CL
卷大小太小,无法格式化。
VDS_E_VOLUME_TOO_BIG
0x8004242DL
卷大小太大,无法格式化。
VDS_E_CLUSTER_SIZE_TOO_SMALL
0x8004242EL
群集大小太小,无法进行格式设置。
VDS_E_CLUSTER_SIZE_TOO_BIG
0x8004242FL
群集大小太大,无法进行格式设置。
VDS_E_CLUSTER_COUNT_BEYOND_32BITS
0x80042430L
分类数太大,无法表示为 32 位整数。
VDS_S_VOLUME_COMPRESS_FAILED
0x00042443L
文件系统已格式化,但未压缩。
VDS_E_CANT_INVALIDATE_FVE
0x80042592L
无法为卷禁用 BitLocker 加密。

备注

如果 OEM 分区的格式设置为 FAT 或 FAT32,则分区类型不会更改。 如果使用 NTFS 格式化,分区类型将更改为PARTITION_IFS (0x07) 。 有关分区类型的信息,请参阅 CREATE_PARTITION_PARAMETERS

如果为受 BitLocker 全卷加密保护的卷调用此方法,则会对卷禁用 BitLocker 加密,直到用户重新启用它。

有关文件系统限制的详细信息,例如最小和最大分配单元大小 (也称为群集大小) ,请参阅 NTFS 技术参考FAT 技术参考

要求

   
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 [仅限桌面应用]
目标平台 Windows
标头 vds.h
Library Uuid.lib

另请参阅

IVdsVolumeMF2