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。 如果 HeapBaseCommitRoutine 为非 NULL,则此参数(替代 CommitSize 的值)必须是非零值;否则会忽略它。

InitialReserve

要为堆保留的初始内存量(以字节为单位)。 如果 HeapBaseCommitRoutine 为非 NULL,则此参数(替代 ReserveSize 的值)必须为非零值;否则会忽略它。

CommitRoutine

指向从堆提交页面 的RTL_HEAP_COMMIT_ROUTINE 例程的指针。 如果此参数为非 NULL,则堆必须是不可增长的。 如果 HeapBase 为 NULL, 则 CommitRoutine 也必须为 NULL。

Reserved[2]

预留给系统使用。 驱动程序必须将此参数设置为零。

要求

要求
最低受支持的客户端 Windows XP
标头 ntifs.h

另请参阅

RTL_HEAP_COMMIT_ROUTINERtlCreateHeap