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对齐的文件偏移量。 这应与群集对齐。
仅当文件偏移量和物理地址对齐 1gb 时,内存管理器才支持大页。
FallbackAlignmentShift
如果DAX_ALLOC_ALIGNMENT_FLAG_FALLBACK_SPECIFIED存在于 标志中,则此字段指定回退块大小,以在找不到满足 AlignmentShift 的分配时对齐文件的给定偏移量。
言论
若要重置对齐约束,可以使用 AlignmentValue 1 颁发此 FSCTL;也就是说,AlignmentShift 为 0。
要求
| 要求 | 价值 |
|---|---|
| 最低支持的客户端 | Windows 10 版本 1709 |
| 标头 | ntifs.h (include Ntifs.h) |