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 |