FsRtlNotifyVolumeEvent 函数 (ntifs.h)

FsRtlNotifyVolumeEvent 例程通知任何已注册的应用程序卷事件发生。

语法

NTSTATUS FsRtlNotifyVolumeEvent(
  [in] PFILE_OBJECT FileObject,
  [in] ULONG        EventCode
);

参数

[in] FileObject

指向给定卷的文件对象的指针。

[in] EventCode

为正在发生的事件指定事件代码。 此代码可以是以下值之一。

事件代码 PnP 事件 GUID 含义
FSRTL_VOLUME_BACKGROUND_FORMAT GUID_IO_VOLUME_BACKGROUND_FORMAT 已启动后台格式操作。
FSRTL_VOLUME_CHANGE_SIZE GUID_IO_VOLUME_CHANGE_SIZE 卷上文件系统的大小已更改。 对于 Windows Server 2003 和 Windows XP/2000,不支持此值。
FSRTL_VOLUME_DISMOUNT GUID_IO_VOLUME_DISMOUNT 正在卸载卷。
FSRTL_VOLUME_DISMOUNT_FAILED GUID_IO_VOLUME_DISMOUNT_FAILED 卷卸载失败。
FSRTL_VOLUME_FORCED_CLOSED GUID_IO_VOLUME_FORCE_CLOSED 卷已由文件系统设为只读。 此标志在 Windows Vista 及更高版本上可用。
FSRTL_VOLUME_INFO_MAKE_COMPAT GUID_IO_VOLUME_INFO_MAKE_COMPAT 卷介质已删除,但它处于不兼容状态,可能无法被其他可移动媒体存储设备读取。 此标志在 Windows Vista 及更高版本上可用。
FSRTL_VOLUME_LOCK GUID_IO_VOLUME_LOCK 卷被锁定。
FSRTL_VOLUME_LOCK_FAILED GUID_IO_VOLUME_LOCK_FAILED 卷锁定失败。
FSRTL_VOLUME_MOUNT GUID_IO_VOLUME_MOUNT 正在装载卷。
FSRTL_VOLUME_NEEDS_CHKDSK GUID_IO_VOLUME_NEED_CHKDSK 在卷上检测到数据损坏,需要通过运行 Chkdsk 进行更正。 此标志在 Windows Vista 及更高版本上可用。
FSRTL_VOLUME_PREPARING_EJECT GUID_IO_VOLUME_PREPARING_EJECT 文件系统正在准备要弹出的光盘。 对于 Windows Server 2003 和 Windows XP/2000,不支持此值。
FSRTL_VOLUME_UNLOCK GUID_IO_VOLUME_UNLOCK 卷正在解锁。
FSRTL_VOLUME_WEARING_OUT GUID_IO_VOLUME_WEARING_OUT 音量介质正在磨损。此标志在 Windows Vista 及更高版本上可用。
FSRTL_VOLUME_WORM_NEAR_FULL GUID_IO_VOLUME_WORM_NEAR_FULL 该卷是一个写入一次、读取多次 (WORM) 卷,并且几乎已满。 此标志在 Windows Vista 及更高版本上可用。

返回值

FsRtlNotifyVolumeEvent 返回通知的状态。

注解

文件系统调用 FsRtlNotifyVolumeEvent 以通知任何已注册的用户模式应用程序正在发生卷事件。

PnP 事件 GUID 值在 Ioevent.h 中定义。

若要注册卷事件通知,应用程序必须调用 Microsoft Win32 RegisterDeviceNotification 函数。 有关详细信息,请参阅Microsoft Windows SDK文档中的设备管理部分。

要求

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

另请参阅

IoRegisterPlugPlayNotification

IoUnregisterPlugPlayNotification