Método IVdsVolume::Shrink (vds.h)
[Começando com Windows 8 e Windows Server 2012, a interface COM do Serviço de Disco Virtual é substituída pela API de Gerenciamento de Armazenamento do Windows.]
Reduz o tamanho do volume e de todos os plexes e retorna as extensões liberadas para o espaço livre.
Sintaxe
HRESULT Shrink(
[in] ULONGLONG ullNumberOfBytesToRemove,
[out] IVdsAsync **ppAsync
);
Parâmetros
[in] ullNumberOfBytesToRemove
O tamanho da redução de bytes.
[out] ppAsync
O endereço de um ponteiro de interface IVdsAsync . O VDS inicializa a interface no retorno. Os chamadores devem liberar a interface. Use essa interface para cancelar, aguardar ou consultar o status da operação. Se IVdsAsync::Wait for chamado e um valor HRESULT de êxito for retornado, as interfaces retornadas na estrutura VDS_ASYNC_OUTPUT deverão ser lançadas chamando o método IUnknown::Release em cada ponteiro de interface. No entanto, se Wait retornar um valor HRESULT de falha ou se o parâmetro pHrResult de Wait receber um valor HRESULT de falha, os ponteiros de interface na estrutura VDS_ASYNC_OUTPUT serão NULL e não precisarão ser liberados. Você pode testar valores HRESULT com êxito ou falha usando as macros SUCCEEDED e FAILED definidas em Winerror.h.
Retornar valor
Esse método pode retornar valores HRESULT padrão, como E_INVALIDARG ou E_OUTOFMEMORY, e valores retornados específicos do VDS. Ele também pode retornar códigos de erro do sistema convertidos usando a macro HRESULT_FROM_WIN32 . Os erros podem se originar do próprio VDS ou do provedor de VDS subjacente que está sendo usado. Os possíveis valores retornados incluem o seguinte.
Valor/código retornado | Descrição |
---|---|
|
O método foi concluído com sucesso. |
|
O cache do provedor está corrompido. Isso indica um problema de software ou comunicação dentro de um provedor que armazena em cache informações sobre os dispositivos anexados. O chamador pode usar o método IVdsHwProvider::Reenumerate seguido pelo método IVdsHwProvider::Refresh para restaurar o cache. |
|
O volume não pode ser reduzido porque o sistema de arquivos não dá suporte a ele. |
|
Não há suporte para a operação em mídia removível. |
|
O tamanho de redução especificado é menor do que o tamanho mínimo de redução permitido. |
|
O tamanho de redução especificado é muito grande e fará com que o volume seja menor que o tamanho mínimo do volume. |
Comentários
Esse método é um wrapper para o método IVdsVolumeShrink::Shrink . Se você chamar IVdsVolume::Shrink, o valor do parâmetro uNumberOfBytesToRemove será usado para os parâmetros ullDesiredNumberOfReclaimableBytes e ullMinNumberOfReclaimableBytes de IVdsVolumeShrink::Shrink.
Operações de redução e extensão têm suporte apenas em volumes NTFS e RAW.
Use esse método para reduzir o sistema de arquivos e o volume. Se o VDS não reduzir o volume, ele interromperá a operação sem reduzir o sistema de arquivos.
Somente uma operação de redução ou desfragmentação pode ser executada por vez em cada volume. Windows Server 2008 e Windows Vista: Somente uma operação de redução ou desfragmentação pode ser executada por vez em um computador.
Se uNumberOfBytesToRemove for zero, o método falhará. Caso contrário, o VDS arredonda uNumberOfBytesToRemove para um múltiplo do tamanho do cluster do sistema de arquivos.
Os implementadores devem retornar um ponteiro para a interface IVdsAsync para esse método, mesmo que a chamada não inicie uma operação assíncrona.
Você pode usar o método IVdsVolumeShrink::QueryMaxReclaimableBytes para estimar o número de bytes a serem recuperados pela operação de redução. No entanto, QueryMaxReclaimableBytes pode retornar mais bytes do que estão realmente disponíveis.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows Vista [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2008 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | vds.h |
Biblioteca | Uuid.lib |