FILE_FS_CONTROL_INFORMATION 结构 (ntifs.h)
FILE_FS_CONTROL_INFORMATION 结构用于查询或设置目录中文件的控制信息。
语法
typedef struct _FILE_FS_CONTROL_INFORMATION {
LARGE_INTEGER FreeSpaceStartFiltering;
LARGE_INTEGER FreeSpaceThreshold;
LARGE_INTEGER FreeSpaceStopFiltering;
LARGE_INTEGER DefaultQuotaThreshold;
LARGE_INTEGER DefaultQuotaLimit;
ULONG FileSystemControlFlags;
} FILE_FS_CONTROL_INFORMATION, *PFILE_FS_CONTROL_INFORMATION;
成员
FreeSpaceStartFiltering
内容索引守护程序开始文档筛选所需的最小可用磁盘空间量(以字节为单位)。
FreeSpaceThreshold
索引服务继续筛选文档和合并单词列表所需的最小可用磁盘空间量(以字节为单位)。 如果可用磁盘空间量低于此阈值,则会将警告消息写入 Microsoft Windows 应用程序事件日志。 在释放空间之前,将停止筛选和合并。
FreeSpaceStopFiltering
内容索引守护程序继续文档筛选所需的最小可用磁盘空间量(以字节为单位)。 如果可用磁盘空间量低于此阈值,文档筛选将停止。
DefaultQuotaThreshold
卷的默认每用户磁盘配额警告阈值。
DefaultQuotaLimit
卷的默认每用户磁盘配额限制。
FileSystemControlFlags
控制配额强制执行和记录卷上用户相关配额事件的标志的位掩码。 日志记录在 Windows 应用程序事件日志中生成一个条目。 以下一项或多项的兼容组合:
文件系统控制标志 | 含义 |
---|---|
FILE_VC_CONTENT_INDEX_DISABLED | 如果设置,则禁用内容索引。 |
FILE_VC_LOG_QUOTA_LIMIT | 如果设置,当用户超出其分配的磁盘配额限制时,将创建事件日志条目。 |
FILE_VC_LOG_QUOTA_THRESHOLD | 如果设置,当用户超出其分配的配额警告阈值时,将创建事件日志条目。 |
FILE_VC_LOG_VOLUME_LIMIT | 如果已设置,则会在超出卷的可用空间限制时创建事件日志条目。 |
FILE_VC_LOG_VOLUME_THRESHOLD | 如果设置,当超出卷的可用空间阈值时,将创建事件日志条目。 |
FILE_VC_QUOTA_ENFORCE | 如果设置了配额,则会对卷强制实施配额。 |
FILE_VC_QUOTA_TRACK | 如果已设置,则会跟踪卷上的配额。 |
FILE_VC_QUOTAS_INCOMPLETE | 如果设置,则卷的配额信息不完整。 |
FILE_VC_QUOTAS_REBUILDING | 如果设置,文件系统将重新生成卷的配额信息。 |
此外,还定义了以下标志掩码。 这些值可用于测试标志值。
Mask | 值 |
---|---|
FILE_VC_QUOTA_MASK | FILE_VC_QUOTA_ENFORCE |FILE_VC_QUOTA_TRACK |
FILE_VC_QUOTA_NONE | ~FILE_VC_QUOTA_ENFORCE & ~FILE_VC_QUOTA_TRACK |
FILE_VC_VALID_MASK | 上表中所有标志的 ORed 组合。 |
注解
可以通过以下任一方式查询此信息:
调用 FltQueryVolumeInformation 或 ZwQueryVolumeInformationFile,将 FileFsControlInformation 作为 FileInformationClass 的值传递,并将调用方分配的FILE_FS_CONTROL_INFORMATION结构化缓冲区作为 FileInformation 的值传递。
使用主函数代码IRP_MJ_QUERY_VOLUME_INFORMATION创建 IRP。
FILE_READ_DATA需要访问卷才能查询此信息。
可以通过以下任一方式设置此信息:
- 调用 FltSetVolumeInformation 或 ZwSetVolumeInformationFile,将 FileFsControlInformation 作为 FileInformationClass 的值传递,并将调用方分配FILE_FS_CONTROL_INFORMATION结构化缓冲区作为 FileInformation 的值传递。
- 创建包含主要函数代码IRP_MJ_SET_VOLUME_INFORMATION的 IRP。
FILE_WRITE_DATA需要访问卷才能设置此信息。
FileInformation 参数中传递给 FltQueryVolumeInformation、FltSetVolumeInformation、ZwQueryVolumeInformationFile 或 ZwSetVolumeInformationFile 的缓冲区大小必须至少为 (FILE_FS_CONTROL_INFORMATION) 。
此结构必须在 LONGLONG (8 字节) 边界上对齐。
要求
要求 | 值 |
---|---|
Header | ntifs.h (包括 Ntifs.h、Fltkernel.h) |