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 |
目標平台 | Universal |
標頭 | ntifs.h (包含 Ntifs.h) |
程式庫 | NtosKrnl.lib |
Dll | NtosKrnl.exe |
IRQL | <= APC_LEVEL |