FILE_FS_SECTOR_SIZE_INFORMATION 構造体 (ntddk.h)

FILE_FS_SECTOR_SIZE_INFORMATION構造は、ファイル・システム・ボリュームの物理セクター・サイズおよび論理セクター・サイズ情報の照会に使用されます。

構文

typedef struct _FILE_FS_SECTOR_SIZE_INFORMATION {
  ULONG LogicalBytesPerSector;
  ULONG PhysicalBytesPerSectorForAtomicity;
  ULONG PhysicalBytesPerSectorForPerformance;
  ULONG FileSystemEffectivePhysicalBytesPerSectorForAtomicity;
  ULONG Flags;
  ULONG ByteOffsetForSectorAlignment;
  ULONG ByteOffsetForPartitionAlignment;
} FILE_FS_SECTOR_SIZE_INFORMATION, *PFILE_FS_SECTOR_SIZE_INFORMATION;

メンバー

LogicalBytesPerSector

物理ストレージによって報告されるセクターあたりの論理バイト数。 これは、論理ブロック アドレス指定 (LBA) に使用されるブロック サイズと同じ値です。

PhysicalBytesPerSectorForAtomicity

アトミック書き込みに使用される物理ストレージによって報告されるセクターあたりの実際のバイト数。

PhysicalBytesPerSectorForPerformance

最適なパフォーマンスを得るための物理ストレージによって報告されるセクターあたりのバイト数。

FileSystemEffectivePhysicalBytesPerSectorForAtomicity

PhysicalBytesPerSectorForAtomicity の部分は、ファイル システムによって物理セクター サイズと見なされます。

Flags

セクターの配置とパフォーマンス機能のフラグ。 この値は、次のビットごとの OR の組み合わせです。

意味
SSINFO_FLAGS_ALIGNED_DEVICE
ストレージ デバイスの論理セクターは、物理セクターの境界に合わせて調整されます。
SSINFO_FLAGS_PARTITION_ALIGNED_ON_DEVICE
パーティションは、ストレージ デバイス上の物理セクターの境界に合わせて調整されます。
SSINFO_FLAGS_NO_SEEK_PENALTY
ストレージ デバイスにはシークペナルティはありません。
SSINFO_FLAGS_PARTITION_ALIGNED_ON_DEVICE
ストレージ・デバイスは TRIM 操作をサポートします。

ByteOffsetForSectorAlignment

最初の物理セクター内の最初の論理セクターの先頭のオフセット (バイト単位)。 適切なデバイス情報を使用して値を計算できない場合、このメンバーは SSINFO_OFFSET_UNKNOWN に設定されます。

ByteOffsetForPartitionAlignment

パーティションを物理セクターの境界に合わせるために使用されるオフセット値 (バイト単位)。 適切なデバイス情報を使用して値を計算できない場合、このメンバーは SSINFO_OFFSET_UNKNOWN に設定されます。

注釈

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

  • FltQueryVolumeInformation または ZwQueryVolumeInformationFile を呼び出し、FileFsSectorSizeInformationを FileInformationClass の値として渡し、呼び出し元によって割り当てられたFILE_FS_SECTOR_SIZE_INFORMATION構造化バッファーを FileInformation の値として渡します。
  • 主要な関数コード IRP_MJ_QUERY_VOLUME_INFORMATIONを使用して IRP を作成します。
  • FILE_FS_SECTOR_SIZE_INFORMATION構造化バッファーへのポインターを使用して FsRtlGetSectorSizeInformation を呼び出します。 FileSystemEffectivePhysicalBytesPerSectorForAtomicity メンバーは、この構造体が FsRtlGetSectorSizeInformation から返されるときに、ファイル システムによって初期化された値を持っていません。 通常、ファイル システム ドライバーはこの関数を呼び出し、 FileSystemEffectivePhysicalBytesPerSectorForAtomicity に独自の値を設定します。
この情報を照会するために特定のアクセス権は必要ありません。 したがって、この情報は、ボリューム自体、またはボリューム上のファイルまたはディレクトリへのオープン ハンドルを介してボリュームにアクセスする限り使用できます。

FileInformation パラメーターで FltQueryVolumeInformation または ZwQueryVolumeInformationFile に渡されるバッファーサイズは、少なくとも sizeof (FILE_FS_SECTOR_SIZE_INFORMATION) である必要があります。

ファイル システムは LogicalBytesPerSector の値を使用して、割り当て単位のサイズを決定します。 この構造体の LogicalBytesPerSector メンバーは、FILE_FS_SIZE_INFORMATION および FILE_FS_FULL_SIZE_INFORMATION 構造体の BytesPerSector メンバーと同じです。

システムがストレージ デバイスから PhysicalBytesPerSectorForAtomicityPhysicalBytesPerSectorForPerformance の値を特定できない場合は、LogicalBytesPerSector の値に設定されます。

要件

要件
サポートされている最小のクライアント この構造は、Windows 7 以降で使用できます。
Header ntddk.h (Ntddk.h、Ntifs.h、Fltkernel.h を含む)

こちらもご覧ください

FILE_FS_FULL_SIZE_INFORMATION

FILE_FS_SIZE_INFORMATION

FltQueryVolumeInformation

FsRtlGetSectorSizeInformation

IRP_MJ_QUERY_VOLUME_INFORMATION

ZwQueryVolumeInformationFile