Compartir a través de


Método IVdsOpenVDisk::Compact (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.]

Compacta el disco virtual para reducir el tamaño físico del archivo de respaldo.

Sintaxis

HRESULT Compact(
  [in]  COMPACT_VIRTUAL_DISK_FLAG Flags,
  [in]  ULONG                     Reserved,
  [out] IVdsAsync                 **ppAsync
);

Parámetros

[in] Flags

Valor de enumeración COMPACT_VIRTUAL_DISK_FLAG que especifica cómo se va a compactar el disco virtual. Debe establecerse en COMPACT_VIRTUAL_DISK_FLAG_NONE.

[in] Reserved

Este parámetro está reservado para uso del sistema.

[out] ppAsync

Puntero a una interfaz IVdsAsync que al finalizar correctamente recibe la interfaz IVdsAsync para supervisar y controlar esta operación. Los autores de llamadas deben liberar la interfaz recibida cuando hayan terminado con ella. Si se llama al método IVdsAsync::Wait en la interfaz y se devuelve un valor HRESULT correcto, las interfaces devueltas en la estructura de VDS_ASYNC_OUTPUT deben liberarse 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 devuelto Descripción
S_OK
El método se completó correctamente.

Comentarios

Un disco virtual solo se puede compactar si se encuentra en uno de los estados siguientes:

  • Desasociado (modo sin conexión)
  • Conectado y abierto con acceso de solo lectura (modo en línea)
Si está en cualquier otro estado, se produce un error en la operación compacta.

El disco virtual debe ser un disco virtual expandible (también denominado dinámico) o de diferenciación.

La operación se puede interrumpir y volver a ejecutar de forma segura más adelante. Si se interrumpe la operación y se vuelve a abrir el archivo de respaldo, el tamaño del archivo se puede reducir cuando se abre el archivo.

La operación puede ser de uso intensivo de CPU o de E/S, o ambas, en función del tamaño que tenga el disco virtual y de cuántos bloques no se usen requieren manipulación.

Este método reduce el tamaño del archivo de almacenamiento de respaldo del disco virtual reclamando espacio sin usar. Si se llama a este método para un disco virtual que está desasociado, solo puede reclamar espacio en el archivo que nunca se usó para escribir datos. Si se llama a para un disco virtual que está conectado y abierto con acceso de solo lectura, puede reclamar espacio que se usó una vez, pero que posteriormente se liberó. Al llamar a este método para un disco virtual que está conectado y abierto con acceso de solo lectura, se reclama la cantidad máxima de espacio libre en el archivo de almacenamiento de copia de seguridad.

Requisitos

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

Consulte también

IVdsOpenVDisk