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_STATEFSCTL_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)

另請參閱

FSCTL_QUERY_PERSISTENT_VOLUME_STATE

FSCTL_SET_PERSISTENT_VOLUME_STATE