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 |
ヘッダー | ntifs.h (Ntifs.h を含む) |