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) |