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

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

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

Синтаксис

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 Если выделение, удовлетворяющее ВыравниваниеShift (или, по крайней мере, FallbackAlignmentShift, если указано), не удается найти, то завершится сбой операции файловой системы (например, расширение файла).
DAX_ALLOC_ALIGNMENT_FLAG_FALLBACK_SPECIFIED Указывает, что поле FallbackAlignmentShift присутствует в входной структуре и указывает резервное выравнивание, если оптимальное выравнивание недоступно.

AlignmentShift

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

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

AlignmentValue = (1 << AlignmentShift);

FileOffsetToAlign

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

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

FallbackAlignmentShift

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

Замечания

Чтобы сбросить ограничение выравнивания, можно выполнить это FSCTL с выравниванием 1; то есть ВыравниваниеShift значение 0.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 10 версии 1709
заголовка ntifs.h (include Ntifs.h)