FILE_NOTIFY_INFORMATION 結構 (ntifs.h)

FILE_NOTIFY_INFORMATION 描述目錄的變更。 當 DIRECTORY_NOTIFY_INFORMATION_CLASS 為 DirectoryNotifyInformation 時,會傳回具有IRP_MN_NOTIFY_CHANGE_DIRECTORY次要函式程式代碼的IRP_MJ_DIRECTORY_CONTROL要求。

語法

typedef struct _FILE_NOTIFY_INFORMATION {
  ULONG NextEntryOffset;
  ULONG Action;
  ULONG FileNameLength;
  WCHAR FileName[1];
} FILE_NOTIFY_INFORMATION, *PFILE_NOTIFY_INFORMATION;

成員

NextEntryOffset

必須略過的位元組數目,才能進入下一筆記錄。 值為零表示這是最後一筆記錄。

Action

已發生的變更類型。 這個成員可以是下列其中一個值。

意義
FILE_ACTION_ADDED (0x00000001) 檔案已新增至 目錄。
FILE_ACTION_REMOVED (0x00000002) 檔案已從目錄中移除。
FILE_ACTION_MODIFIED (0x00000003) 檔案已修改。 這可以是時間戳或屬性的變更。
FILE_ACTION_RENAMED_OLD_NAME (0x00000004) 檔案已重新命名,這是舊的名稱。
FILE_ACTION_RENAMED_NEW_NAME (0x00000005) 檔案已重新命名,這是新的名稱。
FILE_ACTION_ADDED_STREAM (0x00000006) 具名數據流已新增至檔案。
FILE_ACTION_REMOVED_STREAM (0x00000007) 已從檔案中移除具名數據流。
FILE_ACTION_MODIFIED_STREAM (0x00000008) 已修改具名數據流。 修改可以是具名數據流之數據或屬性的變更。
FILE_ACTION_REMOVED_BY_DELETE (0x00000009) 已移除物件標識碼,因為已刪除所參考物件標識符的檔案。 只有在受監視的目錄是特殊目錄 「$Extend$ObjId:$O:$INDEX_ALLOCATION」 時,才會傳送此通知。
FILE_ACTION_ID_NOT_TUNNELLED (0x0000000A) 嘗試將物件標識碼資訊通道傳送至正在建立或重新命名的檔案失敗,因為對象識別碼正由相同磁碟區上的另一個檔案使用。 只有在受監視的目錄是特殊目錄 「$Extend$ObjId:$O:$INDEX_ALLOCATION」 時,才會傳送此通知。
FILE_ACTION_TUNNELLED_ID_COLLISION (0x0000000B) 嘗試將物件標識碼資訊通道傳送至重新命名的檔案失敗,因為檔案已經有物件識別符。 只有在受監視的目錄是特殊目錄 「$Extend$ObjId:$O:$INDEX_ALLOCATION」 時,才會傳送此通知。

FileNameLength

記錄的檔名部分大小,以位元組為單位。 這個值不包含終止 Null 字元。

FileName[1]

可變長度欄位,包含相對於目錄句柄的檔名。 檔名是 Unicode 字元格式,不是以 Null 結尾。

如果檔案有簡短和長名稱,則只會傳回其中一個名稱,但未指定哪一個名稱。

規格需求

需求
最低支援的用戶端 Windows 10
標頭 ntifs.h

另請參閱

DIRECTORY_NOTIFY_INFORMATION_CLASS

IRP_MJ_DIRECTORY_CONTROL

ZwNotifyChangeDirectoryFileEx