Função GetCompressedFileSizeTransactedA (winbase.h)
[A Microsoft recomenda fortemente que os desenvolvedores utilizem meios alternativos para atender às necessidades do seu aplicativo. Muitos cenários para os quais o TxF foi desenvolvido podem ser obtidos por meio de técnicas mais simples e prontamente disponíveis. Além disso, o TxF pode não estar disponível em versões futuras do Microsoft Windows. Para obter mais informações e alternativas ao TxF, confira Alternativas ao uso do NTFS transacional.]
Recupera o número real de bytes de armazenamento em disco usados para armazenar um arquivo especificado como uma operação transacionada. Se o arquivo estiver localizado em um volume que dá suporte à compactação e o arquivo for compactado, o valor obtido será o tamanho compactado do arquivo especificado. Se o arquivo estiver localizado em um volume que dá suporte a arquivos esparsos e o arquivo for um arquivo esparso, o valor obtido será o tamanho esparso do arquivo especificado.
Sintaxe
DWORD GetCompressedFileSizeTransactedA(
[in] LPCSTR lpFileName,
[out, optional] LPDWORD lpFileSizeHigh,
[in] HANDLE hTransaction
);
Parâmetros
[in] lpFileName
O nome do arquivo.
Não especifique o nome de um arquivo em um dispositivo sem acesso, como um pipe ou um dispositivo de comunicação, pois seu tamanho de arquivo não tem significado.
O arquivo deve residir no computador local; caso contrário, a função falhará e o último código de erro será definido como ERROR_TRANSACTIONS_UNSUPPORTED_REMOTE.
[out, optional] lpFileSizeHigh
Um ponteiro para uma variável que recebe o DWORD de alta ordem do tamanho do arquivo compactado. O valor retornado da função é o DWORD de baixa ordem do tamanho do arquivo compactado.
Esse parâmetro poderá ser NULL se o DWORD de alta ordem do tamanho do arquivo compactado não for necessário. Arquivos com menos de 4 gigabytes de tamanho não precisam do DWORD de alta ordem.
[in] hTransaction
Um identificador para a transação. Esse identificador é retornado pela função CreateTransaction .
Retornar valor
Se a função for bem-sucedida, o valor retornado será o DWORD de baixa ordem do número real de bytes de armazenamento em disco usados para armazenar o arquivo especificado e, se lpFileSizeHigh for não NULL, a função colocará o DWORD de alta ordem desse valor real no DWORD apontado por esse parâmetro. Esse é o tamanho do arquivo compactado para arquivos compactados, o tamanho real do arquivo para arquivos não compactados.
Se a função falhar e lpFileSizeHigh for NULL, o valor retornado será INVALID_FILE_SIZE. Para obter informações de erro estendidas, chame GetLastError.
Se o valor retornado for INVALID_FILE_SIZE e lpFileSizeHigh for não NULL, um aplicativo deverá chamar GetLastError para determinar se a função foi bem-sucedida (o valor é NO_ERROR) ou falhou (o valor é diferente de NO_ERROR).
Comentários
Um aplicativo pode determinar se um volume é compactado chamando GetVolumeInformation e, em seguida, verificando a status do sinalizador FS_VOL_IS_COMPRESSED no valor DWORD apontado pelo parâmetro lpFileSystemFlags dessa função.
Se o arquivo não estiver localizado em um volume que dê suporte à compactação ou arquivos esparsos ou se o arquivo não for compactado ou um arquivo esparso, o valor obtido será o tamanho real do arquivo, o mesmo que o valor retornado por uma chamada para GetFileSize.
Links simbólicos: Se o caminho apontar para um link simbólico, a função retornará o tamanho do arquivo do destino.
No Windows 8 e Windows Server 2012, essa função é compatível com as tecnologias a seguir.
Tecnologia | Com suporte |
---|---|
Protocolo SMB (SMB) 3.0 | No |
TFO (Failover transparente) do SMB 3.0 | No |
SMB 3.0 com compartilhamentos de arquivos de expansão (SO) | No |
Sistema de arquivos de Volume Compartilhado Clusterizado (CsvFS) | No |
ReFS (Sistema de Arquivos Resiliente) | No |
O SMB 3.0 não dá suporte a TxF.
Observação
O cabeçalho winbase.h define GetCompressedFileSizeTransacted como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante de pré-processador UNICODE. Misturar o uso do alias neutro de codificação com código que não seja neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Convenções para protótipos de função.
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 | winbase.h (incluir Windows.h) |
Biblioteca | Kernel32.lib |
DLL | Kernel32.dll |
Confira também
Descompactação e compactação de arquivo