FILE_FS_ATTRIBUTE_INFORMATION 構造体 (ntifs.h)

FILE_FS_ATTRIBUTE_INFORMATION構造体は、ファイル システムの属性情報を照会するために使用されます。

構文

typedef struct _FILE_FS_ATTRIBUTE_INFORMATION {
  ULONG FileSystemAttributes;
  LONG  MaximumComponentNameLength;
  ULONG FileSystemNameLength;
  WCHAR FileSystemName[1];
} FILE_FS_ATTRIBUTE_INFORMATION, *PFILE_FS_ATTRIBUTE_INFORMATION;

メンバー

FileSystemAttributes

次のフラグの互換性のある組み合わせとして、指定されたファイル システムの属性を指定するフラグのビットマスク。

意味
FILE_CASE_SENSITIVE_SEARCH (0x00000001) ファイル システムでは、大文字と小文字を区別するファイル名がサポートされています。
FILE_CASE_PRESERVED_NAMES (0x00000002) ファイル システムでは、ディスクに名前を配置するときに、ファイル名の大文字と小文字が保持されます。
FILE_UNICODE_ON_DISK (0x00000004) ファイル システムでは、ファイル名の Unicode がサポートされています。
FILE_PERSISTENT_ACLS (0x00000008) ファイル システムでは、アクセス制御リスト (ACL) が保持され、適用されます。
FILE_FILE_COMPRESSION (0x00000010) ファイル システムでは、ファイル ベースの圧縮がサポートされています。 このフラグは、 FILE_VOLUME_IS_COMPRESSED フラグと互換性がありません。 このフラグは、ネットワーク経由でのデータの転送方法には影響しません。
FILE_VOLUME_QUOTAS (0x00000020) ファイル システムでは、ユーザーごとのクォータがサポートされます。
FILE_SUPPORTS_SPARSE_FILES (0x00000040) ファイル システムでは、スパース ファイルがサポートされています。
FILE_SUPPORTS_REPARSE_POINTS (0x00000080) ファイル システムでは、 再解析ポイントがサポートされています。
FILE_SUPPORTS_REMOTE_STORAGE (0x00000100) ファイル システムでは、リモート ストレージがサポートされています。
FILE_RETURNS_CLEANUP_RESULT_INFO (0x00000200) クリーンアップ操作が正常に完了すると、ファイル システムは、ファイルの削除など、クリーンアップ中に実行された追加のアクションを説明する情報を返します。 ファイル システム フィルターは、クリーンアップ後のコールバックでこの情報を調べることができます。
FILE_SUPPORTS_POSIX_UNLINK_RENAME (0x00000400) ファイル システムでは、POSIX スタイルの削除操作と名前変更操作がサポートされています。
FILE_VOLUME_IS_COMPRESSED (0x00008000) 指定されたボリュームは圧縮ボリュームです。 このフラグは、 FILE_FILE_COMPRESSION フラグと互換性がありません。 これは、ネットワーク経由でのデータの転送方法には影響しません。
FILE_SUPPORTS_OBJECT_IDS (0x00010000) ファイル システムでは、オブジェクト識別子がサポートされています。
FILE_SUPPORTS_ENCRYPTION (0x00020000) ファイル システムでは暗号化がサポートされています。
FILE_NAMED_STREAMS (0x00040000) ファイル システムでは、ファイルの名前付き データ ストリーム がサポートされています。
FILE_READ_ONLY_VOLUME (0x00080000) 指定されたボリュームは読み取り専用です。
FILE_SEQUENTIAL_WRITE_ONCE (0x00100000) 指定されたボリュームは、1 回だけ書き込むことができます。 書き込みを順番に実行する必要があります。
FILE_SUPPORTS_TRANSACTIONS (0x00200000) ファイル システムは トランザクション処理をサポートします。
FILE_SUPPORTS_HARD_LINKS (0x00400000) ファイル システムでは、他のデバイスやパーティションへの直接リンクがサポートされています。
FILE_SUPPORTS_EXTENDED_ATTRIBUTES (0x00800000) ファイル システムでは、拡張属性 (EA) がサポートされています。
FILE_SUPPORTS_OPEN_BY_FILE_ID (0x01000000) ファイル システムでは、ファイル ID による開きがサポートされています。
FILE_SUPPORTS_USN_JOURNAL (0x02000000) ファイル・システムは、更新シーケンス番号 (USN) ジャーナルをサポートします。
FILE_SUPPORTS_INTEGRITY_STREAMS (0x04000000) ファイル システムでは 、整合性ストリームがサポートされています。
FILE_SUPPORTS_BLOCK_REFCOUNTING (0x08000000) ファイル システムでは 、ブロックの複製、つまり、同じボリューム上のファイル間での論理クラスターの共有がサポートされています。 ファイル システムは、共有クラスターへの書き込み時に再割り当てを行います。
FILE_SUPPORTS_SPARSE_VDL (0x10000000) ファイル システムは、ファイルの各クラスターに有効なデータ (明示的なファイルの書き込みまたは自動ゼロからのデータ) または無効なデータ (まだ書き込まれていないかゼロにされていない) が含まれているかどうかを追跡します。 スパース有効なデータ長 (VDL) を使用するファイル システムでは、有効なデータ長が格納されず、有効なデータがファイル内で連続している必要はありません。
FILE_DAX_VOLUME (0x20000000) 指定されたボリュームは、直接アクセス (DAX) ボリュームです。
FILE_SUPPORTS_GHOSTING (0x40000000) ファイル システムでは、ゴースト処理がサポートされています。

