структура SET_DAX_ALLOC_ALIGNMENT_HINT_INPUT (ntifs.h)

После того как Windows выдает SET_DAX_ALLOC_ALIGNMENT_HINT_INPUT управления файловой системой для файла, она проверяет выделение файла.

После выдачи этого элемента управления файловой системы для файла будут проверены следующие выделения для файла, чтобы узнать, выделяется ли данное смещение. Если это так, физический адрес выделения будет выровнен по заданному значению AlignmentValue , если в выровненных регионах будет достаточно свободного места.

Синтаксис

typedef struct _SET_DAX_ALLOC_ALIGNMENT_HINT_INPUT {
  ULONG     Flags;
  ULONG     AlignmentShift;
  ULONGLONG FileOffsetToAlign;
  ULONG     FallbackAlignmentShift;
} SET_DAX_ALLOC_ALIGNMENT_HINT_INPUT, *PSET_DAX_ALLOC_ALIGNMENT_HINT_INPUT;

Члены

Flags

Флаги, используемые для элемента управления файловой системы. Существует два флага, которые можно использовать:

Значение Значение
DAX_ALLOC_ALIGNMENT_FLAG_MANDATORY Если не удается найти выделение, удовлетворяющее AlignmentShift (или по крайней мере FallbackAlignmentShift , если указано), завершится сбоем операции файловой системы (например, расширение файла).
DAX_ALLOC_ALIGNMENT_FLAG_FALLBACK_SPECIFIED Указывает, что поле FallbackAlignmentShift присутствует во входной структуре, и указывает на резервное выравнивание, если оптимальное выравнивание недоступно.

AlignmentShift

Размер блока, используемый для выравнивания заданного смещения файла. Файл выделяется таким образом, чтобы физический адрес файла был выровнен по размеру блока.

Фактическое значение выравнивания задается следующими способами:

AlignmentValue = (1 << AlignmentShift);

FileOffsetToAlign

Смещение файла, которое должно быть выровнено по заданному значению AlignmentValue. Он должен быть выровнен по кластеру.

Диспетчер памяти поддерживает огромные страницы, только если смещение файла и физический адрес выровнены в 1 ГБ.

FallbackAlignmentShift

Если DAX_ALLOC_ALIGNMENT_FLAG_FALLBACK_SPECIFIED присутствует в разделе Флаги, в этом поле указывается размер резервного блока для выравнивания заданного смещения файла всякий раз, когда не удается найти выделение, соответствующее AlignmentShift.

Комментарии

Чтобы сбросить ограничение выравнивания, можно выдать этот FSCTL с значением AlignmentValue 1; То есть AlignmentShift — 0.

Требования

Требование Значение
Минимальная версия клиента Windows 10 версии 1709
Верхняя часть ntifs.h (включая Ntifs.h)