次の方法で共有


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