Compartilhar via


Função GetCompressedFileSizeTransactedA (winbase.h)

[A Microsoft recomenda fortemente que os desenvolvedores utilizem meios alternativos para alcançar as necessidades do 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, consulte Alternativas para usar o 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 que não seja de navegação, 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 a 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 doDWORD de alta ordem.

[in] hTransaction

Um identificador para a transação. Esse identificador é retornado pela função CreateTransaction.

Valor de retorno

Se a função for bem-sucedida, o valor retornado é o DWORD de baixa ordem do número real de bytes de armazenamento em disco usados para armazenar o arquivo especificado e, se lpFileSizeHigh não forNULL, a função colocará a 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 estiver 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 não forNULL, 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).

Observações

Um aplicativo pode determinar se um volume é compactado chamando GetVolumeInformatione verificando o status do sinalizador FS_VOL_IS_COMPRESSED no valor DWORD apontado pelo parâmetro lpFileSystemFlags da função.

Se o arquivo não estiver localizado em um volume compatível com 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 no Windows Server 2012, essa função é compatível com as tecnologias a seguir.

Tecnologia Suportado
Protocolo SMB (Bloco de Mensagens do Servidor) 3.0 Não
TFO (Failover Transparente) do SMB 3.0 Não
SMB 3.0 com Compartilhamentos de Arquivos de Expansão (SO) Não
Sistema de Arquivos de Volume Compartilhado de Cluster (CsvFS) Não
ReFS (Sistema de Arquivos Resiliente) Não
 

O SMB 3.0 não dá suporte ao TxF.

Nota

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 do pré-processador UNICODE. A combinação do uso do alias neutro de codificação com código que não é neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Conventions for Function Prototypes.

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows Vista [somente aplicativos da área de trabalho]
servidor com suporte mínimo Windows Server 2008 [somente aplicativos da área de trabalho]
da Plataforma de Destino Windows
cabeçalho winbase.h (inclua Windows.h)
biblioteca Kernel32.lib
de DLL Kernel32.dll

Consulte também

de compactação e descompactação de arquivos

Funções de gerenciamento de arquivos

GetFileSize

GetVolumeInformation

links simbólicos

de Gerenciamento de Transações