共用方式為


FILE_DIRECTORY_INFORMATION結構 (ntifs.h)

FILE_DIRECTORY_INFORMATION 結構可用來查詢目錄中檔案的詳細資訊。

語法

typedef struct _FILE_DIRECTORY_INFORMATION {
  ULONG         NextEntryOffset;
  ULONG         FileIndex;
  LARGE_INTEGER CreationTime;
  LARGE_INTEGER LastAccessTime;
  LARGE_INTEGER LastWriteTime;
  LARGE_INTEGER ChangeTime;
  LARGE_INTEGER EndOfFile;
  LARGE_INTEGER AllocationSize;
  ULONG         FileAttributes;
  ULONG         FileNameLength;
  WCHAR         FileName[1];
} FILE_DIRECTORY_INFORMATION, *PFILE_DIRECTORY_INFORMATION;

成員

NextEntryOffset

如果緩衝區中有多個專案,則下一個 FILE_DIRECTORY_INFORMATION 專案的位元組位移。 如果沒有其他專案遵循此成員,則此成員為零。

FileIndex

父目錄中檔案的位元組位移。 此成員未定義給文件系統,例如NTFS,其中父目錄中的檔案位置未固定,而且可以隨時變更以維護排序順序。

CreationTime

建立檔案的時間。

LastAccessTime

上次存取檔案的時間。

LastWriteTime

上次將資訊寫入檔案的時間。

ChangeTime

上次變更檔案的時間。

EndOfFile

從檔案開頭開始的位元組位移,絕對新的檔尾位置。 EndOfFile 指定檔案結尾的位元組位移。 因為這個值是以零起始,所以實際上會參考檔案中的第一個可用位元組。 換句話說,EndOfFile 是緊接在檔案中最後一個有效位元組之後的位元組位移。

AllocationSize

檔案配置大小,以位元組為單位。 此值通常是基礎實體裝置的扇區或叢集大小的倍數。

FileAttributes

檔案屬性,可以是下列任何有效的組合:

  • FILE_ATTRIBUTE_ARCHIVE
  • FILE_ATTRIBUTE_COMPRESSED
  • FILE_ATTRIBUTE_DIRECTORY
  • FILE_ATTRIBUTE_HIDDEN
  • FILE_ATTRIBUTE_NORMAL
  • FILE_ATTRIBUTE_READONLY
  • FILE_ATTRIBUTE_SYSTEM
  • FILE_ATTRIBUTE_TEMPORARY

FileNameLength

指定檔案名字串的長度。

FileName[1]

指定檔案名稱串的第一個字元。 這會在記憶體中接著字串的其餘部分。

言論

這項資訊可透過下列其中一種方式進行查詢:

  • 呼叫 ZwQueryDirectoryFile,傳遞 FileDirectoryInformation 做為 fileInformationClass 的值,並傳遞呼叫端配置的、FILE_DIRECTORY_INFORMATION結構化緩衝區作為 fileInformation的值。
  • 使用主要函式程式代碼IRP_MJ_DIRECTORY_CONTROL和次要函式程式代碼IRP_MN_QUERY_DIRECTORY建立 IRP。

查詢此資訊不需要任何特定的訪問許可權。

所有日期和時間都是絕對系統時間格式。 絕對系統時間是自 1601 年初以來的 100 奈秒間隔數目。

此結構必須對齊 LONGLONG (8 位元組) 界限。 如果緩衝區包含兩個或多個這些結構,則每個專案中 NextEntryOffset 值,但最後一個值都落在 8 位元組界限上。

要求

要求 價值
標頭 ntifs.h (include Ntifs.h, Fltkernel.h)

另請參閱

FsRtlNotifyFullChangeDirectory

IRP_MJ_DIRECTORY_CONTROL

ZwQueryDirectoryFile