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