IVdsServiceUninstallDisk::UninstallDisks 方法 (vds.h)
[从Windows 8和Windows Server 2012开始,虚拟磁盘服务 COM 接口由 Windows 存储管理 API 取代。]
卸载一组磁盘。
语法
HRESULT UninstallDisks(
[in] VDS_OBJECT_ID *pDiskIdArray,
[in] ULONG ulCount,
[in] BOOLEAN bForce,
[out] BOOLEAN *pbReboot,
[out] HRESULT *pResults
);
参数
[in] pDiskIdArray
包含 VDS 对象 ID 数组的缓冲区的地址,每个要卸载的磁盘对应一个。 数组中的每个 ID 必须是唯一的。
[in] ulCount
pDiskIdArray 参数指向的缓冲区中的 VDS 对象 ID 数。
[in] bForce
如果 为 TRUE,则即使无法锁定或卸载卷,VDS 也会卸载磁盘。
[out] pbReboot
如果用户必须重新启动计算机才能完成卸载过程,则接收 TRUE 的 BOOLEAN 变量的地址。
[out] pResults
调用方分配的 HRESULT 值的数组的地址。 数组中的元素数由 pDiskIdArray 参数指向。 此数组的第一个元素对应于 pDiskIdArray 中的第一个元素,依此类图。 如果任何磁盘未能正确初始化,则会在此数组的相应元素中返回故障的特定错误代码。
返回值
此方法可以返回标准 HRESULT 值,例如 E_INVALIDARG 或 E_OUTOFMEMORY,以及 特定于 VDS 的返回值。 它还可以使用 HRESULT_FROM_WIN32 宏返回转换的系统错误代码。 错误可能源自 VDS 本身或正在使用的基础 VDS 提供程序 。 可能的返回值包括以下内容。
返回代码/值 | 说明 |
---|---|
|
已成功卸载磁盘。 |
|
此方法返回一个或多个磁盘的警告或错误代码。 |
|
已成功卸载磁盘,但无法检索一个或多个磁盘 (GPT) 属性的 GUID 分区表。 |
|
VDS 遇到内部错误。 有关详细信息,请检查事件日志。 |
|
缺少一个或多个磁盘。 |
|
无法检索一个或多个磁盘的路径。 |
|
无法检索一个或多个卷的路径。 |
|
一个或多个指定的 VDS 对象 ID 对应于不再存在的磁盘。 |
|
一个或多个指定的 VDS 对象 ID 对应于不存在的磁盘。 |
|
提供程序的缓存与驱动程序缓存不同步。 |
注解
VDS 实现此方法。
此方法是同步的,首先卸载指定磁盘上的卷,然后卸载磁盘。 卸载磁盘后,可以将相应的 LUN 屏蔽 (隐藏) 或删除。
此方法清理分配给磁盘上的卷的驱动器号。 此外,它还会将卷设置为脱机状态,以防止在卸载句柄关闭后但在实际删除磁盘之前重新装载卷。
删除跨多个磁盘的动态卷时,必须调用此方法,而不是使用设备管理器函数。
有关如何在不支持 UninstallDisks 方法的 Windows Server 2003 版本中卸载磁盘的说明,请参阅 IVdsLun::SetMask 方法的“备注”部分。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 R2 [仅限桌面应用] |
目标平台 | Windows |
标头 | vds.h |
Library | Uuid.lib |