MSFT_Disk 类的 CreatePartition 方法

在磁盘上创建分区。

语法

UInt32 CreatePartition(
  [in]  UInt64  Size,
  [in]  Boolean UseMaximumSize,
  [in]  UInt64  Offset,
  [in]  UInt32  Alignment,
  [in]  Char16  DriveLetter,
  [in]  Boolean AssignDriveLetter,
  [in]  UInt16  MbrType,
  [in]  String  GptType,
  [in]  Boolean IsHidden,
  [in]  Boolean IsActive,
  [out] String  CreatedPartition,
  [out] String  ExtendedStatus
);

参数

大小 [in]

分区的所需大小(以字节为单位)。 这必须等于或小于磁盘的 LargestFreeExtent 属性指定的大小。 此参数不能与 UseMaximumSize 一起使用。

UseMaximumSize [in]

如果 为 TRUE,则分区将填充磁盘上最大的可用区。 此参数不能与 Size 参数一起使用。

偏移量 [in]

分区偏移量(以字节为单位)。 如果偏移量未对齐且未指定 Alignment 参数,则偏移量将向上或向下舍入到最近的对齐边界,具体取决于创建分区的磁盘的大小。

对齐方式 [in]

分区的对齐方式(以字节为单位)。

DriveLetter [in]

创建时要分配给分区的驱动器号。 此参数不能与 AssignDriveLetter 一起使用。 如果同时指定了两个参数,将返回“参数无效”错误。 如果驱动器号不可用,则会创建分区,但将返回错误“42002”。

AssignDriveLetter [in]

如果 为 TRUE,则会将下一个可用驱动器号分配给创建的分区。 如果没有更多的驱动器号可用,则会创建没有驱动器号的分区。 此参数不能与 DriveLetter 一起使用。 如果同时指定了两个参数,将返回“参数无效”错误。

MbrType [in]

指定 MBR 分区类型。 仅当磁盘的 PartitionStyle 属性为 MBR 时,才能设置此参数,否则将返回错误。 此参数的默认值为 Huge

含义
FAT12 1 FAT12 文件系统分区。
FAT16 4 FAT16 文件系统分区。
扩展 5 扩展分区。
6 一个巨大的分区。 此值指示分区上没有 Windows 文件系统。 创建逻辑卷时使用此值。
IFS 7 NTFS 或 ExFAT 分区。
FAT32 12 FAT32 分区。

GptType [in]

分区的 GPT 类型。 仅当磁盘的 PartitionStyle 属性为 GPT 时,此参数才有效,否则将返回错误。 此参数的默认值为 “基本数据”。

含义
系统分区 c12a7328-f81f-11d2-ba4b-00a0c93ec93b EFI 系统分区。
Microsoft Reserved e3c9e316-0b5c-4db8-817d-f92df00215ae Microsoft 保留分区。
基本数据 ebd0a0a2-b9e5-4433-87c0-68b6b72699c7 基本数据分区。 这是由 Windows 创建和识别的数据分区类型。 只有此类型的分区才能分配驱动器号、接收卷 GUID 路径、主机装载的文件夹 (也称为卷装入点) ,并通过调用 FindFirstVolumeFindNextVolume 进行枚举。
LDM 元数据 5808c8aa-7e8f-42e0-85d2-e1e90434cfb3 逻辑磁盘管理器 (动态磁盘上的 LDM) 元数据分区。
LDM 数据 af9b60a0-1431-4f62-bc68-3311714a69ad 该分区是动态磁盘上的 LDM 数据分区。
Microsoft Recovery de94bba4-06d1-4d40-a16a-bfd50179d6ac Microsoft 恢复分区。

IsHidden [in]

如果 为 TRUE,分区将无法接收驱动器号分配,装载管理器也无法分配卷 GUID 名称。 FindFirstVolumeFindNextVolume 函数不会枚举该分区。 分区可以按其关联的卷设备名称 (打开,例如“\\?GLOBALROOT\Device\HarddiskVolumeX“) 。

IsActive [in]

如果 为 TRUE,则会设置分区的 MBR 活动位,并且分区将变为可启动。 此参数仅对 MBR 磁盘有效。

CreatedPartition [out]

一个字符串,其中包含表示已创建的分区的嵌入 MSFT_Partition 对象。

ExtendedStatus [out]

包含嵌入 MSFT_StorageExtendedStatus 对象的字符串。

此参数允许存储提供程序返回特定于实现的扩展 () 错误信息。

返回值

成功 (0)

不支持 (1)

未指定的错误 (2)

超时 (3)

失败 (4)

参数 (5) 无效

磁盘正在使用 (6)

不支持的大小 (4097)

40000) (可用空间不足

拒绝访问 (40001)

没有足够的资源来完成操作。 (40002)

缓存过期 (40003)

必须使用 Size 或 UseMaximumSize 参数指定大小。 一次只能指定其中一个参数。 (40005)

磁盘尚未初始化。 (41000)

磁盘是只读的。 (41002)

磁盘处于脱机状态。 (41003)

已达到磁盘的分区限制。 (41004)

指定的分区对齐方式无效。 它必须是磁盘扇区大小的倍数。 (41005)

参数对于这种类型的分区无效。 (41006)

指定的分区类型无效。 (41010)

只有前 2 TB 可用于 MBR 磁盘。 (41011)

指定的偏移量无效。 (41012)

设备中没有媒体。 (41015)

指定的偏移量无效。 (41016)

指定的分区布局无效。 (41017)

指定的对象由 Microsoft 故障转移群集组件管理。 磁盘必须处于群集维护模式,并且群集资源状态必须处于联机状态才能执行此操作。 (41018)

请求的访问路径已在使用中。 (42002)

无法为隐藏分区分配访问路径。 (42004)

访问路径无效。 (42007)

要求

要求
最低受支持的客户端 Windows 8 [仅限桌面应用]
最低受支持的服务器 Windows Server 2012 [仅限桌面应用]
命名空间 Root\Microsoft\Windows\Storage
MOF Storagewmi.mof

另请参阅

MSFT_Disk