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) 文件系统支持扩展属性(EA)。
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 参数中传递给 FltQueryVolumeInformation 的缓冲区的大小ZwQueryVolumeInformationFile 必须至少 sizeof(FILE_FS_ATTRIBUTE_INFORMATION)。 由于无法假定最大文件系统名称长度(实际上,限制为 2^31 个字符点),因此在已知 fileSystemNameLength 需要对其中一个例程的第二次调用。

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

要求

要求 价值
标头 ntifs.h(包括 Ntifs.h、Fltkernel.h)

另请参阅

ACL

FltQueryVolumeInformation

IRP_MJ_QUERY_VOLUME_INFORMATION

ZwQueryVolumeInformationFile