IVdsVolume::BreakPlex 方法 (vds.h)

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

从当前卷中删除指定的 plex。 可以通过通过 ppAsync 参数调用 IVdsAsync::Wait 来检索新卷对象的接口指针。 返回 的 VDS_ASYNC_OUTPUT 结构包含 bvp.pVolumeUnk 成员中的卷对象接口指针。

语法

HRESULT BreakPlex(
  [in]  VDS_OBJECT_ID plexId,
  [out] IVdsAsync     **ppAsync
);

参数

[in] plexId

要损坏的丛的 GUID。

[out] ppAsync

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

如果对此方法调用 IVdsAsync::Wait 并返回成功的 HRESULT 值,则必须通过在每个接口指针上调用 IUnknown::Release 方法释放VDS_ASYNC_OUTPUT结构中返回的接口。 但是,如果 Wait 返回失败的 HRESULT 值,或者如果 WaitpHrResult 参数收到失败的 HRESULT 值,则VDS_ASYNC_OUTPUT结构中的接口指针为 NULL,不需要释放。 可以使用 Winerror.h 中定义的 SUCCEEDEDFAILED 宏测试成功或失败 HRESULT 值。

返回值

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

返回代码/值 说明
S_OK
Plex 已成功中断。
VDS_E_VOLUME_NOT_ONLINE
0x8004243DL
卷不可用。
VDS_E_VOLUME_NOT_A_MIRROR
0x80042445L
卷不是镜像。

注解

此操作对只有一个 plex 的基本卷无效。

使用此方法可中断镜像。 断开的 plex 将成为新卷。 如果剩余的 plex 过时或缺失,VDS 将停止操作并返回错误。 请注意,VDS 在操作期间卸载卷。

启动或系统 plex(实质上是用于启动计算机的 plex)对 plexId 无效。 传递此类 plex 时,VDS 将停止操作并返回错误。

无论调用是否启动异步操作,实现者都必须返回指向此方法的 IVdsAsync 接口的指针。

要求

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

另请参阅

IVdsAsync

IVdsAsync::Wait

IVdsVolume

VDS_ASYNC_OUTPUT