Data Structures |
| struct | _HEAP_COMMON_ENTRY |
| struct | PHEAP_FREE_ENTRY |
| struct | PHEAP_ENTRY |
| struct | PHEAP_TAG_ENTRY |
| struct | PHEAP_PSEUDO_TAG_ENTRY |
| struct | PHEAP_COUNTERS |
| struct | PHEAP_TUNING_PARAMETERS |
| struct | PHEAP_LIST_LOOKUP |
| struct | PHEAP |
| struct | PHEAP_SEGMENT |
| struct | PHEAP_UCR_DESCRIPTOR |
| struct | PHEAP_UCR_SEGMENT |
| struct | PHEAP_ENTRY_EXTRA |
| struct | PHEAP_VIRTUAL_ALLOC_ENTRY |
Defines |
| #define | HEAP_FREELISTS 128 |
| #define | HEAP_SEGMENTS 64 |
| #define | HEAP_ENTRY_SIZE ((ULONG)sizeof(HEAP_ENTRY)) |
| #define | HEAP_ENTRY_SHIFT 3 |
| #define | HEAP_MAX_BLOCK_SIZE ((0x80000 - PAGE_SIZE) >> HEAP_ENTRY_SHIFT) |
| #define | ARENA_INUSE_FILLER 0xBAADF00D |
| #define | ARENA_FREE_FILLER 0xFEEEFEEE |
| #define | HEAP_TAIL_FILL 0xab |
| #define | HEAP_GLOBAL_TAG 0x0800 |
| #define | HEAP_PSEUDO_TAG_FLAG 0x8000 |
| #define | HEAP_TAG_MASK (HEAP_MAXIMUM_TAG << HEAP_TAG_SHIFT) |
| #define | HEAP_TAGS_MASK (HEAP_TAG_MASK ^ (0xFF << HEAP_TAG_SHIFT)) |
| #define | HEAP_EXTRA_FLAGS_MASK |
| #define | HEAP_ENTRY_BUSY 0x01 |
| #define | HEAP_ENTRY_EXTRA_PRESENT 0x02 |
| #define | HEAP_ENTRY_FILL_PATTERN 0x04 |
| #define | HEAP_ENTRY_VIRTUAL_ALLOC 0x08 |
| #define | HEAP_ENTRY_LAST_ENTRY 0x10 |
| #define | HEAP_ENTRY_SETTABLE_FLAG1 0x20 |
| #define | HEAP_ENTRY_SETTABLE_FLAG2 0x40 |
| #define | HEAP_ENTRY_SETTABLE_FLAG3 0x80 |
| #define | HEAP_ENTRY_SETTABLE_FLAGS (HEAP_ENTRY_SETTABLE_FLAG1 | HEAP_ENTRY_SETTABLE_FLAG2 | HEAP_ENTRY_SETTABLE_FLAG3) |
| #define | HEAP_SIGNATURE 0xeefeeff |
| #define | HEAP_SEGMENT_SIGNATURE 0xffeeffee |
| #define | HEAP_USER_ALLOCATED 0x1 |
Typedefs |
| typedef HEAP_ENTRY_EXTRA | HEAP_FREE_ENTRY_EXTRA |
| typedef HEAP_ENTRY_EXTRA * | PHEAP_FREE_ENTRY_EXTRA |
Functions |
| FORCEINLINE BOOLEAN | RtlpHeapIsSpecial (ULONG Flags) |
| | C_ASSERT (sizeof(HEAP_ENTRY)==8) |
| | C_ASSERT ((1<< HEAP_ENTRY_SHIFT)==sizeof(HEAP_ENTRY)) |
| PHEAP_FREE_ENTRY NTAPI | RtlpCoalesceFreeBlocks (PHEAP Heap, PHEAP_FREE_ENTRY FreeEntry, PSIZE_T FreeSize, BOOLEAN Remove) |
| PHEAP_ENTRY_EXTRA NTAPI | RtlpGetExtraStuffPointer (PHEAP_ENTRY HeapEntry) |
| BOOLEAN NTAPI | RtlpValidateHeap (PHEAP Heap, BOOLEAN ForceValidation) |
| BOOLEAN NTAPI | RtlpValidateHeapEntry (PHEAP Heap, PHEAP_ENTRY HeapEntry) |
| BOOLEAN NTAPI | RtlpValidateHeapHeaders (PHEAP Heap, BOOLEAN Recalculate) |
| HANDLE NTAPI | RtlDebugCreateHeap (ULONG Flags, PVOID Addr, SIZE_T TotalSize, SIZE_T CommitSize, PVOID Lock, PRTL_HEAP_PARAMETERS Parameters) |
| BOOLEAN NTAPI | RtlDebugDestroyHeap (HANDLE HeapPtr) |
| PVOID NTAPI | RtlDebugAllocateHeap (PVOID HeapPtr, ULONG Flags, SIZE_T Size) |
| PVOID NTAPI | RtlDebugReAllocateHeap (HANDLE HeapPtr, ULONG Flags, PVOID Ptr, SIZE_T Size) |
| BOOLEAN NTAPI | RtlDebugFreeHeap (HANDLE HeapPtr, ULONG Flags, PVOID Ptr) |
| BOOLEAN NTAPI | RtlDebugGetUserInfoHeap (PVOID HeapHandle, ULONG Flags, PVOID BaseAddress, PVOID *UserValue, PULONG UserFlags) |
| BOOLEAN NTAPI | RtlDebugSetUserValueHeap (PVOID HeapHandle, ULONG Flags, PVOID BaseAddress, PVOID UserValue) |
| BOOLEAN NTAPI | RtlDebugSetUserFlagsHeap (PVOID HeapHandle, ULONG Flags, PVOID BaseAddress, ULONG UserFlagsReset, ULONG UserFlagsSet) |
| SIZE_T NTAPI | RtlDebugSizeHeap (HANDLE HeapPtr, ULONG Flags, PVOID Ptr) |
| HANDLE NTAPI | RtlpPageHeapCreate (ULONG Flags, PVOID Addr, SIZE_T TotalSize, SIZE_T CommitSize, PVOID Lock, PRTL_HEAP_PARAMETERS Parameters) |
| PVOID NTAPI | RtlpPageHeapDestroy (HANDLE HeapPtr) |
| PVOID NTAPI | RtlpPageHeapAllocate (IN PVOID HeapPtr, IN ULONG Flags, IN SIZE_T Size) |
| BOOLEAN NTAPI | RtlpPageHeapFree (HANDLE HeapPtr, ULONG Flags, PVOID Ptr) |
| PVOID NTAPI | RtlpPageHeapReAllocate (HANDLE HeapPtr, ULONG Flags, PVOID Ptr, SIZE_T Size) |
| BOOLEAN NTAPI | RtlpPageHeapGetUserInfo (PVOID HeapHandle, ULONG Flags, PVOID BaseAddress, PVOID *UserValue, PULONG UserFlags) |
| BOOLEAN NTAPI | RtlpPageHeapSetUserValue (PVOID HeapHandle, ULONG Flags, PVOID BaseAddress, PVOID UserValue) |
| BOOLEAN NTAPI | RtlpPageHeapSetUserFlags (PVOID HeapHandle, ULONG Flags, PVOID BaseAddress, ULONG UserFlagsReset, ULONG UserFlagsSet) |
| BOOLEAN NTAPI | RtlpDebugPageHeapValidate (PVOID HeapPtr, ULONG Flags, PVOID Block) |
| SIZE_T NTAPI | RtlpPageHeapSize (HANDLE HeapPtr, ULONG Flags, PVOID Ptr) |
Variables |
| RTL_CRITICAL_SECTION | RtlpProcessHeapsListLock |
| BOOLEAN | RtlpPageHeapEnabled |