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