Share via


Método IVdsVolume::BreakPlex (vds.h)

[A partir de Windows 8 y Windows Server 2012, la interfaz COM del servicio de disco virtual se sustituye por la API de administración de almacenamiento de Windows.]

Quita un plex especificado del volumen actual. El puntero de interfaz para el nuevo objeto de volumen se puede recuperar llamando a IVdsAsync::Wait a través del parámetro ppAsync . La estructura VDS_ASYNC_OUTPUT devuelta contiene el puntero de interfaz de objeto de volumen en el miembro bvp.pVolumeUnk .

Sintaxis

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

Parámetros

[in] plexId

GUID del plex que se va a romper.

[out] ppAsync

Dirección de un puntero de interfaz IVdsAsync , que VDS inicializa al devolver. Los autores de llamadas deben liberar la interfaz . Use este puntero para cancelar, esperar o consultar el estado de la operación.

Si llama a IVdsAsync::Wait en este método y se devuelve un valor HRESULT correcto, debe liberar las interfaces devueltas en la estructura de VDS_ASYNC_OUTPUT llamando al método IUnknown::Release en cada puntero de interfaz. Sin embargo, si Wait devuelve un valor HRESULT de error o si el parámetro pHrResult de Wait recibe un valor HRESULT de error, los punteros de interfaz de la estructura VDS_ASYNC_OUTPUT son NULL y no es necesario liberar. Puede probar los valores HRESULT correctos o erróneos mediante las macros SUCCEEDED y FAILED definidas en Winerror.h.

Valor devuelto

Este método puede devolver valores HRESULT estándar, como E_INVALIDARG o E_OUTOFMEMORY, y valores devueltos específicos de VDS. También puede devolver códigos de error del sistema convertidos mediante la macro HRESULT_FROM_WIN32 . Los errores pueden originarse en VDS en sí o en el proveedor de VDS subyacente que se está usando. Entre los valores devueltos posibles se incluyen los siguientes.

Código o valor devuelto Descripción
S_OK
El plex se rompió correctamente.
VDS_E_VOLUME_NOT_ONLINE
0x8004243DL
El volumen no está disponible.
VDS_E_VOLUME_NOT_A_MIRROR
0x80042445L
El volumen no es un reflejo.

Comentarios

Esta operación no es válida para volúmenes básicos, que tienen exactamente un plex.

Use este método para interrumpir un reflejo. El plex roto se convierte en un nuevo volumen. Si el plex restante está obsoleto o falta, VDS detiene la operación y devuelve un error. Tenga en cuenta que VDS desmonta el volumen durante la operación.

Un arranque o un plex del sistema(básicamente, el plex usado para arrancar el equipo) no es válido para plexId. Cuando se pasa este tipo de plex, VDS detiene la operación y devuelve un error.

Los implementadores deben devolver un puntero a la interfaz IVdsAsync de este método, independientemente de si la llamada inicia una operación asincrónica.

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado vds.h
Library Uuid.lib

Consulte también

IVdsAsync

IVdsAsync::Wait

IVdsVolume

VDS_ASYNC_OUTPUT