文件管理控制代码

以下控制代码用于文件管理。

在本节中

控制代码 说明
FSCTL_ALLOW_EXTENDED_DASD_IO
指示文件系统驱动程序不对分区读取或写入调用执行任何 I/O 边界检查。
FSCTL_CREATE_OR_GET_OBJECT_ID
检索指定文件或目录的对象标识符。 如果不存在对象标识符,则使用 FSCTL_CREATE_OR_GET_OBJECT_ID 创建一个。
FSCTL_CSV_CONTROL
检索 CSV 控制操作的结果。
FSCTL_DELETE_OBJECT_ID
从指定的文件或目录中删除对象标识符。
FSCTL_DUPLICATE_EXTENTS_TO_FILE
指示文件系统代表应用程序复制文件字节范围。
FSCTL_FILE_LEVEL_TRIM
向存储系统指示不需要存储文件中哪些范围。
FSCTL_FILESYSTEM_GET_STATISTICS
从各种文件系统性能计数器检索信息。
FSCTL_FILESYSTEM_GET_STATISTICS_EX
从各种文件系统性能计数器检索信息。
对此控制代码的支持从 Windows 10 开始。
FSCTL_FIND_FILES_BY_SID
在目录中搜索创建者所有者与指定 SID 匹配的文件。
FSCTL_GET_COMPRESSION
检索文件系统支持按流压缩的卷上文件或目录的当前压缩状态。
FSCTL_GET_NTFS_FILE_RECORD
检索正在使用且其序号小于或等于所请求文件引用编号的第一个文件记录。
FSCTL_GET_OBJECT_ID
检索指定文件或目录的对象标识符。
FSCTL_GET_REPAIR
检索有关 NTFS 文件系统的自我修复机制的信息。
FSCTL_INITIATE_REPAIR
触发 NTFS 文件系统对单个文件启动自我修复周期。
FSCTL_MAKE_MEDIA_COMPATIBLE
关闭写入一次介质上打开的 UDF 会话,使媒体 ROM 兼容。
FSCTL_OPBATCH_ACK_CLOSE_PENDING
通知服务器客户端应用程序已准备好关闭文件。
FSCTL_OPLOCK_BREAK_ACK_NO_2
响应有关文件的机会锁即将中断的通知。 使用此操作可解锁文件上的所有机会锁,但保持文件打开状态。
FSCTL_OPLOCK_BREAK_ACKNOWLEDGE
响应文件上的独占机会锁即将被打破的通知。 使用此操作可指示文件应接收级别 2 的机会锁。
FSCTL_OPLOCK_BREAK_NOTIFY
使调用应用程序能够等待机会性锁中断完成。
FSCTL_QUERY_ALLOCATED_RANGES
扫描文件或备用流,查找可能包含非零数据的范围。
FSCTL_QUERY_ON_DISK_VOLUME_INFO
请求特定于 UDF 的卷信息。
FSCTL_QUERY_SPARING_INFO
检索卷的缺陷管理属性。 用于 UDF 文件系统。
FSCTL_RECALL_FILE
从远程存储管理的存储媒体中召回一个文件,该文件是分层存储管理软件。
FSCTL_REQUEST_BATCH_OPLOCK
请求对文件进行批处理机会锁。
FSCTL_REQUEST_FILTER_OPLOCK
请求对文件使用筛选器机会锁。
FSCTL_REQUEST_OPLOCK
请求机会锁 (oplock) 文件,并确认已发生 oplock 中断。
FSCTL_REQUEST_OPLOCK_LEVEL_1
请求对文件使用级别 1 的机会锁。
FSCTL_REQUEST_OPLOCK_LEVEL_2
请求对文件使用级别 2 的机会锁。
FSCTL_SET_COMPRESSION
设置卷上文件或目录的压缩状态,其文件系统支持按文件和按目录压缩。
FSCTL_SET_DEFECT_MANAGEMENT
设置指定文件的软件缺陷管理状态。 用于 UDF 文件系统。
FSCTL_SET_OBJECT_ID
设置指定文件或目录的对象标识符。
FSCTL_SET_OBJECT_ID_EXTENDED
修改与指定文件或目录的对象标识符关联的用户数据。
FSCTL_SET_REPAIR
设置 NTFS 文件系统的自我修复功能的模式。
FSCTL_SET_SPARSE
将指示的文件标记为稀疏或不稀疏。 在稀疏文件中,较大的零范围可能不需要磁盘分配。
FSCTL_SET_ZERO_DATA
使用零 (0) 填充文件的指定范围。
FSCTL_SET_ZERO_ON_DEALLOCATION
指示 NTFS 文件系统文件句柄在解除分配时应将其群集填充为零。
FSCTL_WAIT_FOR_REPAIR
在指定的修复完成时返回 。

以下控制代码用于 文件压缩和解压缩

FSCTL_GET_COMPRESSION
FSCTL_SET_COMPRESSION

以下控制代码与 对象标识符一起使用。

FSCTL_CREATE_OR_GET_OBJECT_ID
FSCTL_DELETE_OBJECT_ID
FSCTL_GET_OBJECT_ID
FSCTL_SET_OBJECT_ID
FSCTL_SET_OBJECT_ID_EXTENDED

以下控制代码与 机会锁一起使用。

FSCTL_OPBATCH_ACK_CLOSE_PENDING
FSCTL_OPLOCK_BREAK_ACK_NO_2
FSCTL_OPLOCK_BREAK_ACKNOWLEDGE
FSCTL_OPLOCK_BREAK_NOTIFY
FSCTL_REQUEST_BATCH_OPLOCK
FSCTL_REQUEST_FILTER_OPLOCK
FSCTL_REQUEST_OPLOCK
FSCTL_REQUEST_OPLOCK_LEVEL_1
FSCTL_REQUEST_OPLOCK_LEVEL_2

以下控制代码用于 稀疏文件

FSCTL_QUERY_ALLOCATED_RANGES
FSCTL_SET_SPARSE
FSCTL_SET_ZERO_DATA

以下控制代码与 NTFS 自我修复机制一起使用。

FSCTL_GET_REPAIR
FSCTL_INITIATE_REPAIR
FSCTL_SET_REPAIR
FSCTL_WAIT_FOR_REPAIR

以下控制代码与 UDF 一起使用。

FSCTL_MAKE_MEDIA_COMPATIBLE
FSCTL_QUERY_ON_DISK_VOLUME_INFO
FSCTL_QUERY_SPARING_INFO
FSCTL_SET_DEFECT_MANAGEMENT

目录管理控制代码

卷管理控制代码