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

VDS 在返回时初始化的 IVdsAsync 接口指针的地址。 调用方必须释放接口。 使用此指针可以取消、等待或查询操作的状态。

返回值

此方法可以返回标准 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: 启动选项存储在 x86 或 x64 系统上的 boot.ini 文件中,或者存储在 Itanium 系统上的 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
Library Uuid.lib

另请参阅

IVdsAdvancedDisk::CreatePartition

IVdsAsync

IVdsCreatePartitionEx