FILE_FS_ATTRIBUTE_INFORMATION結構 (ntifs.h)
FILE_FS_ATTRIBUTE_INFORMATION結構是用來查詢文件系統的屬性資訊。
語法
typedef struct _FILE_FS_ATTRIBUTE_INFORMATION {
ULONG FileSystemAttributes;
LONG MaximumComponentNameLength;
ULONG FileSystemNameLength;
WCHAR FileSystemName[1];
} FILE_FS_ATTRIBUTE_INFORMATION, *PFILE_FS_ATTRIBUTE_INFORMATION;
成員
FileSystemAttributes
旗標的位掩碼會指定指定文件系統的屬性,做為下列旗標的兼容組合。
值 | 意義 |
---|---|
FILE_CASE_SENSITIVE_SEARCH (0x00000001) | 檔案系統支援區分大小寫的檔名。 |
FILE_CASE_PRESERVED_NAMES (0x00000002) | 當檔案系統將名稱放在磁碟上時,檔案系統會保留檔名的大小寫。 |
FILE_UNICODE_ON_DISK (0x00000004) | 檔系統支援檔名中的 Unicode 。 |
FILE_PERSISTENT_ACLS (0x00000008) | 檔案系統會保留並強制執行訪問控制清單, (ACL) 。 |
FILE_FILE_COMPRESSION (0x00000010) | 檔系統支援以檔案為基礎的壓縮。 此旗標與 FILE_VOLUME_IS_COMPRESSED 旗標不相容。 此旗標不會影響透過網路傳輸數據的方式。 |
FILE_VOLUME_QUOTAS (0x00000020) | 檔案系統支援每個使用者配額。 |
FILE_SUPPORTS_SPARSE_FILES (0x00000040) | 檔系統支援疏鬆檔案。 |
FILE_SUPPORTS_REPARSE_POINTS (0x00000080) | 檔案系統支援 重新分析點。 |
FILE_SUPPORTS_REMOTE_STORAGE (0x00000100) | 檔案系統支援遠端記憶體。 |
FILE_RETURNS_CLEANUP_RESULT_INFO (0x00000200) | 在成功的清除作業上,文件系統會傳回資訊,描述清除期間所採取的其他動作,例如刪除檔案。 檔系統篩選器可以在其清除後回呼中檢查此資訊。 |
FILE_SUPPORTS_POSIX_UNLINK_RENAME (0x00000400) | 檔案系統支援 POSIX 樣式的刪除和重新命名作業。 |
FILE_VOLUME_IS_COMPRESSED (0x00008000) | 指定的磁碟區是壓縮的磁碟區。 此旗標與 FILE_FILE_COMPRESSION 旗標不相容。 這不會影響透過網路傳輸數據的方式。 |
FILE_SUPPORTS_OBJECT_IDS (0x00010000) | 檔系統支援物件識別碼。 |
FILE_SUPPORTS_ENCRYPTION (0x00020000) | 檔案系統支援加密。 |
FILE_NAMED_STREAMS (0x00040000) | 檔系統支援檔案的具名 數據流 。 |
FILE_READ_ONLY_VOLUME (0x00080000) | 指定的磁碟區是唯讀的。 |
FILE_SEQUENTIAL_WRITE_ONCE (0x00100000) | 指定的磁碟區只能寫入一次。 必須依循序順序執行寫入。 |
FILE_SUPPORTS_TRANSACTIONS (0x00200000) | 檔系統支援 事務處理。 |
FILE_SUPPORTS_HARD_LINKS (0x00400000) | 檔系統支援直接連結至其他裝置和分割區。 |
FILE_SUPPORTS_EXTENDED_ATTRIBUTES (0x00800000) | 檔系統支援擴充屬性 (EAS) 。 |
FILE_SUPPORTS_OPEN_BY_FILE_ID (0x01000000) | 檔系統支援依檔案標識碼開啟。 |
FILE_SUPPORTS_USN_JOURNAL (0x02000000) | 檔系統支援 USN) 紀錄 (更新序號。 |
FILE_SUPPORTS_INTEGRITY_STREAMS (0x04000000) | 檔系統支援 完整性數據流。 |
FILE_SUPPORTS_BLOCK_REFCOUNTING (0x08000000) | 檔系統支援 區塊複製,也就是在相同磁碟區上的檔案之間共用邏輯叢集。 檔案系統會重新配置共用叢集的寫入。 |
FILE_SUPPORTS_SPARSE_VDL (0x10000000) | 檔案系統會追蹤檔案的每個叢集是否包含來自明確檔案寫入或自動零) 或無效數據 (尚未寫入或零) 的有效數據 (。 使用疏鬆有效數據長度的文件系統 (VDL) 不會儲存有效的數據長度,而且不需要在檔案中連續有效數據。 |
FILE_DAX_VOLUME (0x20000000) | 指定的磁碟區是DAX) 磁碟 (區的直接存取權。 |
FILE_SUPPORTS_GHOSTING (0x40000000) | 檔案系統支援准刪除。 |
MaximumComponentNameLength
指定檔案系統支援的檔名元件長度上限,以位元組為單位。 檔名元件是路徑分隔符之間的檔名部分, (例如反斜杠) 。
FileSystemNameLength
檔案系統名稱的長度,以位元組為單位。 這個欄位的值必須大於零。
FileSystemName[1]
包含檔案系統名稱的可變長度 Unicode 欄位。 此欄位不是以 Null 結尾,而且必須以 FileSystemNameLength 位元組序列處理。
備註
您可以使用下列任一種方式來查詢此資訊:
呼叫 FltQueryVolumeInformation 或 ZwQueryVolumeInformationFile、傳遞 FileFsAttributeInformation 做為 FileInformationClass 的值,並傳遞呼叫端配置的 已配置、FILE_FS_ATTRIBUTE_INFORMATION結構化緩衝區作為 FileInformation 的值。
- 注意:在 CSVFS 上,FileFsAttributeInformation 會傳回 CSVFS 檔案系統 的FILE_FS_ATTRIBUTE_INFORMATION 。 如果您想要查詢文件系統 CSVFS 的 FileFsAttributeInformation 已分層,您應該使用 FSCTL_CSV_QUERY_DOWN_LEVEL_FILE_SYSTEM_CHARACTERISTICS。
使用主要函式 程式代碼建立 IRP IRP_MJ_QUERY_VOLUME_INFORMATION。
查詢此資訊不需要任何特定的訪問許可權。 因此,只要透過磁碟區本身的開啟句柄或磁碟區上的檔案或目錄來存取磁碟區,即可取得這項資訊。
在 FileInformation 參數中傳遞至 FltQueryVolumeInformation 或 ZwQueryVolumeInformationFile 的緩衝區大小必須至少 sizeof(FILE_FS_ATTRIBUTE_INFORMATION)
為 。 由於實際上無法假設文件系統名稱長度上限 (,因此限製為 2^31 個字元點) ,因此在已知 FileSystemNameLength 之後,需要對其中一個例程進行第二次呼叫。
此結構必須對齊 LONG (4 位元組) 界限。
規格需求
需求 | 值 |
---|---|
標頭 | ntifs.h (包含 Ntifs.h、Fltkernel.h) |