IVdsPack::AddDisk 方法 (vds.h)

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

将磁盘添加到联机包。

语法

HRESULT AddDisk(
  [in] VDS_OBJECT_ID       DiskId,
  [in] VDS_PARTITION_STYLE PartitionStyle,
  [in] BOOL                bAsHotSpare
);

参数

[in] DiskId

磁盘的 GUID。

[in] PartitionStyle

样式可以是 MBR 或 GPT。 请参阅 VDS_PARTITION_STYLE 枚举。

[in] bAsHotSpare

如果为 true,则 VDS 可以将磁盘用作热备用;否则,磁盘不能用于此操作。 只有硬件提供商支持热存储。

返回值

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

返回代码/值 说明
S_OK
已成功添加磁盘。
VDS_E_NOT_AN_UNALLOCATED_DISK
0x80042418L
磁盘是原始磁盘。
VDS_E_OPERATION_DENIED
0x8004240AL
正在清理要添加的磁盘。
VDS_E_PROVIDER_FAILURE
0x80042442L
操作期间出现提供程序失败。
VDS_E_NOT_SUPPORTED
0x80042400L
不支持将第二个磁盘添加到基本包。
VDS_E_PACK_OFFLINE
0x80042444L
无法访问目标包。
VDS_E_OBJECT_NOT_FOUND
0x80042405L
找不到磁盘。
VDS_E_DMADMIN_METHOD_CALL_FAILED
0x80042420L
逻辑磁盘管理器 (LDM) 服务未能完成方法。
VDS_E_PROVIDER_CACHE_CORRUPT
0x8004241FL
动态提供程序缓存已损坏。

注解

VDS 实现此方法。

此方法 (未定义分区的磁盘) 初始化原始磁盘,并将其添加到包中。 在调用此方法之前,原始磁盘由 VDS 服务拥有。 此方法返回后,磁盘由基本提供程序拥有。

若要撤消此方法的效果,即删除分区格式并使磁盘成为 VDS 服务拥有的原始磁盘,请使用 IVdsAdvancedDisk::Clean 方法。

不能使用 AddDisk 重新定义现有磁盘上的分区。

如果将 GPT 磁盘添加到基本包,该操作会自动在磁盘上创建 MSR 分区。 运行 WinPE 操作系统的设备是例外,因为管理员可能更愿意在磁盘上创建 ESP 分区。 ESP 分区(如果存在)必须是磁盘上的第一个分区。

如果将磁盘添加到动态包,该操作不会创建 MSR 分区。

要求

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

另请参阅

IVdsPack

VDS_PACK_PROP

VDS_PARTITION_STYLE