Método IVdsVolume::Shrink (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.]
Reduce el tamaño del volumen y todos los plexos y devuelve las extensiones liberados al espacio libre.
Sintaxis
HRESULT Shrink(
[in] ULONGLONG ullNumberOfBytesToRemove,
[out] IVdsAsync **ppAsync
);
Parámetros
[in] ullNumberOfBytesToRemove
Tamaño de la reducción en bytes.
[out] ppAsync
Dirección de un puntero de interfaz IVdsAsync . VDS inicializa la interfaz devuelta. Los autores de llamadas deben liberar la interfaz . Use esta interfaz para cancelar, esperar o consultar el estado de la operación. Si se llama a IVdsAsync::Wait y se devuelve un valor HRESULT correcto, las interfaces devueltas en la estructura 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 o valor devuelto | Descripción |
---|---|
|
El método se completó correctamente. |
|
La memoria caché del proveedor está dañada. Esto indica un problema de software o comunicación dentro de un proveedor que almacena en caché información sobre los dispositivos conectados. El autor de la llamada puede usar el método IVdsHwProvider::Reenumerate seguido del método IVdsHwProvider::Refresh para restaurar la memoria caché. |
|
El volumen no se puede reducir porque el sistema de archivos no lo admite. |
|
La operación no se admite en medios extraíbles. |
|
El tamaño de reducción especificado es menor que el tamaño de reducción mínimo permitido. |
|
El tamaño de reducción especificado es demasiado grande y hará que el volumen sea menor que el tamaño mínimo del volumen. |
Comentarios
Este método es un contenedor para el método IVdsVolumeShrink::Shrink . Si llama a IVdsVolume::Shrink, se usa el valor del parámetro uNumberOfBytesToRemove para los parámetros ullDesiredNumberOfReclaimableBytes y ullMinNumberOfReclaimableBytes de IVdsVolumeShrink::Shrink.
Las operaciones de reducción y ampliación solo se admiten en volúmenes NTFS y RAW.
Use este método para reducir el sistema de archivos y el volumen. Si VDS no puede reducir el volumen, detiene la operación sin reducir el sistema de archivos.
Solo se puede realizar una operación de reducción o desfragmentación a la vez en cada volumen. Windows Server 2008 y Windows Vista: Solo se puede realizar una operación de reducción o desfragmentación a la vez en un equipo.
Si uNumberOfBytesToRemove es cero, se produce un error en el método. De lo contrario, VDS redondea uNumberOfBytesToRemove a un múltiplo del tamaño del clúster del sistema de archivos.
Los implementadores deben devolver un puntero a la interfaz IVdsAsync de este método, incluso si la llamada no inicia una operación asincrónica.
Puede usar el método IVdsVolumeShrink::QueryMaxReclaimableBytes para calcular el número de bytes que debe reclamar la operación de reducción. Sin embargo, QueryMaxReclaimableBytes puede devolver más bytes de los que realmente están disponibles.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows Vista [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2008 [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | vds.h |
Library | Uuid.lib |