структура 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) |