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 |