FILE_NOTIFY_EXTENDED_INFORMATION結構 (ntifs.h)
當 DIRECTORY_NOTIFY_INFORMATION_CLASS 為 DirectoryNotifyExtendedInformation 時,FILE_NOTIFY_EXTENDED_INFORMATION提供目錄變更的相關信息,以回應IRP_MN_NOTIFY_CHANGE_DIRECTORY次要函式程式代碼的IRP_MJ_DIRECTORY_CONTROL要求。
語法
typedef struct _FILE_NOTIFY_EXTENDED_INFORMATION {
ULONG NextEntryOffset;
ULONG Action;
LARGE_INTEGER CreationTime;
LARGE_INTEGER LastModificationTime;
LARGE_INTEGER LastChangeTime;
LARGE_INTEGER LastAccessTime;
LARGE_INTEGER AllocatedLength;
LARGE_INTEGER FileSize;
ULONG FileAttributes;
union {
ULONG ReparsePointTag;
ULONG EaSize;
} DUMMYUNIONNAME;
LARGE_INTEGER FileId;
LARGE_INTEGER ParentFileId;
ULONG FileNameLength;
WCHAR FileName[1];
} FILE_NOTIFY_EXTENDED_INFORMATION, *PFILE_NOTIFY_EXTENDED_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) | 目錄已重新命名,這是新的名稱。 |
CreationTime
建立目錄或檔案並新增至文件系統的日期和時間。
LastModificationTime
上次在文件系統中修改目錄或檔案內容的日期和時間。
LastChangeTime
上次在文件系統中變更目錄或檔案之元數據或內容的日期和時間。
LastAccessTime
上次在文件系統中存取目錄或檔案的日期和時間。
AllocatedLength
檔案的配置大小,以位元組為單位。
FileSize
目錄或檔案的新大小,以位元組為單位,如果大小未變更,則為舊大小。
FileAttributes
檔案屬性,可以是下列任何有效組合:
- FILE_ATTRIBUTE_READONLY
- FILE_ATTRIBUTE_HIDDEN
- FILE_ATTRIBUTE_SYSTEM
- FILE_ATTRIBUTE_DIRECTORY
- FILE_ATTRIBUTE_ARCHIVE
- FILE_ATTRIBUTE_NORMAL
- FILE_ATTRIBUTE_TEMPORARY
- FILE_ATTRIBUTE_COMPRESSED
DUMMYUNIONNAME
DUMMYUNIONNAME.ReparsePointTag
目錄或檔案之重新分析點的標識碼標記。
DUMMYUNIONNAME.EaSize
檔案的擴充屬性長度 (EA) ,以位元組為單位。
FileId
目錄或檔案的標識碼。 這個數位是由文件系統產生並指派給檔案。
ParentFileId
檔案父目錄的標識碼。
FileNameLength
記錄檔名部分的大小,以位元組為單位。 這個值不包含終止的 Null 字元。
FileName[1]
可變長度欄位,包含相對於目錄句柄的檔名。 檔名是 Unicode 字元格式,不是以 Null 結尾。
規格需求
需求 | 值 |
---|---|
標頭 | ntifs.h |