Método IVdsOpenVDisk::Compact (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.]
Compacta o disco virtual para reduzir o tamanho físico do arquivo de suporte.
Sintaxe
HRESULT Compact(
[in] COMPACT_VIRTUAL_DISK_FLAG Flags,
[in] ULONG Reserved,
[out] IVdsAsync **ppAsync
);
Parâmetros
[in] Flags
Um COMPACT_VIRTUAL_DISK_FLAG valor de enumeração que especifica como o disco virtual deve ser compactado. Deve ser definido como COMPACT_VIRTUAL_DISK_FLAG_NONE.
[in] Reserved
Esse parâmetro é reservado para uso do sistema.
[out] ppAsync
Um ponteiro para uma interface IVdsAsync que, após a conclusão bem-sucedida, recebe a interface IVdsAsync para monitorar e controlar essa operação. Os chamadores devem liberar a interface recebida quando tiverem terminado com ela. Se o método IVdsAsync::Wait for chamado na interface e um valor HRESULT bem-sucedido for retornado, as interfaces retornadas na estrutura VDS_ASYNC_OUTPUT deverão ser liberadas 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 ser originados do próprio VDS ou do provedor de VDS subjacente que está sendo usado. Os possíveis valores retornados incluem o seguinte.
Código de retorno | Descrição |
---|---|
|
O método foi concluído com sucesso. |
Comentários
Um disco virtual só poderá ser compactado se estiver em um dos seguintes estados:
- Desanexado (modo offline)
- Anexado e aberto com acesso somente leitura (modo online)
O disco virtual deve ser expansível (também chamado de dinâmico) ou disco virtual diferencial.
A operação pode ser interrompida com segurança e executada novamente mais tarde. Se a operação for interrompida e o arquivo de backup for reaberto, o tamanho do arquivo poderá ser reduzido quando o arquivo for aberto.
A operação pode ter uso intensivo de CPU ou uso intensivo de E/S, ou ambos, dependendo do tamanho do disco virtual e quantos blocos não utilizados exigem manipulação.
Esse método reduz o tamanho do arquivo de repositório de backup do disco virtual recuperando espaço não utilizado. Se esse método for chamado para um disco virtual desanexado, ele só poderá recuperar espaço no arquivo que nunca foi usado para gravar dados. Se for chamado para um disco virtual anexado e aberto com acesso somente leitura, ele poderá recuperar o espaço que já foi usado, mas depois foi liberado. Chamar esse método para um disco virtual anexado e aberto com acesso somente leitura recupera a quantidade máxima de espaço livre no arquivo de repositório de backup.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 7 [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2008 R2 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | vds.h |
Biblioteca | Uuid.lib |