FSCTL_SET_COMPRESSION
The FSCTL_SET_COMPRESSION
DeviceIoControl
dwIoControlCode = FSCTL_SET_COMPRESSION; // operation code
lpInBuffer ;
// pointer to input buffer
nInBufferSize ;
// size of input buffer
lpOutBuffer = NULL; // pointer to output buffer; not
used; must be NULL
nOutBufferSize = 0; // size of output buffer; not
used; must be zero
lpBytesReturned ;
// pointer to DWORD used by DeviceIoControl function
Parameters
lpInBuffer
Points to a
buffer that contains a USHORT that specifies a new compression state for
the file or directory.
The following
values are defined:
Value |
Meaning |
COMPRESSION_FORMAT_NONE |
Uncompress
the file or directory. |
COMPRESSION_FORMAT_DEFAULT |
Compress
the file or directory, using the default compression format. |
COMPRESSION_FORMAT_LZNT1 |
Compress
the file or directory, using the LZNT1 compression format. |
all
other values |
Reserved
for future use. |
nInBufferSize
Specifies the
size, in bytes, of the buffer pointed to by lpInBuffer. The buffer must
be large enough to contain one USHORT value.
lpOutBuffer
Points to an
output buffer. Not used with this operation. Set to NULL.
nOutBufferSize
Specifies the
size, in bytes, of the buffer pointed to by lpOutBuffer. Not used with
this operation. Set to zero.
lpBytesReturned
Pointer to a DWORD.
This value cannot be NULL. Although the FSCTL_SET_COMPRESSION operation
produces no output data and lpOutBuffer should be NULL, the DeviceIoControl
Return Values
If the
operation succeeds, DeviceIoControl
If the
operation fails, DeviceIoControl returns FALSE. To get extended error
information, call GetLastError
Remarks
On this
release, LZNT1 is the only compression algorithm implemented. As a result,
LZNT1 will be used as the DEFAULT compression method. Future releases may have
additional compression methods which may be used as the DEFAULT.
If the file
system of the volume containing the specified file or directory does not
support per-file or per-directory compression, the FSCTL_SET_COMPRESSION
operation fails.
Windows NT
release 3.51 supports file compression on volumes formatted with NTFS.
The
compression state change of the file or directory occurs synchronously with the
call to DeviceIoControl.
You can
obtain the compression state of a file or directory by using the FSCTL_GET_COMPRESSION
DeviceIoControl operation.
You can
obtain the compression attribute of a file or directory by calling the GetFileAttributes
function. The compression attribute indicates whether a file or directory is
compressed. The compression state indicates whether a file or directory is
compressed and, if it is, the format of the compressed data.
See Also