RTL_HEAP_PARAMETERS 结构 (ntifs.h)
RTL_HEAP_PARAMETERS 结构包含创建堆时要应用的参数。
语法
typedef struct _RTL_HEAP_PARAMETERS {
ULONG Length;
SIZE_T SegmentReserve;
SIZE_T SegmentCommit;
SIZE_T DeCommitFreeBlockThreshold;
SIZE_T DeCommitTotalFreeThreshold;
SIZE_T MaximumAllocationSize;
SIZE_T VirtualMemoryThreshold;
SIZE_T InitialCommit;
SIZE_T InitialReserve;
PRTL_HEAP_COMMIT_ROUTINE CommitRoutine;
SIZE_T Reserved[2];
} RTL_HEAP_PARAMETERS, *PRTL_HEAP_PARAMETERS;
成员
Length
RTL_HEAP_PARAMETERS结构的大小(以字节为单位)。
SegmentReserve
段保留大小(以字节为单位)。 如果未指定此值,则使用 1 MB。
SegmentCommit
分段提交大小(以字节为单位)。 如果未指定此值,则使用 PAGE_SIZE * 2。
DeCommitFreeBlockThreshold
取消提交可用块阈值(以字节为单位)。 如果未指定此值,则使用 PAGE_SIZE。
DeCommitTotalFreeThreshold
取消提交总可用阈值(以字节为单位)。 如果未指定此值,则使用 65536。
MaximumAllocationSize
可从堆中分配的最大内存块的大小(以字节为单位)。 如果未指定此值,则使用最高地址和最低地址之间的差值(少一页)。
VirtualMemoryThreshold
虚拟内存阈值,以字节为单位。 如果未指定此值,或者大于最大堆块大小,则使用最大堆块大小0x7F000。
InitialCommit
要为堆提交的初始内存量(以字节为单位)。 必须小于或等于 InitialReserve。 如果 HeapBase 和 CommitRoutine 为非 NULL,则此参数(替代 CommitSize 的值)必须是非零值;否则会忽略它。
InitialReserve
要为堆保留的初始内存量(以字节为单位)。 如果 HeapBase 和 CommitRoutine 为非 NULL,则此参数(替代 ReserveSize 的值)必须为非零值;否则会忽略它。
CommitRoutine
指向从堆提交页面 的RTL_HEAP_COMMIT_ROUTINE 例程的指针。 如果此参数为非 NULL,则堆必须是不可增长的。 如果 HeapBase 为 NULL, 则 CommitRoutine 也必须为 NULL。
Reserved[2]
预留给系统使用。 驱动程序必须将此参数设置为零。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP |
标头 | ntifs.h |