FSCTL_GET_COMPRESSION IOCTL (winioctl.h)

Recupera o estado de compactação atual de um arquivo ou diretório em um volume cujo sistema de arquivos dá suporte à compactação por fluxo.

Para executar essa operação, chame a função DeviceIoControl com os parâmetros a seguir.

BOOL DeviceIoControl(
  (HANDLE) hDevice,             // handle to file
  FSCTL_GET_COMPRESSION,        // dwIoControlCode
  NULL,                         // lpInBuffer 
  0,                            // nInBufferSize
  (LPVOID) lpOutBuffer,         // output buffer
  (DWORD) nOutBufferSize,       // size of output buffer
  (LPDWORD) lpBytesReturned,    // number of bytes returned
  (LPOVERLAPPED) lpOverlapped   // OVERLAPPED structure
);

Comentários

O algoritmo de compactação LZNT1 é o único algoritmo de compactação implementado.

COMPRESSION_FORMAT_DEFAULT não é um estado de compactação, portanto, ele não está incluído na tabela sob o parâmetro lpOutBuffer . Esse valor só é usado com o código de controle FSCTL_SET_COMPRESSION .

Se o sistema de arquivos do volume que contém o arquivo ou diretório especificado não oferecer suporte a compactação por arquivo ou por diretório, a operação falhará.

Você pode definir o estado de compactação de um arquivo ou diretório usando o código de controle FSCTL_SET_COMPRESSION . Você também pode compactar ou descompactar um arquivo usando esse código de controle.

Você pode recuperar o atributo de compactação de um arquivo ou diretório chamando a função GetFileAttributes . O atributo de compactação indica se um arquivo ou diretório é compactado. O estado de compactação indica se um arquivo ou diretório é compactado e, se for, o formato dos dados compactados.

Em Windows 8 e Windows Server 2012, esse código é compatível com as tecnologias a seguir.

Tecnologia Com suporte
Protocolo SMB (SMB) 3.0 Sim
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) Sim
ReFS (Sistema de Arquivos Resiliente) No

O Failover Transparente do SMB 3.0 e Scale-Out não dão suporte a arquivos compactados NTFS. A chamada FSCTL não está bloqueada, mas não tem suporte.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Cabeçalho winioctl.h (inclua Windows.h)

Confira também