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 (include Ntifs.h) |
库 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |