FILE_FS_PERSISTENT_VOLUME_INFORMATION 結構 (ntifs.h)
FILE_FS_PERSISTENT_VOLUME_INFORMATION 結構可用來控制檔系統磁碟區的持續性設定。 在電腦重新啟動之間,持續性設定會保存在檔案系統磁碟區上。
語法
typedef struct _FILE_FS_PERSISTENT_VOLUME_INFORMATION {
ULONG VolumeFlags;
ULONG FlagMask;
ULONG Version;
ULONG Reserved;
} FILE_FS_PERSISTENT_VOLUME_INFORMATION, *PFILE_FS_PERSISTENT_VOLUME_INFORMATION;
成員
VolumeFlags
檔系統磁碟區的持續性狀態設定。 這個值是下列專案的位 OR 組合。
值 | 意義 |
---|---|
PERSISTENT_VOLUME_STATE_SHORT_NAME_CREATION_DISABLED 0x00000001 | 此位的 0 表示已啟用 8.3 簡短名稱的建立,而 1 表示已停用簡短名稱建立。 8.3 簡短檔名最多有 8 個字元,後面接著句點 “.”,擴展名最多為三個字元。 |
PERSISTENT_VOLUME_STATE_VOLUME_SCRUB_DISABLED 0x00000002 | 設定時,此旗標表示磁碟區清除已停用磁碟區。 從 Windows 8 開始有效。 |
PERSISTENT_VOLUME_STATE_GLOBAL_METADATA_NO_SEEK_PENALTY 0x00000004 | 階層式磁碟區會啟用全域無搜尋懲罰。 從 Windows 8.1 開始有效。 |
PERSISTENT_VOLUME_STATE_LOCAL_METADATA_NO_SEEK_PENALTY 0x00000008 | 階層式磁碟區會啟用本機無搜尋懲罰。 從 Windows 8.1 開始有效。 |
PERSISTENT_VOLUME_STATE_NO_HEAT_GATHERING 0x00000010 | 設定時,階層式磁碟區不會啟用熱收集。 從 Windows 8.1 開始有效。 |
PERSISTENT_VOLUME_STATE_CONTAINS_BACKING_WIM 0x00000020 | 指出此磁碟區使用 Windows 映像格式 (WIM) 檔案的檔案來備份系統磁碟區。 從 Windows 8.1 更新版 開始有效。 |
PERSISTENT_VOLUME_STATE_BACKED_BY_WIM 0x00000040 | 表示此磁碟區相依於另一個磁碟區,以提供系統關鍵開機檔案。 另一個磁碟區包含一個 WIM 檔案,可備份此磁碟區上的檔案。 此旗標是唯讀的。 從 Windows 8.1 更新版 開始有效。 |
PERSISTENT_VOLUME_STATE_DEV_VOLUME 0x00002000 | 表示此磁碟區格式化為開發人員磁碟區。 檔案系統和其他系統元件可以使用此功能,以啟用不需要系統管理員信任指定計算機上的磁碟區優化。 從 Windows 11 版本 22H2 9 月更新開始有效。 |
PERSISTENT_VOLUME_STATE_TRUSTED_VOLUME 0x00004000 | 表示指定計算機上的系統管理員已信任此磁碟區,而且願意啟用優化,例如沒有防毒篩選器附加至磁碟區。 此資訊會保存在指定電腦上的登錄中。 檔案系統和其他系統元件可以使用此功能,以啟用需要系統管理員信任指定計算機上磁碟區的優化。 從 Windows 11 版本 22H2 9 月更新開始有效。 |
FlagMask
可以出現在 VolumeFlags 中之有效旗標的遮罩值。 這是 VolumeFlags 所描述所需旗標的位 OR 組合。
Version
這個結構的版本號碼。 設定為 1。
Reserved
保留的。 設定為 0;
備註
FILE_FS_PERSISTENT_VOLUME_INFORMATION 結構會與FSCTL_SET_PERSISTENT_VOLUME_STATE和FSCTL_QUERY_PERSISTENT_VOLUME_STATE控件程式代碼搭配使用。
若要查詢狀態旗標, FlagMask 會設定為要檢查的旗標組合。 例如,如果只感興趣的搜尋懲罰旗標, FlagMask = PERSISTENT_VOLUME_STATE_GLOBAL_METADATA_NO_SEEK_PENALTY |PERSISTENT_VOLUME_STATE_LOCAL_METADATA_NO_SEEK_PENALTY。 此外,如果只查詢簡短名稱支援,請設定 FlagMask = PERSISTENT_VOLUME_STATE_SHORT_NAME_CREATION_DISABLED。
設定或清除永續性磁碟區狀態旗標時,使用 FSCTL_SET_PERSISTENT_VOLUME_STATE,FlagMask 會設定為 VolumeFlags 中所有將受影響磁碟區的旗標。 VolumeFlags 包含要為磁碟區設定的實際持續性狀態旗標。 下列範例示範如何設定 FILE_FS_PERSISTENT_VOLUME_INFORMATION 的成員,以啟用磁碟區的簡短名稱建立。
IO_STATUS_BLOCK IoStatus;
FILE_FS_PERSISTENT_VOLUME_INFORMATION PersistVolInfo;
NTSTATUS status;
PersistVolInfo.VolumeFlags = 0; // enable shortname creation on this volume
PersistVolInfo.FlagMask = PERSISTENT_VOLUME_STATE_SHORT_NAME_CREATION_DISABLED;
PersistVolInfo.Version = 1;
PersistVolInfo.Reserved = 0;
// issue the request to the file system to set the enable state
//
status = ZwFsControlFile( VolumeHandle,
NULL,
NULL,
NULL,
&IoStatus,
FSCTL_SET_PERSISTENT_VOLUME_STATE,
&PersistVolInfo,
sizeof(FILE_FS_PERSISTENT_VOLUME_INFORMATION),
NULL,
0 );
[版本] 成員必須同時設定為查詢和集合要求的目前版本 1。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 7 |
標頭 | ntifs.h (包含 Ntifs.h) |