IoRegisterFsRegistrationChangeMountAware 函数 (ntifs.h)

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

语法

NTSTATUS IoRegisterFsRegistrationChangeMountAware(
  [in] PDRIVER_OBJECT          DriverObject,
  [in] PDRIVER_FS_NOTIFICATION DriverNotificationRoutine,
  [in] BOOLEAN                 SynchronizeWithMounts
);

参数

[in] DriverObject

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

[in] DriverNotificationRoutine

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

[in] SynchronizeWithMounts

如果设置为 TRUE,则此例程可确保在进行通知回调时不会进行装载操作。 如果设置为 FALSE,则例程不会尝试避免与装载操作冲突。

返回值

返回以下 NTSTATUS 值之一:

返回代码 说明
STATUS_SUCCESS
已成功注册通知例程。
STATUS_INSUFFICIENT_RESOURCES
无法为通知例程分配通知数据包。
STATUS_DEVICE_ALREADY_ATTACHED
此驱动程序对象已在此通知中注册。

注解

每当文件系统调用 IoRegisterFileSystem 或 IoUnregisterFileSystem 时,IoRegisterFsRegistrationChangeMountAware 都会注册文件系统筛选器驱动程序,以便收到通知。

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

如果将 SynchronizeWithMounts 指定为 TRUE,IoRegisterFsRegistrationChangeMountAware 将等待任何当前装载操作完成,并且不允许新的装载操作开始,直到 IoRegisterFsRegistrationChangeMountAware 完成。

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

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

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

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

要求

要求
最低受支持的客户端 IoRegisterFsRegistrationChangeMountAware 例程为 Windows 7
目标平台 通用
标头 ntifs.h (包括 FltKernel.h、Ntifs.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL < DISPATCH_LEVEL

另请参阅

IoRegisterFileSystem

IoRegisterFsRegistrationChange

IoRegisterFsRegistrationChangeEx

IoUnregisterFileSystem

IoUnregisterFsRegistrationChange