IVdsAdvancedDisk::Clean 方法 (vds.h)
[从Windows 8和Windows Server 2012开始,虚拟磁盘服务 COM 接口由 Windows 存储管理 API 取代。]
删除分区信息并取消初始化基本磁盘或动态磁盘。
Windows Server 2003: 可移动设备不支持 Clean 方法。
语法
HRESULT Clean(
[in] BOOL bForce,
[in] BOOL bForceOEM,
[in] BOOL bFullClean,
[out] IVdsAsync **ppAsync
);
参数
[in] bForce
如果 为 TRUE,则清理包含数据卷或 ESP 分区的磁盘。
[in] bForceOEM
如果 为 TRUE,则清除下表中包含已知 OEM 分区的基于 MBR 的磁盘,或清理包含任何 OEM 分区的基于 GPT 的磁盘。 OEM 分区在基于 GPT 的磁盘上设置了GPT_ATTRIBUTE_PLATFORM_REQUIRED标志。
分区类型 | 说明 |
---|---|
0x12 | EISA 分区。 |
0x84 | 笔记本电脑的休眠分区。 |
0xA0 | 某些 HP 笔记本电脑的诊断分区。 |
0xDE | 由 Dell 定义的分区。 |
0xFE | IBM IML 分区。 |
[in] bFullClean
如果 为 TRUE,则通过将每个扇区上的数据替换为零来清理整个磁盘;否则,此方法仅清除磁盘上的第一个和最后一个兆字节。
[out] ppAsync
指向 IVdsAsync 接口指针的指针的地址,VDS 在返回时初始化该指针。 调用方必须释放 接口。 使用此指针可以取消、等待或查询操作的状态。
返回值
此方法可以返回标准 HRESULT 值,例如E_INVALIDARG或E_OUTOFMEMORY,以及 特定于 VDS 的返回值。 它还可以使用 HRESULT_FROM_WIN32 宏返回转换的系统错误代码。 错误可能源自 VDS 本身或正在使用的基础 VDS 提供程序 。 可能的返回值包括以下内容。
返回代码/值 | 说明 |
---|---|
|
已成功删除数据,并且磁盘未初始化。 |
|
可移动设备中没有媒体。 |
|
磁盘缺失。 |
|
在下列任一情况下,操作失败:
|
|
分区表已清理,但并非所有扇区都在完全清理期间清理。 或者,清理第一兆字节和最后一兆字节的某些扇区;但是,除非清理为完全清理,否则不会清理其余扇区。 |
备注
在调用此方法之前,调用方应通过为每个卷调用 IVdsVolumeMF::D ismount 来卸载磁盘上装载的任何卷。
除非先删除磁盘上的所有数据卷、已知 OEM 分区和 ESP 分区,否则将 bForce 参数和/或 bForceOEM 参数和/或两者结合使用。 此要求不包括元数据分区,例如 MSR、LDM 元数据分区和未知 OEM 分区。
Windows Server 2003: 可移动设备不支持 Clean 方法。
无论调用是否启动异步操作,实现者都必须返回指向此方法的 IVdsAsync 接口的指针。
要求
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | vds.h |
Library | Uuid.lib |