FILE_COMPRESSION_INFORMATION structure (ntifs.h)

The FILE_COMPRESSION_INFORMATION structure describes the state of a compressed data buffer.

Syntax

typedef struct _FILE_COMPRESSION_INFORMATION {
  LARGE_INTEGER CompressedFileSize;
  USHORT        CompressionFormat;
  UCHAR         CompressionUnitShift;
  UCHAR         ChunkShift;
  UCHAR         ClusterShift;
  UCHAR         Reserved[3];
} FILE_COMPRESSION_INFORMATION, *PFILE_COMPRESSION_INFORMATION;

Members

CompressedFileSize

The size, in bytes, of the compressed file.

CompressionFormat

The compression format. This member must have one of the following values:

Value Meaning
COMPRESSION_FORMAT_NONE No compression format.
COMPRESSION_FORMAT_DEFAULT Default compression format.
COMPRESSION_FORMAT_LZNT1 LZNT1 compression format.

CompressionUnitShift

The log, base 2, of the number of clusters per compression

unit. In the NTFS file system, this value is NTFS_CLUSTERS_PER_COMPRESSION.

ChunkShift

The log, base 2, of the number of bytes in a chunk. In other words, the size in bytes of the chunk is 2 ** ChunkShift, or (1 << ChunkShift).

ClusterShift

The log, base 2, of the minimum number of clusters by which compression must reduce the size of the compression unit. If compression does not reduce the size of the compression unit by at least 2 ** ClusterShift clusters (or 1 << ClusterShift clusters), compression will not occur. Each compression unit must occupy at least one cluster less than the uncompressed data would occupy.

Reserved[3]

Reserved

Requirements

Requirement Value
Header ntifs.h (include Ntifs.h, Fltkernel.h)

See also

FLT_PARAMETERS for IRP_MJ_QUERY_INFORMATION

FltQueryInformationFile

IRP_MJ_QUERY_INFORMATION