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

ヒープから割り当てることができる最大メモリ ブロックのサイズ (バイト単位)。 この値を指定しない場合は、最も高いアドレスと最も低いアドレス (1 ページ未満) の差が使用されます。

VirtualMemoryThreshold

仮想メモリのしきい値 (バイト単位)。 この値が指定されていない場合、または最大ヒープ ブロック サイズより大きい場合は、0x7F000の最大ヒープ ブロック サイズが使用されます。

InitialCommit

ヒープに対してコミットするメモリの初期量 (バイト単位)。 InitialReserve 以下である必要があります。 HeapBaseCommitRoutine が NULL 以外の場合、CommitSize の値をオーバーライドするこのパラメーターは 0 以外の値である必要があります。それ以外の場合は無視されます。

InitialReserve

ヒープ用に予約するメモリの初期量 (バイト単位)。 HeapBaseCommitRoutine が NULL 以外の場合、ReserveSize の値をオーバーライドするこのパラメーターは 0 以外の値である必要があります。それ以外の場合は無視されます。

CommitRoutine

ヒープからページをコミットする RTL_HEAP_COMMIT_ROUTINE ルーチンへのポインター。 このパラメーターが NULL 以外の場合、ヒープは拡張不可能である必要があります。 HeapBase が NULL の場合、CommitRoutine も NULL である必要があります。

Reserved[2]

システムで使用するために予約されています。 ドライバーは、このパラメーターを 0 に設定する必要があります。

要件

要件
サポートされている最小のクライアント Windows XP
Header ntifs.h

こちらもご覧ください

RtlCreateHeap をRTL_HEAP_COMMIT_ROUTINEする