IoRegisterFsRegistrationChangeEx 函数 (ntifs.h)

IoRegisterFsRegistrationChangeEx 例程注册文件系统筛选器驱动程序的通知例程,每当文件系统注册或注销自身为活动文件系统时,将调用该例程。

语法

NTSTATUS IoRegisterFsRegistrationChangeEx(
  [in] PDRIVER_OBJECT          DriverObject,
  [in] PDRIVER_FS_NOTIFICATION DriverNotificationRoutine
);

参数

[in] DriverObject

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

[in] DriverNotificationRoutine

指向 PDRIVER_FS_NOTIFICATION 例程的指针,文件系统在注册或注销自身时调用该例程。

返回值

IoRegisterFsRegistrationChangeEx 返回以下值之一:

返回代码 说明
STATUS_SUCCESS
已成功注册通知例程。
STATUS_INSUFFICIENT_RESOURCES
无法为通知例程分配通知数据包。

注解

IoRegisterFsRegistrationChangeEx 的效果与 Windows XP 及更高版本上的 IoRegisterFsRegistrationChange 的效果相同。

IoRegisterFsRegistrationChangeEx 会注册文件系统筛选器驱动程序,以便每当文件系统调用 IoRegisterFileSystemIoUnregisterFileSystem 时收到通知。

若要停止接收此类通知,筛选器驱动程序应调用 IoUnregisterFsRegistrationChange

当文件系统筛选器驱动程序调用 IoRegisterFsRegistrationChangeEx 时,也会立即为所有当前注册的文件系统调用其通知例程 (即,已调用 IoRegisterFileSystem 但尚未调用 IoUnregisterFileSystem 的文件系统) 。

由于调用方通知例程甚至可以在 IoRegisterFsRegistrationChangeEx 返回之前调用,因此筛选器驱动程序在创建处理这些通知所需的任何数据结构之前,不应调用此例程。

IoRegisterFsRegistrationChangeEx 忽略 RAW 设备。 有关按名称附加到 RAW 文件系统的信息,请参阅 将筛选器设备对象附加到目标设备对象

IoRegisterFsRegistrationChangeEx 递增筛选器驱动程序的驱动程序对象的引用计数。

如果文件系统筛选器驱动程序连续调用 IoRegisterFsRegistrationChangeEx 两次, (而不在) 之间调用 IoUnregisterFsRegistrationChange ,则为 DriverObjectDriverNotificationRoutine 参数传递它在上一次调用 IoRegisterFsRegistrationChangeEx 中注册的相同值,并且自第一次调用以来没有其他筛选器驱动程序注册 IoRegisterFsRegistrationChangeEx 返回STATUS_DEVICE_ALREADY_ATTACHED。

要求

要求
最低受支持的客户端 此例程仅在 Windows 2000 Service Pack 4 更新汇总 (SP4) 操作系统上可用。
目标平台 桌面
标头 ntifs.h (包括 Ntifs.h)
IRQL <= APC_LEVEL

另请参阅

IoRegisterFileSystem

IoRegisterFsRegistrationChange

IoUnregisterFileSystem

IoUnregisterFsRegistrationChange