FsRtlRegisterFileSystemFilterCallbacks 函数 (ntifs.h)

文件系统筛选器驱动程序和文件系统调用 FsRtlRegisterFileSystemFilterCallbacks 例程,以注册在基础文件系统执行某些操作时要调用的通知回调例程。

语法

NTSTATUS FsRtlRegisterFileSystemFilterCallbacks(
  [in] _DRIVER_OBJECT       *FilterDriverObject,
  [in] PFS_FILTER_CALLBACKS Callbacks
);

参数

[in] FilterDriverObject

指向筛选器或文件系统驱动程序的驱动程序对象的指针。

[in] Callbacks

指向 FS_FILTER_CALLBACKS 结构的指针,该结构包含调用方提供的通知回调例程的入口点。 所有回调入口点都是可选的,可以设置为 NULL

返回值

FsRtlRegisterFileSystemFilterCallbacks 例程可以返回以下状态值之一:

返回代码 说明
STATUS_SUCCESS 已成功注册回调例程。
STATUS_INSUFFICIENT_RESOURCES FsRtlRegisterFileSystemFilterCallbacks 在分配内存以存储回调信息时遇到池分配失败。
STATUS_FSFILTER_OP_COMPLETED_SUCCESSFULLY FsRtlRegisterFileSystemFilterCallbacks 已成功完成 FsFilter 操作。
STATUS_FILE_LOCKED_WITH_ONLY_READERS 文件已锁定,文件的所有用户只能读取。
STATUS_FILE_LOCKED_WITH_WRITERS 文件已锁定,并且文件至少有一个用户可以写入
STATUS_INVALID_PARAMETER 其中一个参数无效。

注解

文件系统和文件系统筛选器驱动程序应从驱动程序的 DriverEntry 例程调用 FsRtlRegisterFileSystemFilterCallbacks

FsRtlRegisterFileSystemFilterCallbacks 注册在 Callbacks 参数中指定的通知回调例程,这些例程将在对某些文件操作的请求发送到基础文件系统时调用。

文件系统调用 FsRtlRegisterFileSystemFilterCallbacks 来设置 FS_FILTER_CALLBACKS 结构的 PreAcquireForSectionSynchronization 回调成员,而不是使用过时的 AcquireFileForNtCreateSection

FsRtlRegisterFileSystemFilterCallbacks 注册的回调例程取代了以下快速 I/O 回调例程,这些例程已过时,不应由文件系统筛选器驱动程序使用:

  • AcquireForCcFlush
  • AcquireFileForNtCreateSection
  • AcquireForModWrite
  • ReleaseForCcFlush
  • ReleaseFileForNtCreateSection
  • ReleaseForModWrite

要求

要求
最低受支持的客户端 Windows XP
目标平台 通用
标头 ntifs.h (包括 Ntifs.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL

另请参阅

FS_FILTER_CALLBACKS