共用方式為


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 Update 開始有效。
PERSISTENT_VOLUME_STATE_BACKED_BY_WIM 0x00000040 表示此磁碟區相依於另一個磁碟區,以提供系統重大開機檔案。 另一個磁碟區包含一個 WIM 檔案,可備份此磁碟區上的檔案。 這個旗標是唯讀的。 從 Windows 8.1 Update 開始有效。
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_STATEFlagMask 會設定為磁碟區 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 (include Ntifs.h)

另請參閱

FSCTL_QUERY_PERSISTENT_VOLUME_STATE

FSCTL_SET_PERSISTENT_VOLUME_STATE