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 组合。

注解

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

  • 调用 FltQueryVolumeInformationZwQueryVolumeInformationFile,将 FileFsControlInformation 作为 FileInformationClass 的值传递,并将调用方分配的FILE_FS_CONTROL_INFORMATION结构化缓冲区作为 FileInformation 的值传递。

  • 使用主函数代码IRP_MJ_QUERY_VOLUME_INFORMATION创建 IRP。

FILE_READ_DATA需要访问卷才能查询此信息。

可以通过以下任一方式设置此信息:

  • 调用 FltSetVolumeInformationZwSetVolumeInformationFile,将 FileFsControlInformation 作为 FileInformationClass 的值传递,并将调用方分配FILE_FS_CONTROL_INFORMATION结构化缓冲区作为 FileInformation 的值传递。
  • 创建包含主要函数代码IRP_MJ_SET_VOLUME_INFORMATION的 IRP。

FILE_WRITE_DATA需要访问卷才能设置此信息。

FileInformation 参数中传递给 FltQueryVolumeInformation、FltSetVolumeInformationZwQueryVolumeInformationFileZwSetVolumeInformationFile 的缓冲区大小必须至少为 (FILE_FS_CONTROL_INFORMATION) 。

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

要求

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

另请参阅

FltQueryVolumeInformation

FltSetVolumeInformation

IRP_MJ_QUERY_VOLUME_INFORMATION

IRP_MJ_SET_VOLUME_INFORMATION

ZwQueryVolumeInformationFile

ZwSetVolumeInformationFile