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) 文件系统在文件名中支持 Unicode
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) 文件系统支持扩展属性 (CA) 。
FILE_SUPPORTS_OPEN_BY_FILE_ID (0x01000000) 文件系统支持按文件 ID 打开。
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]

包含文件系统名称的可变长度 Unicode 字段。 此字段不是以 null 结尾的,必须作为 FileSystemNameLength 字节序列进行处理。

注解

可以通过以下任一方式查询此信息:

查询此信息不需要任何特定的访问权限。 因此,只要通过卷本身或卷上的文件或目录的打开句柄访问卷,此信息就可用。

FileInformation 参数中传递给 FltQueryVolumeInformationZwQueryVolumeInformationFile 的缓冲区大小必须至少 sizeof(FILE_FS_ATTRIBUTE_INFORMATION)为 。 由于实际上不能假定最大文件系统名称长度 (,因此限制为 2^31 个字符点) ,因此,一旦 知道 FileSystemNameLength ,将需要对其中一个例程进行第二次调用。

此结构必须在 LONG (4 字节) 边界上对齐。

要求

要求
Header ntifs.h (包括 Ntifs.h、Fltkernel.h)

另请参阅

ACL

FltQueryVolumeInformation

IRP_MJ_QUERY_VOLUME_INFORMATION

ZwQueryVolumeInformationFile