FILE_ID_BOTH_DIR_INFORMATION結構 (ntifs.h)
FILE_ID_BOTH_DIR_INFORMATION 結構是用來查詢目錄中檔案的檔案參考編號資訊。
語法
typedef struct _FILE_ID_BOTH_DIR_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;
ULONG EaSize;
CCHAR ShortNameLength;
WCHAR ShortName[12];
LARGE_INTEGER FileId;
WCHAR FileName[1];
} FILE_ID_BOTH_DIR_INFORMATION, *PFILE_ID_BOTH_DIR_INFORMATION;
成員
NextEntryOffset
如果緩衝區中有多個專案,則下一個 FILE_ID_BOTH_DIR_INFORMATION 專案的位元組位移。 如果沒有其他專案遵循此成員,則這個成員為零。
FileIndex
父目錄中檔案的位元組位移。 此成員未定義給文件系統,例如NTFS,其中檔案在父目錄中的位置未固定,而且可以隨時變更以維護排序順序。
CreationTime
建立檔案的時間。
LastAccessTime
上次存取檔案的時間。
LastWriteTime
上次將資訊寫入檔案的時間。
ChangeTime
上次變更檔案的時間。
EndOfFile
絕對新的檔尾位置,做為從檔案開頭的位元組位移。 EndOfFile 會指定檔案結尾的位元組位移。 因為此值是以零起始,所以實際上會參考檔案中的第一個可用位元組。 換句話說, EndOfFile 是緊接在檔案中最後一個有效位元組之後的位元組位移。
AllocationSize
檔案配置大小,以位元組為單位。 此值通常是基礎實體裝置的扇區或叢集大小的倍數。
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
FileNameLength
指定檔名字串的長度,以位元組為單位。
EaSize
擴充屬性的長度,以位元組為單位, (檔案的EA) 。
ShortNameLength
指定簡短檔名字串的長度。
ShortName[12]
Unicode 字串,包含檔案的簡短 (8.3) 名稱。
FileId
檔案的8位元組檔案參考編號。 這個數位是由文件系統產生並指派給檔案。 (請注意 ,FileId 與新增至 Microsoft Windows 2000.) NTFS 的 16 位元節「檔案物件標識符」不同
FileName[1]
指定檔案名稱串的第一個字元。 這會在記憶體中後面加上字串的其餘部分。
備註
您可以使用下列任一種方式來查詢此資訊:
呼叫 ZwQueryDirectoryFile,將 FileIdBothDirectoryInformation 當做 FileInformationClass 的值傳遞,並傳遞呼叫端配置的已配置、FILE_ID_BOTH_DIR_INFORMATION結構化緩衝區作為 FileInformation 的值。
使用主要函式程式代碼IRP_MJ_DIRECTORY_CONTROL和次要函式程式代碼IRP_MN_QUERY_DIRECTORY Create IRP。
查詢此資訊不需要任何特定的訪問許可權。
檔案參考編號也稱為檔案標識符,保證只在靜態文件系統內是唯一的。 它們不保證在一段時間內是唯一的,因為文件系統可以自由重複使用它們。 也不保證會維持不變。 例如,FAT 檔案系統會從檔案目錄項目記錄的位元組位移產生檔案的檔案參考編號, (DIRENT) 磁碟上。 重組可以變更此位元組位移。 因此,FAT 檔案參考編號可能會隨著時間而變更。
所有日期和時間都是絕對系統時間格式。 絕對系統時間是從 1601 年開始起的 100 奈秒間隔數目。
此結構必須對齊 LONGLONG (8 位元組) 界限。 如果緩衝區包含兩個或多個這些結構,則每個專案中的 NextEntryOffset 值會落在 8 位元組界限上,但最後一個專案除外。
規格需求
需求 | 值 |
---|---|
標頭 | ntifs.h (包含 Ntifs.h、Fltkernel.h) |