MaximumComponentNameLength

指定したファイル システムでサポートされるファイル名コンポーネントの最大長 (バイト単位)。 ファイル名コンポーネントは、パス区切り文字 (円記号など) の間のファイル名の部分です。

FileSystemNameLength

ファイル システム名の長さ (バイト単位)。 このフィールドの値は 0 より大きくなければなりません。

FileSystemName[1]

ファイル システムの名前を含む可変長 Unicode フィールド。 このフィールドは null で終わるのではなく、 FileSystemNameLength バイトのシーケンスとして処理する必要があります。

注釈

この情報は、次のいずれかの方法で照会できます。

  • FltQueryVolumeInformation または ZwQueryVolumeInformationFile を呼び出し、FileFsAttributeInformationを FileInformationClass の値として渡し、呼び出し元によって割り当てられたFILE_FS_ATTRIBUTE_INFORMATION構造化バッファーを FileInformation の値として渡します。

    • 注: CSVFS では、 FileFsAttributeInformation は CSVFS ファイル システムの FILE_FS_ATTRIBUTE_INFORMATION を返します。 CSVFS がレイヤー化されたファイル システムに対して FileFsAttributeInformation を照会する場合は、 FSCTL_CSV_QUERY_DOWN_LEVEL_FILE_SYSTEM_CHARACTERISTICSを使用する必要があります。
  • 主要な関数コード IRP_MJ_QUERY_VOLUME_INFORMATIONを使用して IRP を作成します。

この情報を照会するために特定のアクセス権は必要ありません。 したがって、この情報は、ボリューム自体、またはボリューム上のファイルまたはディレクトリへのオープン ハンドルを介してボリュームにアクセスする限り使用できます。

FileInformation パラメーターで FltQueryVolumeInformation または ZwQueryVolumeInformationFile に渡されるバッファーサイズは、少なくとも sizeof(FILE_FS_ATTRIBUTE_INFORMATION)である必要があります。 ファイル システム名の最大長は想定できないため (実質的には、制限は 2^31 文字ポイント)、 FileSystemNameLength がわかったら、これらのルーチンの 2 回目の呼び出しが必要になります。

この構造体は 、LONG (4 バイト) 境界に配置する必要があります。

要件

要件
Header ntifs.h (Ntifs.h、Fltkernel.h を含む)

こちらもご覧ください

ACL

FltQueryVolumeInformation

IRP_MJ_QUERY_VOLUME_INFORMATION

ZwQueryVolumeInformationFile