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 文字、ピリオド "."、最大 3 文字のファイル名拡張子が続きます。
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 システム クリティカルなブート ファイルを提供するために、このボリュームが別のボリュームに依存していることを示します。 もう 1 つのボリュームには、このボリューム上のファイルをバックアップする 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_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 );

Version メンバーは、クエリとセット要求の両方に対して、現在のバージョンの 1 に設定する必要があります。

要件

要件
サポートされている最小のクライアント Windows 7
Header ntifs.h (Ntifs.h を含む)

こちらもご覧ください

FSCTL_QUERY_PERSISTENT_VOLUME_STATE

FSCTL_SET_PERSISTENT_VOLUME_STATE