C# Class Microsoft.Protocols.TestTools.StackSdk.FileAccessService.Smb2.FileCompressionInformation

This information class is used to query compression information for a file. The FILE_COMPRESSION_INFORMATION data element is as follows.
Show file Open project: Microsoft/WindowsProtocolTestSuites

Public Properties

Property Type Description
ChunkShift byte
ClusterShift byte
CompressionUnitShift byte

Property Details

ChunkShift public property

An 8-bit unsigned integer that contains the compression chunk size in bytes in log 2 format. The chunk size is the number of bytes that the operating system's implementation of the Lempel-Ziv compression algorithm tries to compress at one time. This value is implementation-defined. NTFS uses a value of 12 for the ChunkShift so that compression chunks are 4 kilobytes in size.
public byte ChunkShift
return byte

ClusterShift public property

An 8-bit unsigned integer that specifies, in log 2 format, the amount of space that must be saved by compression to successfully compress a compression unit. If that amount of space is not saved by compression, the data in that compression unit is stored uncompressed. Each successfully compressed compression unit MUST occupy at least one cluster that is less in bytes than an uncompressed compression unit. Therefore, the cluster shift is the number of bits by which to left shift a 1 bit to arrive at the size of a cluster. This value is implementation defined. The value of this field depends on the cluster size set for the file system at initialization. NTFS uses a value of 12 by default because the default NTFS cluster size is 4-kilobyte bytes. If an NTFS file system is initialized with a different cluster size, the value of ClusterShift would be log 2 of the cluster size for that file system.
public byte ClusterShift
return byte

CompressionUnitShift public property

An 8-bit unsigned integer that contains the compression unit shift, which is the number of bits by which to left-shift a 1 bit to arrive at the compression unit size. The compression unit size is the number of bytes in a compression unit, that is, the number of bytes to be compressed. This value is implementation-defined. NTFS uses a value of 16 calculated as (4 + ClusterShift) for the CompressionUnitShift by default. The ultimate size of data to be compressed depends on the cluster size set for the file system at initialization. NTFS defaults to a 4-kilobyte cluster size, resulting in a ClusterShift value of 12, but NTFS file systems can be initialized with a different cluster size, so the value may vary. The default compression unit size based on this calculation is 64 kilobytes.
public byte CompressionUnitShift
return byte