#include "ntrtlp.h"
#include "heap.h"
#include "heappriv.h"
Go to the source code of this file.
Defines | |
#define | HEAP_SLOW_FLAGS |
#define | RtlFindFirstSetRightMember(Set) |
Functions | |
PVOID | RtlDebugCreateHeap (IN ULONG Flags, IN PVOID HeapBase OPTIONAL, IN SIZE_T ReserveSize OPTIONAL, IN SIZE_T CommitSize OPTIONAL, IN PVOID Lock OPTIONAL, IN PRTL_HEAP_PARAMETERS Parameters OPTIONAL) |
BOOLEAN | RtlDebugDestroyHeap (IN PVOID HeapHandle) |
PVOID | RtlDebugAllocateHeap (IN PVOID HeapHandle, IN ULONG Flags, IN SIZE_T Size) |
BOOLEAN | RtlDebugFreeHeap (IN PVOID HeapHandle, IN ULONG Flags, IN PVOID BaseAddress) |
ULONG | RtlDebugSizeHeap (IN PVOID HeapHandle, IN ULONG Flags, IN PVOID BaseAddress) |
NTSTATUS | RtlDebugZeroHeap (IN PVOID HeapHandle, IN ULONG Flags) |
PHEAP_UNCOMMMTTED_RANGE | RtlpCreateUnCommittedRange (IN PHEAP_SEGMENT Segment) |
VOID | RtlpDestroyUnCommittedRange (IN PHEAP_SEGMENT Segment, IN PHEAP_UNCOMMMTTED_RANGE UnCommittedRange) |
VOID | RtlpInsertUnCommittedPages (IN PHEAP_SEGMENT Segment, IN ULONG_PTR Address, IN SIZE_T Size) |
NTSTATUS | RtlpDestroyHeapSegment (IN PHEAP_SEGMENT Segment) |
PHEAP_FREE_ENTRY | RtlpExtendHeap (IN PHEAP Heap, IN SIZE_T AllocationSize) |
PVOID | RtlCreateHeap (IN ULONG Flags, IN PVOID HeapBase OPTIONAL, IN SIZE_T ReserveSize OPTIONAL, IN SIZE_T CommitSize OPTIONAL, IN PVOID Lock OPTIONAL, IN PRTL_HEAP_PARAMETERS Parameters OPTIONAL) |
PVOID | RtlDestroyHeap (IN PVOID HeapHandle) |
PVOID | RtlAllocateHeap (IN PVOID HeapHandle, IN ULONG Flags, IN SIZE_T Size) |
PVOID | RtlAllocateHeapSlowly (IN PVOID HeapHandle, IN ULONG Flags, IN SIZE_T Size) |
BOOLEAN | RtlFreeHeap (IN PVOID HeapHandle, IN ULONG Flags, IN PVOID BaseAddress) |
BOOLEAN | RtlFreeHeapSlowly (IN PVOID HeapHandle, IN ULONG Flags, IN PVOID BaseAddress) |
SIZE_T | RtlSizeHeap (IN PVOID HeapHandle, IN ULONG Flags, IN PVOID BaseAddress) |
NTSTATUS | RtlZeroHeap (IN PVOID HeapHandle, IN ULONG Flags) |
PHEAP_FREE_ENTRY | RtlpFindAndCommitPages (IN PHEAP Heap, IN PHEAP_SEGMENT Segment, IN OUT PSIZE_T Size, IN PVOID AddressWanted OPTIONAL) |
BOOLEAN | RtlpInitializeHeapSegment (IN PHEAP Heap, IN PHEAP_SEGMENT Segment, IN UCHAR SegmentIndex, IN ULONG Flags, IN PVOID BaseAddress, IN PVOID UnCommittedAddress, IN PVOID CommitLimitAddress) |
PHEAP_FREE_ENTRY | RtlpCoalesceFreeBlocks (IN PHEAP Heap, IN PHEAP_FREE_ENTRY FreeBlock, IN OUT PSIZE_T FreeSize, IN BOOLEAN RemoveFromFreeList) |
VOID | RtlpDeCommitFreeBlock (IN PHEAP Heap, IN PHEAP_FREE_ENTRY FreeBlock, IN SIZE_T FreeSize) |
VOID | RtlpInsertFreeBlock (IN PHEAP Heap, IN PHEAP_FREE_ENTRY FreeBlock, IN SIZE_T FreeSize) |
PHEAP_ENTRY_EXTRA | RtlpGetExtraStuffPointer (PHEAP_ENTRY BusyBlock) |
SIZE_T | RtlpGetSizeOfBigBlock (IN PHEAP_ENTRY BusyBlock) |
BOOLEAN | RtlpCheckBusyBlockTail (IN PHEAP_ENTRY BusyBlock) |
Variables | |
ULONG | RtlpDisableHeapLookaside = 0 |
UCHAR | CheckHeapFillPattern [CHECK_HEAP_TAIL_SIZE] |
|
Value:
Definition at line 36 of file rtl/heap.c. Referenced by RtlAllocateHeap(), and RtlFreeHeap(). |
|
Value:
Definition at line 68 of file rtl/heap.c. Referenced by RtlAllocateHeap(), and RtlAllocateHeapSlowly(). |
|
Definition at line 1316 of file rtl/heap.c. References _HEAP_LOOKASIDE::Depth, FALSE, _HEAP_ENTRY::Flags, _HEAP_FREE_ENTRY::Flags, _HEAP::Flags, _HEAP::ForceFlags, _HEAP::FreeLists, HEAP_ENTRY_BUSY, HEAP_ENTRY_EXTRA_PRESENT, HEAP_ENTRY_LAST_ENTRY, HEAP_ENTRY_VIRTUAL_ALLOC, HEAP_FREE_ENTRY, HEAP_GRANULARITY, HEAP_GRANULARITY_SHIFT, HEAP_MAXIMUM_BLOCK_SIZE, HEAP_MAXIMUM_FREELISTS, HEAP_SLOW_FLAGS, HeapHandle, _HEAP_SEGMENT::LastEntryInSegment, _HEAP_LOOKASIDE::LastTotalAllocates, _HEAP::LockVariable, _HEAP::Lookaside, _HEAP::LookasideLockCount, NT_SUCCESS, NTSTATUS(), NULL, PHEAP_ENTRY, PHEAP_VIRTUAL_ALLOC_ENTRY, _HEAP_FREE_ENTRY::PreviousSize, RTL_PAGED_CODE, RtlAcquireLockRoutine, RtlAllocateHeapSlowly(), RtlFindFirstSetRightMember, RtlpAdjustHeapLookasideDepth(), RtlpAllocateFromHeapLookaside(), RtlpExtendHeap(), RtlpFastInsertFreeBlockDirect, RtlpFastRemoveDedicatedFreeBlock, RtlpFastRemoveFreeBlock, RtlpFastRemoveNonDedicatedFreeBlock, RtlpInsertFreeBlock(), RtlRaiseException(), RtlReleaseLockRoutine, _HEAP_ENTRY::SegmentIndex, _HEAP_FREE_ENTRY::SegmentIndex, _HEAP::Segments, SET_LAST_STATUS, _HEAP_ENTRY::Size, _HEAP_FREE_ENTRY::Size, Size, _HEAP_ENTRY::SmallTagIndex, Status, _HEAP_LOOKASIDE::TotalAllocates, _HEAP::TotalFreeSize, TRUE, _HEAP::u, _HEAP_ENTRY::UnusedBytes, USHORT, _HEAP::VirtualAllocdBlocks, and _HEAP::VirtualMemoryThreshold.
|
|
Definition at line 2075 of file rtl/heap.c. References _HEAP::AlignMask, _HEAP::AlignRound, ALLOC_HEAP_FILL, AllocationAction, CHECK_HEAP_TAIL_FILL, CHECK_HEAP_TAIL_SIZE, DEBUG_HEAP, EXCEPTION_CONTINUE_SEARCH, EXCEPTION_EXECUTE_HANDLER, FALSE, _HEAP_FREE_ENTRY::Flags, _HEAP_ENTRY::Flags, _HEAP::Flags, _HEAP::FreeLists, HEAP_ENTRY_BUSY, HEAP_ENTRY_EXTRA, HEAP_ENTRY_EXTRA_PRESENT, HEAP_ENTRY_FILL_PATTERN, HEAP_ENTRY_LAST_ENTRY, HEAP_ENTRY_VIRTUAL_ALLOC, HEAP_GRANULARITY_SHIFT, HEAP_MAXIMUM_BLOCK_SIZE, HEAP_MAXIMUM_FREELISTS, HEAP_NEED_EXTRA_FLAGS, HEAP_SMALL_TAG_MASK, HeapHandle, IS_HEAP_TAGGING_ENABLED, _HEAP_SEGMENT::LastEntryInSegment, _HEAP::LockVariable, NT_SUCCESS, NTSTATUS(), NULL, PHEAP_ENTRY_EXTRA, _HEAP_FREE_ENTRY::PreviousSize, _HEAP::PseudoTagEntries, RTL_PAGED_CODE, RtlAcquireLockRoutine, RtlDebugAllocateHeap(), RtlFindFirstSetRightMember, RtlpExtendHeap(), RtlpGetExtraStuffPointer(), RtlpInsertFreeBlock(), RtlpInsertFreeBlockDirect, RtlpRemoveFreeBlock, RtlpUpdateTagEntry(), RtlRaiseException(), RtlReleaseLockRoutine, _HEAP_FREE_ENTRY::SegmentIndex, _HEAP_ENTRY::SegmentIndex, _HEAP::Segments, SET_LAST_STATUS, Size, _HEAP_FREE_ENTRY::Size, _HEAP_ENTRY::Size, Status, _HEAP::TotalFreeSize, TRUE, _HEAP::u, _HEAP_ENTRY::UnusedBytes, USHORT, VirtualAllocationAction, _HEAP::VirtualAllocdBlocks, and _HEAP::VirtualMemoryThreshold. Referenced by RtlAllocateHeap(), and RtlDebugAllocateHeap().
|
|
Definition at line 191 of file rtl/heap.c. References CHECK_HEAP_TAIL_SIZE, DEBUG_HEAP, EXCEPTION_EXECUTE_HANDLER, HEAP, HEAP_BREAK_WHEN_OUT_OF_VM, HEAP_CAPTURE_STACK_BACKTRACES, HEAP_ENTRY, HEAP_ENTRY_BUSY, HEAP_GRANULARITY, HEAP_GRANULARITY_SHIFT, HEAP_LOCK, HEAP_LOCK_USER_ALLOCATED, HEAP_LOOKASIDE, HEAP_MAXIMUM_BLOCK_SIZE, HEAP_MAXIMUM_FREELISTS, HEAP_NO_ALIGNMENT, HEAP_NUMBER_OF_PSEUDO_TAG, HEAP_PROTECTION_ENABLED, HEAP_PSEUDO_TAG_ENTRY, HEAP_SEGMENT_USER_ALLOCATED, HEAP_SIGNATURE, HEAP_SKIP_VALIDATION_CHECKS, HEAP_VALIDATE_ALL_ENABLED, HEAP_VALIDATE_PARAMETERS_ENABLED, HeapDebugBreak, HeapDebugPrint, IS_HEAP_TAGGING_ENABLED, Lock, MmHeapDeCommitFreeBlockThreshold, MmHeapDeCommitTotalFreeThreshold, MmHeapSegmentCommit, MmHeapSegmentReserve, n, _HEAP_UNCOMMMTTED_RANGE::Next, NT_SUCCESS, NtGlobalFlag, NTSTATUS(), NULL, PAGE_SIZE, PHEAP_LOCK, PHEAP_LOOKASIDE, PHEAP_PSEUDO_TAG_ENTRY, ROUND_UP_TO_POWER2, RTL_PAGED_CODE, RtlAllocateHeap, RtlDebugCreateHeap(), RtlGetNtGlobalFlags(), RtlInitializeLockRoutine, RtlpAddHeapToProcessList(), RtlpDebugPageHeap, RtlpDebugPageHeapCreate(), RtlpDisableHeapLookaside, RtlpInitializeHeapLookaside(), RtlpInitializeHeapSegment(), Status, and USHORT. Referenced by CsrpConnectToServer(), LdrpForkProcess(), LdrpInitializeProcess(), main(), RtlDebugCreateHeap(), RtlpDebugPageHeapCreate(), SmbTraceStart(), and UserClientDllInitialize().
|
|
Definition at line 444 of file heapdbg.c. References _HEAP::AlignMask, _HEAP::AlignRound, _HEAP_STOP_ON_VALUES::AllocAddress, _HEAP_ENTRY_EXTRA::AllocatorBackTraceIndex, _HEAP_STOP_ON_VALUES::AllocTag, EXCEPTION_CONTINUE_SEARCH, EXCEPTION_EXECUTE_HANDLER, FALSE, _HEAP_ENTRY::Flags, _HEAP::Flags, _HEAP::ForceFlags, HEAP_CAPTURE_STACK_BACKTRACES, HEAP_ENTRY_EXTRA_PRESENT, HEAP_SKIP_VALIDATION_CHECKS, HEAP_VALIDATE_ALL_ENABLED, HeapDebugBreak, HeapDebugPrint, HeapHandle, _HEAP_STOP_ON_TAG::HeapIndex, IF_DEBUG_PAGE_HEAP_THEN_RETURN, IS_HEAP_TAGGING_ENABLED, _HEAP::LockVariable, _HEAP::MaximumAllocationSize, NULL, _HEAP::ProcessHeapsListIndex, RtlAcquireLockRoutine, RtlAllocateHeapSlowly(), RtlpCheckHeapSignature(), RtlpDebugPageHeapAllocate(), RtlpGetExtraStuffPointer(), RtlpGetTagName(), RtlpHeapStopOn, RtlpValidateHeap(), RtlpValidateHeapHeaders(), RtlReleaseLockRoutine, SET_LAST_STATUS, Size, _HEAP_ENTRY::SmallTagIndex, _HEAP_ENTRY_EXTRA::TagIndex, _HEAP_STOP_ON_TAG::TagIndex, TRUE, and USHORT. Referenced by RtlAllocateHeapSlowly().
|
|
Definition at line 204 of file heapdbg.c. References _HEAP::AllocatorBackTraceIndex, _HEAP::Flags, HEAP_CAPTURE_STACK_BACKTRACES, HEAP_SKIP_VALIDATION_CHECKS, HeapDebugBreak, HeapDebugPrint, Lock, NT_SUCCESS, NtQueryVirtualMemory(), NTSTATUS(), NULL, RtlCreateHeap(), RtlpValidateHeapHeaders(), Status, TRUE, and USHORT. Referenced by RtlCreateHeap().
|
|
Definition at line 388 of file heapdbg.c. References FALSE, _HEAP::HeaderValidateCopy, HeapDebugPrint, HeapHandle, n, NtFreeVirtualMemory(), NULL, RtlpCheckHeapSignature(), RtlpValidateHeap(), _HEAP::Signature, and TRUE. Referenced by RtlDestroyHeap().
|
|
Definition at line 797 of file heapdbg.c. References EXCEPTION_EXECUTE_HANDLER, FALSE, _HEAP_ENTRY::Flags, _HEAP::ForceFlags, _HEAP_STOP_ON_VALUES::FreeAddress, _HEAP_STOP_ON_VALUES::FreeTag, HEAP_ENTRY_EXTRA_PRESENT, HEAP_GRANULARITY_SHIFT, HEAP_SKIP_VALIDATION_CHECKS, _HEAP_STOP_ON_TAG::HeapAndTagIndex, HeapDebugBreak, HeapDebugPrint, HeapHandle, _HEAP_STOP_ON_TAG::HeapIndex, IF_DEBUG_PAGE_HEAP_THEN_RETURN, IS_HEAP_TAGGING_ENABLED, _HEAP::LockVariable, NULL, _HEAP::ProcessHeapsListIndex, RtlAcquireLockRoutine, RtlFreeHeapSlowly(), RtlpCheckHeapSignature(), RtlpDebugPageHeapFree(), RtlpGetExtraStuffPointer(), RtlpGetTagName(), RtlpHeapStopOn, RtlpValidateHeap(), RtlpValidateHeapEntry(), RtlpValidateHeapHeaders(), RtlReleaseLockRoutine, SET_LAST_STATUS, Size, _HEAP_ENTRY::Size, _HEAP_ENTRY::SmallTagIndex, _HEAP_ENTRY_EXTRA::TagIndex, _HEAP_STOP_ON_TAG::TagIndex, TRUE, and USHORT. Referenced by RtlFreeHeapSlowly().
|
|
Definition at line 1177 of file heapdbg.c. References EXCEPTION_EXECUTE_HANDLER, FALSE, _HEAP::ForceFlags, HEAP_SKIP_VALIDATION_CHECKS, HeapHandle, IF_DEBUG_PAGE_HEAP_THEN_RETURN, _HEAP::LockVariable, RtlAcquireLockRoutine, RtlpCheckHeapSignature(), RtlpDebugPageHeapSize(), RtlpValidateHeap(), RtlpValidateHeapEntry(), RtlReleaseLockRoutine, RtlSizeHeap(), SET_LAST_STATUS, and TRUE. Referenced by RtlSizeHeap().
|
|
Definition at line 1338 of file heapdbg.c. References EXCEPTION_EXECUTE_HANDLER, FALSE, _HEAP::ForceFlags, HEAP_SKIP_VALIDATION_CHECKS, HeapHandle, IF_DEBUG_PAGE_HEAP_THEN_RETURN, _HEAP::LockVariable, NTSTATUS(), RtlAcquireLockRoutine, RtlpCheckHeapSignature(), RtlpDebugPageHeapZero(), RtlpValidateHeap(), RtlReleaseLockRoutine, RtlZeroHeap(), Status, and TRUE. Referenced by RtlZeroHeap().
|
|
Definition at line 1133 of file rtl/heap.c. References DEBUG_HEAP, _HEAP::Flags, HEAP_LOCK_USER_ALLOCATED, HEAP_MAXIMUM_SEGMENTS, HEAP_VIRTUAL_ALLOC_ENTRY, HeapDebugPrint, HeapHandle, IF_DEBUG_PAGE_HEAP_THEN_RETURN, _HEAP::LockVariable, _HEAP_UCR_SEGMENT::Next, NULL, PHEAP_UCR_SEGMENT, RTL_PAGED_CODE, RtlDebugDestroyHeap(), RtlDeleteLockRoutine, RtlpDebugPageHeapDestroy(), RtlpDestroyHeapSegment(), RtlpDestroyTags(), RtlpRemoveHeapFromProcessList(), _HEAP::Segments, _HEAP::UCRSegments, _HEAP::VirtualAllocdBlocks, and VOID(). Referenced by RtlpDebugPageHeapDestroy(), SmbTraceDisconnect(), and UserClientDllInitialize().
|
|
Definition at line 2931 of file rtl/heap.c. References _HEAP::DeCommitFreeBlockThreshold, _HEAP::DeCommitTotalFreeThreshold, _HEAP_VIRTUAL_ALLOC_ENTRY::Entry, EXCEPTION_EXECUTE_HANDLER, FALSE, _HEAP_FREE_ENTRY::Flags, _HEAP_ENTRY::Flags, _HEAP::Flags, _HEAP::ForceFlags, HEAP_ENTRY_BUSY, HEAP_ENTRY_LAST_ENTRY, HEAP_ENTRY_VIRTUAL_ALLOC, HEAP_MAXIMUM_BLOCK_SIZE, HEAP_MAXIMUM_FREELISTS, HEAP_MAXIMUM_SEGMENTS, HEAP_SLOW_FLAGS, HEAPASSERT, HeapHandle, _HEAP::LockVariable, _HEAP::Lookaside, _HEAP::LookasideLockCount, NT_SUCCESS, NTSTATUS(), NULL, RTL_PAGED_CODE, RtlAcquireLockRoutine, RtlFreeHeapSlowly(), RtlpCoalesceFreeBlocks(), RtlpDeCommitFreeBlock(), RtlpFastInsertDedicatedFreeBlockDirect, RtlpFastInsertNonDedicatedFreeBlockDirect, RtlpFreeToHeapLookaside(), RtlpInsertFreeBlock(), RtlReleaseLockRoutine, _HEAP_ENTRY::SegmentIndex, SET_LAST_STATUS, _HEAP_ENTRY::Size, Status, _HEAP::TotalFreeSize, TRUE, and USHORT.
|
|
Definition at line 3273 of file rtl/heap.c. References _HEAP_VIRTUAL_ALLOC_ENTRY::CommitSize, DEBUG_HEAP, _HEAP::DeCommitFreeBlockThreshold, _HEAP::DeCommitTotalFreeThreshold, _HEAP_VIRTUAL_ALLOC_ENTRY::Entry, EXCEPTION_EXECUTE_HANDLER, _HEAP_VIRTUAL_ALLOC_ENTRY::ExtraStuff, FALSE, _HEAP_ENTRY::Flags, _HEAP::Flags, _HEAP_FREE_ENTRY::Flags, FreeAction, _HEAP_FREE_ENTRY_EXTRA::FreeBackTraceIndex, HEAP_CAPTURE_STACK_BACKTRACES, HEAP_ENTRY_BUSY, HEAP_ENTRY_EXTRA_PRESENT, HEAP_ENTRY_LAST_ENTRY, HEAP_ENTRY_VIRTUAL_ALLOC, HEAP_GRANULARITY_SHIFT, HEAP_MAXIMUM_BLOCK_SIZE, HEAP_MAXIMUM_SEGMENTS, HEAPASSERT, HeapHandle, IS_HEAP_TAGGING_ENABLED, _HEAP::LockVariable, NT_SUCCESS, NTSTATUS(), PHEAP_FREE_ENTRY_EXTRA, RTL_PAGED_CODE, RtlAcquireLockRoutine, RtlDebugFreeHeap(), RtlpCoalesceFreeBlocks(), RtlpDeCommitFreeBlock(), RtlpInsertFreeBlock(), RtlpInsertFreeBlockDirect, RtlpUpdateTagEntry(), RtlReleaseLockRoutine, _HEAP_ENTRY::SegmentIndex, SET_LAST_STATUS, _HEAP_ENTRY::Size, _HEAP_ENTRY::SmallTagIndex, Status, _HEAP_ENTRY_EXTRA::TagIndex, _HEAP_FREE_ENTRY_EXTRA::TagIndex, _HEAP::TotalFreeSize, TRUE, USHORT, and VirtualFreeAction. Referenced by RtlDebugFreeHeap(), and RtlFreeHeap().
|
|
Definition at line 6117 of file rtl/heap.c. References CHECK_HEAP_TAIL_SIZE, CheckHeapFillPattern, FALSE, HEAP_ENTRY_VIRTUAL_ALLOC, HEAP_GRANULARITY_SHIFT, HeapDebugBreak, HeapDebugPrint, RTL_PAGED_CODE, RtlpGetSizeOfBigBlock(), Size, and TRUE. Referenced by RtlpValidateHeap(), RtlpValidateHeapEntry(), and RtlpValidateHeapSegment().
|
|
Definition at line 5312 of file rtl/heap.c. References FALSE, _HEAP_FREE_ENTRY::Flags, HEAP_ENTRY_BUSY, HEAP_ENTRY_LAST_ENTRY, HEAP_MAXIMUM_BLOCK_SIZE, HEAPASSERT, _HEAP_SEGMENT::LastEntryInSegment, _HEAP_FREE_ENTRY::PreviousSize, RTL_PAGED_CODE, RtlpRemoveFreeBlock, _HEAP_FREE_ENTRY::SegmentIndex, _HEAP_FREE_ENTRY::Size, and USHORT. Referenced by RtlFreeHeap(), RtlFreeHeapSlowly(), RtlpCoalesceHeap(), RtlpExtendHeap(), and RtlpGrowBlockInPlace().
|
|
Definition at line 3962 of file rtl/heap.c. References _HEAP_UCR_SEGMENT::CommittedSize, _HEAP_UNCOMMMTTED_RANGE::Next, _HEAP_UCR_SEGMENT::Next, NT_SUCCESS, NTSTATUS(), NULL, PAGE_SIZE, _HEAP_UCR_SEGMENT::ReservedSize, RTL_PAGED_CODE, and Status. Referenced by RtlpDeCommitFreeBlock(), and RtlpInsertUnCommittedPages().
|
|
Definition at line 5527 of file rtl/heap.c. References _HEAP_SEGMENT::Entry, _HEAP_SEGMENT::FirstEntry, _HEAP_FREE_ENTRY::Flags, _HEAP_ENTRY::Flags, HEAP_ENTRY_LAST_ENTRY, HEAP_GRANULARITY_SHIFT, HeapDebugPrint, _HEAP_SEGMENT::LastEntryInSegment, NT_SUCCESS, NTSTATUS(), NULL, _HEAP_SEGMENT::NumberOfUnCommittedPages, PAGE_SIZE, _HEAP_FREE_ENTRY::PreviousSize, _HEAP_ENTRY::PreviousSize, ROUND_DOWN_TO_POWER2, ROUND_UP_TO_POWER2, RTL_PAGED_CODE, RtlpCreateUnCommittedRange(), RtlpDestroyUnCommittedRange(), RtlpInsertFreeBlock(), RtlpInsertFreeBlockDirect, RtlpInsertUnCommittedPages(), _HEAP_ENTRY::SegmentIndex, _HEAP_FREE_ENTRY::Size, Status, and USHORT. Referenced by RtlFreeHeap(), RtlFreeHeapSlowly(), and RtlpCoalesceHeap().
|
|
Definition at line 4959 of file rtl/heap.c. References HEAP_SEGMENT_USER_ALLOCATED, and RTL_PAGED_CODE. Referenced by RtlDestroyHeap().
|
|
Definition at line 4169 of file rtl/heap.c. References RTL_PAGED_CODE. Referenced by RtlpDeCommitFreeBlock(), RtlpFindAndCommitPages(), and RtlpInsertUnCommittedPages().
|
|
Definition at line 5024 of file rtl/heap.c. References FALSE, HEAP_GRANULARITY_SHIFT, HEAP_MAXIMUM_SEGMENTS, _HEAP_SEGMENT::LargestUnCommittedRange, NT_SUCCESS, NTSTATUS(), NULL, _HEAP_SEGMENT::NumberOfUnCommittedPages, PAGE_SIZE, RTL_PAGED_CODE, RtlpCoalesceFreeBlocks(), RtlpCoalesceHeap(), RtlpFindAndCommitPages(), RtlpInitializeHeapSegment(), RtlpInsertFreeBlock(), _HEAP_FREE_ENTRY::Size, and Status. Referenced by RtlAllocateHeap(), and RtlAllocateHeapSlowly().
|
|
Definition at line 4422 of file rtl/heap.c. References _HEAP_UNCOMMMTTED_RANGE::Address, _HEAP_ENTRY::Flags, HEAP_ENTRY_LAST_ENTRY, HEAP_GRANULARITY_SHIFT, HeapDebugBreak, HeapDebugPrint, _HEAP_UNCOMMMTTED_RANGE::Next, NT_SUCCESS, NTSTATUS(), NULL, PAGE_SIZE, _HEAP_ENTRY::PreviousSize, RTL_PAGED_CODE, RtlpDestroyUnCommittedRange(), _HEAP_ENTRY::SegmentIndex, _HEAP_UNCOMMMTTED_RANGE::Size, Size, _HEAP_ENTRY::Size, Status, and USHORT. Referenced by RtlpExtendHeap(), and RtlpGrowBlockInPlace().
|
|
Definition at line 6008 of file rtl/heap.c. References _HEAP_VIRTUAL_ALLOC_ENTRY::ExtraStuff, _HEAP_ENTRY::Flags, HEAP_ENTRY_VIRTUAL_ALLOC, and _HEAP_ENTRY::Size. Referenced by RtlAllocateHeapSlowly(), RtlDebugAllocateHeap(), RtlDebugFreeHeap(), RtlDebugReAllocateHeap(), RtlGetUserInfoHeap(), RtlpValidateHeapSegment(), RtlReAllocateHeap(), RtlSetUserValueHeap(), RtlUsageHeap(), and RtlWalkHeap().
|
|
Definition at line 6070 of file rtl/heap.c. References _HEAP_VIRTUAL_ALLOC_ENTRY::CommitSize, and RTL_PAGED_CODE. Referenced by RtlpCheckBusyBlockTail(), RtlReAllocateHeap(), RtlSizeHeap(), and RtlWalkHeap().
|
|
Definition at line 4732 of file rtl/heap.c. References FALSE, _HEAP_ENTRY::Flags, HEAP_ENTRY_BUSY, HEAP_ENTRY_LAST_ENTRY, HEAP_GRANULARITY, HEAP_GRANULARITY_SHIFT, HEAP_SEGMENT_SIGNATURE, NT_SUCCESS, NtGlobalFlag, NTSTATUS(), PAGE_SIZE, _HEAP_ENTRY::PreviousSize, ROUND_UP_TO_POWER2, RTL_PAGED_CODE, RtlGetNtGlobalFlags(), RtlpInsertFreeBlock(), RtlpInsertUnCommittedPages(), _HEAP_ENTRY::SegmentIndex, Size, Status, TRUE, and USHORT. Referenced by RtlCreateHeap(), RtlExtendHeap(), and RtlpExtendHeap().
|
|
Definition at line 5849 of file rtl/heap.c. References _HEAP_SEGMENT::Flags, HEAP_ENTRY_LAST_ENTRY, HEAP_MAXIMUM_BLOCK_SIZE, _HEAP_SEGMENT::LastValidEntry, RTL_PAGED_CODE, RtlpInsertFreeBlockDirect, Size, and USHORT. Referenced by RtlAllocateHeap(), RtlAllocateHeapSlowly(), RtlFreeHeap(), RtlFreeHeapSlowly(), RtlpCoalesceHeap(), RtlpDeCommitFreeBlock(), RtlpExtendHeap(), RtlpGrowBlockInPlace(), RtlpInitializeHeapSegment(), and RtlReAllocateHeap().
|
|
Definition at line 4227 of file rtl/heap.c. References _HEAP_UNCOMMMTTED_RANGE::Address, HeapDebugPrint, _HEAP_UNCOMMMTTED_RANGE::Next, NULL, RTL_PAGED_CODE, RtlpCreateUnCommittedRange(), RtlpDestroyUnCommittedRange(), _HEAP_UNCOMMMTTED_RANGE::Size, and Size. Referenced by RtlpDeCommitFreeBlock(), and RtlpInitializeHeapSegment().
|
|
Definition at line 3655 of file rtl/heap.c. References DEBUG_HEAP, _HEAP_ENTRY::Flags, _HEAP::ForceFlags, HEAP_ENTRY_BUSY, HEAP_ENTRY_VIRTUAL_ALLOC, HEAP_GRANULARITY_SHIFT, HeapHandle, RtlDebugSizeHeap(), RtlpGetSizeOfBigBlock(), SET_LAST_STATUS, _HEAP_ENTRY::Size, and _HEAP_ENTRY::UnusedBytes. Referenced by HMAllocObject(), HMFreeObject(), RtlDebugSizeHeap(), and RtlpDphNormalHeapSize().
|
|
Definition at line 3762 of file rtl/heap.c. References _HEAP_UNCOMMMTTED_RANGE::Address, DEBUG_HEAP, EXCEPTION_EXECUTE_HANDLER, FALSE, _HEAP_SEGMENT::FirstEntry, _HEAP::Flags, _HEAP_ENTRY::Flags, _HEAP::ForceFlags, FREE_HEAP_FILL, HEAP_ENTRY_BUSY, HEAP_ENTRY_FILL_PATTERN, HEAP_ENTRY_LAST_ENTRY, HEAP_GRANULARITY_SHIFT, HEAP_MAXIMUM_SEGMENTS, HeapHandle, _HEAP_SEGMENT::LastValidEntry, _HEAP::LockVariable, _HEAP_UNCOMMMTTED_RANGE::Next, NTSTATUS(), NULL, RTL_PAGED_CODE, RtlAcquireLockRoutine, RtlDebugZeroHeap(), RtlReleaseLockRoutine, _HEAP::Segments, _HEAP_UNCOMMMTTED_RANGE::Size, _HEAP_ENTRY::Size, Size, Status, TRUE, and _HEAP_SEGMENT::UnCommittedRanges. Referenced by EndShutdown(), and RtlDebugZeroHeap().
|
|
Initial value: Definition at line 43 of file rtl/heap.c. Referenced by RtlpCheckBusyBlockTail(). |
|
Definition at line 29 of file rtl/heap.c. Referenced by LdrpInitialize(), and RtlCreateHeap(). |