共用方式為


FILE_NOTIFY_FULL_INFORMATION結構 (ntifs.h)

DIRECTORY_NOTIFY_INFORMATION_CLASS 為 DirectoryNotifyFullInformation 時,會傳回具有IRP_MN_NOTIFY_CHANGE_DIRECTORY次要函式程式碼的IRP_MJ_DIRECTORY_CONTROL要求FILE_NOTIFY_FULL_INFORMATION結構。

語法

typedef struct _FILE_NOTIFY_FULL_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;
  USHORT        FileNameLength;
  UCHAR         FileNameFlags;
  UCHAR         Reserved;
  WCHAR         FileName[1];
} FILE_NOTIFY_FULL_INFORMATION, *PFILE_NOTIFY_FULL_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 字元。

FileNameFlags

旗標,指定傳回的檔名類型,如果已知。 如果未設定下列任一旗標,則不知道檔名的類型。 如果設定下列兩個旗標,檔名會同時做為完整名稱和簡短名稱 (NTFS 名稱和 DOS 名稱) 長/簡短名稱組。

旗標
FILE_NAME_NTFS (0x01) 檔名是長/短名稱組 (NTFS 名稱) 的完整名稱。
FILE_NAME_DOS (0x02) 檔名是長/短名稱組) (DOS 名稱的簡短名稱。

Reserved

保留供系統使用。

FileName[1]

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

規格需求

需求
最低支援的用戶端 Windows 11 版本 22H2
標頭 ntifs.h

另請參閱

DIRECTORY_NOTIFY_INFORMATION_CLASS

IRP_MJ_DIRECTORY_CONTROL

ZwNotifyChangeDirectoryFileEx