структура 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

Флаги для возможностей выравнивания секторов и производительности. Это значение является побитовой комбинацией ИЛИ следующего:

Значение Значение
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 с основным кодом функции IRP_MJ_QUERY_VOLUME_INFORMATION.
  • Вызовите FsRtlGetSectorSizeInformation с указателем на FILE_FS_SECTOR_SIZE_INFORMATION структурированный буфер. Элемент FileSystemEffectivePhysicalBytesPerSectorForAtomicity не будет иметь значение, инициализированное файловой системой, когда эта структура возвращается из FsRtlGetSectorSizeInformation. Драйвер файловой системы обычно вызывает эту функцию, а затем задает собственное значение fileSystemEffectivePhysicalBytesPerSectorForAtomicity.
Для запроса этих сведений не требуются определенные права доступа. Таким образом, эта информация доступна при условии, что доступ к тому осуществляется через открытый дескриптор для самого тома или файла или каталога на томе.

Размер буфера, передаваемого в параметре FileInformation в FltQueryVolumeInformation или ZwQueryVolumeInformationFile , должен быть не ниже sizeof (FILE_FS_SECTOR_SIZE_INFORMATION).

Файловая система использует значение LogicalBytesPerSector для определения размера единицы распределения. Элемент LogicalBytesPerSector этой структуры эквивалентен члену BytesPerSectorFILE_FS_SIZE_INFORMATION и FILE_FS_FULL_SIZE_INFORMATION структур.

Если системе не удается определить значения PhysicalBytesPerSectorForAtomicity и PhysicalBytesPerSectorForPerformance с устройства хранения, для них устанавливается значение LogicalBytesPerSector.

Требования

Требование Значение
Минимальная версия клиента Эта структура доступна начиная с Windows 7.
Верхняя часть 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