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


структура FILE_FS_ATTRIBUTE_INFORMATION (ntifs.h)

Структура FILE_FS_ATTRIBUTE_INFORMATION используется для запроса сведений об атрибутах файловой системы.

Синтаксис

typedef struct _FILE_FS_ATTRIBUTE_INFORMATION {
  ULONG FileSystemAttributes;
  LONG  MaximumComponentNameLength;
  ULONG FileSystemNameLength;
  WCHAR FileSystemName[1];
} FILE_FS_ATTRIBUTE_INFORMATION, *PFILE_FS_ATTRIBUTE_INFORMATION;

Члены

FileSystemAttributes

Битовая маска флагов, указывающих атрибуты указанной файловой системы в качестве совместимого сочетания следующих флагов.

Значение Значение
FILE_CASE_SENSITIVE_SEARCH (0x00000001) Файловая система поддерживает имена файлов с учетом регистра.
FILE_CASE_PRESERVED_NAMES (0x00000002) Файловая система сохраняет регистр имен файлов, когда она помещает имя на диск.
FILE_UNICODE_ON_DISK (0x00000004) Файловая система поддерживает Юникод в именах файлов.
FILE_PERSISTENT_ACLS (0x00000008) Файловая система сохраняет и применяет списки управления доступом (ACL).
FILE_FILE_COMPRESSION (0x00000010) Файловая система поддерживает сжатие на основе файлов. Этот флаг несовместим с флагом FILE_VOLUME_IS_COMPRESSED . Этот флаг не влияет на передачу данных по сети.
FILE_VOLUME_QUOTAS (0x00000020) Файловая система поддерживает квоты на пользователя.
FILE_SUPPORTS_SPARSE_FILES (0x00000040) Файловая система поддерживает разреженные файлы.
FILE_SUPPORTS_REPARSE_POINTS (0x00000080) Файловая система поддерживает точки повторного анализа.
FILE_SUPPORTS_REMOTE_STORAGE (0x00000100) Файловая система поддерживает удаленное хранилище.
FILE_RETURNS_CLEANUP_RESULT_INFO (0x00000200) При успешной очистке файловая система возвращает сведения, описывающие дополнительные действия, выполненные во время очистки, например удаление файла. Фильтры файловой системы могут проверять эти сведения в обратном вызове после очистки.
FILE_SUPPORTS_POSIX_UNLINK_RENAME (0x00000400) Файловая система поддерживает операции удаления и переименования в стиле POSIX.
FILE_VOLUME_IS_COMPRESSED (0x00008000) Указанный том является сжатым томом. Этот флаг несовместим с флагом FILE_FILE_COMPRESSION . Это не влияет на передачу данных по сети.
FILE_SUPPORTS_OBJECT_IDS (0x00010000) Файловая система поддерживает идентификаторы объектов.
FILE_SUPPORTS_ENCRYPTION (0x00020000) Файловая система поддерживает шифрование.
FILE_NAMED_STREAMS (0x00040000) Файловая система поддерживает именованные потоки данных для файла.
FILE_READ_ONLY_VOLUME (0x00080000) Указанный том доступен только для чтения.
FILE_SEQUENTIAL_WRITE_ONCE (0x00100000) Указанный том можно записать только один раз. Запись должна выполняться в последовательном порядке.
FILE_SUPPORTS_TRANSACTIONS (0x00200000) Файловая система поддерживает обработку транзакций.
FILE_SUPPORTS_HARD_LINKS (0x00400000) Файловая система поддерживает прямые ссылки на другие устройства и секции.
FILE_SUPPORTS_EXTENDED_ATTRIBUTES (0x00800000) Файловая система поддерживает расширенные атрибуты (EAs).
FILE_SUPPORTS_OPEN_BY_FILE_ID (0x01000000) Файловая система поддерживает открытие по идентификатору файла.
FILE_SUPPORTS_USN_JOURNAL (0x02000000) Файловая система поддерживает журналы с порядком обновления (USN).
FILE_SUPPORTS_INTEGRITY_STREAMS (0x04000000) Файловая система поддерживает потоки целостности.
FILE_SUPPORTS_BLOCK_REFCOUNTING (0x08000000) Файловая система поддерживает блочное клонирование, то есть совместное использование логических кластеров между файлами в одном томе. Файловая система перераспределяет операции записи в общие кластеры.
FILE_SUPPORTS_SPARSE_VDL (0x10000000) Файловая система отслеживает, содержит ли каждый кластер файла допустимые данные (из явной записи файлов или автоматических нулей) или недопустимые данные (еще не записаны в или не обнулены). Файловые системы, использующие разреженную допустимую длину данных (VDL), не хранят допустимую длину данных и не требуют, чтобы допустимые данные были смежными в файле.
FILE_DAX_VOLUME (0x20000000) Указанный том является томом с прямым доступом (DAX).
FILE_SUPPORTS_GHOSTING (0x40000000) Файловая система поддерживает фантомные функции.

MaximumComponentNameLength

Максимальная длина компонента имени файла в байтах, поддерживаемая указанной файловой системой. Компонент имени файла — это часть имени файла между символами разделителя пути (например, обратными косыми чертами).

FileSystemNameLength

Длина (в байтах) имени файловой системы. Значение этого поля должно быть больше нуля.

FileSystemName[1]

Поле Юникода переменной длины, содержащее имя файловой системы. Это поле не заканчивается null и должно обрабатываться как последовательность байтов FileSystemNameLength .

Комментарии

Эти сведения можно запросить с помощью любого из следующих способов:

  • Вызовите FltQueryVolumeInformation или ZwQueryVolumeInformationFile, передав FileFsAttributeInformation в качестве значения FileInformationClass и передавая выделенный вызывающим FILE_FS_ATTRIBUTE_INFORMATION структурированный буфер в качестве значения FileInformation.

    • Примечание. В CSVFS FileFsAttributeInformation возвращает FILE_FS_ATTRIBUTE_INFORMATION для файловой системы CSVFS. Если вы хотите запросить FileFsAttributeInformation для файловой системы CSVFS, следует использовать FSCTL_CSV_QUERY_DOWN_LEVEL_FILE_SYSTEM_CHARACTERISTICS.
  • Создайте IRP с основным кодом функции IRP_MJ_QUERY_VOLUME_INFORMATION.

Для запроса этих сведений не требуются определенные права доступа. Таким образом, эта информация доступна при условии, что доступ к тому осуществляется через открытый дескриптор для самого тома или файла или каталога на томе.

Размер буфера, передаваемого в параметре FileInformation в FltQueryVolumeInformation или ZwQueryVolumeInformationFile , должен быть не менее sizeof(FILE_FS_ATTRIBUTE_INFORMATION). Так как нельзя предположить максимальную длину имени файловой системы (на практике это ограничение составляет 2^31 символьных точек), после того, как будет известно имя fileSystemNameLength , потребуется второй вызов одной из этих подпрограмм.

Эта структура должна быть выровнена по длинной ( 4-байтовой) границе.

Требования

Требование Значение
Заголовок ntifs.h (включая Ntifs.h, Fltkernel.h)

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

ACL

FltQueryVolumeInformation

IRP_MJ_QUERY_VOLUME_INFORMATION

ZwQueryVolumeInformationFile