Поделиться через


FSCTL_GET_COMPRESSION IOCTL (winioctl.h)

Извлекает текущее состояние сжатия файла или каталога на томе, файловая система которого поддерживает сжатие для каждого потока.

Для выполнения этой операции вызовите функцию DeviceIoControl со следующими параметрами.

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

Комментарии

Алгоритм сжатия LZNT1 — это единственный реализованный алгоритм сжатия.

COMPRESSION_FORMAT_DEFAULT не является состоянием сжатия, поэтому не включается в таблицу с параметром lpOutBuffer . Это значение используется только с кодом элемента управления FSCTL_SET_COMPRESSION .

Если файловая система тома, содержащего указанный файл или каталог, не поддерживает сжатие по файлам или каталогам, операция завершается сбоем.

Состояние сжатия файла или каталога можно задать с помощью кода элемента управления FSCTL_SET_COMPRESSION . Вы также можете сжать или распаковыть файл с помощью этого кода элемента управления.

Атрибут сжатия файла или каталога можно получить, вызвав функцию GetFileAttributes . Атрибут сжатия указывает, сжимается ли файл или каталог. Состояние сжатия указывает, сжимается ли файл или каталог, и, если это так, формат сжатых данных.

В Windows 8 и Windows Server 2012 этот код поддерживается следующими технологиями.

Технология Поддерживается
Протокол SMB 3.0 Да
SMB 3.0 Transparent Failover (TFO) Нет
SMB 3.0 с масштабируемыми общими папками (SO) Нет
Файловая система общего тома кластера (CSVFS) Да
Восстанавливаемая файловая система (ReFS) Нет

Прозрачная отработка отказа SMB 3.0 и Scale-Out не поддерживают сжатые файлы NTFS. Вызов FSCTL не заблокирован, но не поддерживается.

Требования

Требование Значение
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Верхняя часть winioctl.h (включая Windows.h)

См. также раздел