#include "heappage.h"Go to the source code of this file.
Classes | |
| struct | _HEAP_LOOKASIDE |
Defines | |
| #define | HEAPASSERT(exp) |
| #define | PREALLOCATE_EVENT_MASK 0x80000000 |
| #define | RtlInitializeLockRoutine(L) RtlInitializeCriticalSectionAndSpinCount((PRTL_CRITICAL_SECTION)(L),(PREALLOCATE_EVENT_MASK | 4000)) |
| #define | RtlAcquireLockRoutine(L) RtlEnterCriticalSection((PRTL_CRITICAL_SECTION)(L)) |
| #define | RtlReleaseLockRoutine(L) RtlLeaveCriticalSection((PRTL_CRITICAL_SECTION)(L)) |
| #define | RtlDeleteLockRoutine(L) RtlDeleteCriticalSection((PRTL_CRITICAL_SECTION)(L)) |
| #define | RtlOkayToLockRoutine(L) NtdllOkayToLockRoutine((PVOID)(L)) |
| #define | HEAP_DEBUG_FLAGS |
| #define | DEBUG_HEAP(F) ((F & HEAP_DEBUG_FLAGS) && !(F & HEAP_SKIP_VALIDATION_CHECKS)) |
| #define | SET_LAST_STATUS(S) {NtCurrentTeb()->LastErrorValue = RtlNtStatusToDosError( NtCurrentTeb()->LastStatusValue = (ULONG)(S) );} |
| #define | HeapDebugPrint(_x_) |
| #define | HeapDebugBreak(_x_) |
| #define | SET_FREELIST_BIT(H, FB) |
| #define | CLEAR_FREELIST_BIT(H, FB) |
| #define | RtlpInsertFreeBlockDirect(H, FB, SIZE) |
| #define | RtlpFastInsertFreeBlockDirect(H, FB, SIZE) |
| #define | RtlpFastInsertDedicatedFreeBlockDirect(H, FB, SIZE) |
| #define | RtlpFastInsertNonDedicatedFreeBlockDirect(H, FB, SIZE) |
| #define | RtlpRemoveFreeBlock(H, FB) |
| #define | RtlpFastRemoveFreeBlock(H, FB) |
| #define | RtlpFastRemoveDedicatedFreeBlock(H, FB) |
| #define | RtlpFastRemoveNonDedicatedFreeBlock(H, FB) |
| #define | IS_HEAP_TAGGING_ENABLED() (RtlGetNtGlobalFlags() & FLG_HEAP_ENABLE_TAGGING) |
Typedefs | |
| typedef enum _HEAP_TAG_ACTION | HEAP_TAG_ACTION |
| typedef _HEAP_LOOKASIDE | HEAP_LOOKASIDE |
| typedef _HEAP_LOOKASIDE * | PHEAP_LOOKASIDE |
Enumerations | |
| enum | _HEAP_TAG_ACTION { AllocationAction, VirtualAllocationAction, FreeAction, VirtualFreeAction, ReAllocationAction, VirtualReAllocationAction } |
Functions | |
| 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_FREE_ENTRY | RtlpFindAndCommitPages (IN PHEAP Heap, IN PHEAP_SEGMENT Segment, IN OUT PSIZE_T Size, IN PVOID AddressWanted OPTIONAL) |
| PVOID | RtlAllocateHeapSlowly (IN PVOID HeapHandle, IN ULONG Flags, IN SIZE_T Size) |
| BOOLEAN | RtlFreeHeapSlowly (IN PVOID HeapHandle, IN ULONG Flags, IN PVOID BaseAddress) |
| SIZE_T | RtlpGetSizeOfBigBlock (IN PHEAP_ENTRY BusyBlock) |
| PHEAP_ENTRY_EXTRA | RtlpGetExtraStuffPointer (PHEAP_ENTRY BusyBlock) |
| BOOLEAN | RtlpCheckBusyBlockTail (IN PHEAP_ENTRY BusyBlock) |
| VOID | RtlpAddHeapToProcessList (IN PHEAP Heap) |
| VOID | RtlpRemoveHeapFromProcessList (IN PHEAP Heap) |
| PHEAP_FREE_ENTRY | RtlpCoalesceHeap (IN PHEAP Heap) |
| BOOLEAN | RtlpCheckHeapSignature (IN PHEAP Heap, IN PCHAR Caller) |
| BOOLEAN | RtlpValidateHeapEntry (IN PHEAP Heap, IN PHEAP_ENTRY BusyBlock, IN PCHAR Reason) |
| BOOLEAN | RtlpValidateHeap (IN PHEAP Heap, IN BOOLEAN AlwaysValidate) |
| VOID | RtlpUpdateHeapListIndex (USHORT OldIndex, USHORT NewIndex) |
| BOOLEAN | RtlpValidateHeapHeaders (IN PHEAP Heap, IN BOOLEAN Recompute) |
| PWSTR | RtlpGetTagName (PHEAP Heap, USHORT TagIndex) |
| USHORT | RtlpUpdateTagEntry (PHEAP Heap, USHORT TagIndex, SIZE_T OldSize, SIZE_T NewSize, HEAP_TAG_ACTION Action) |
| VOID | RtlpResetTags (PHEAP Heap) |
| VOID | RtlpDestroyTags (PHEAP Heap) |
| NTKERNELAPI VOID | RtlpInitializeHeapLookaside (IN PHEAP_LOOKASIDE Lookaside, IN USHORT Depth) |
| NTKERNELAPI VOID | RtlpDeleteHeapLookaside (IN PHEAP_LOOKASIDE Lookaside) |
| VOID | RtlpAdjustHeapLookasideDepth (IN PHEAP_LOOKASIDE Lookaside) |
| NTKERNELAPI PVOID | RtlpAllocateFromHeapLookaside (IN PHEAP_LOOKASIDE Lookaside) |
| NTKERNELAPI BOOLEAN | RtlpFreeToHeapLookaside (IN PHEAP_LOOKASIDE Lookaside, IN PVOID Entry) |
Variables | |
| UCHAR | CheckHeapFillPattern [CHECK_HEAP_TAIL_SIZE] |
|
|
Value:
Definition at line 300 of file heappriv.h. |
|
|
Definition at line 103 of file heappriv.h. Referenced by RtlAllocateHeapSlowly(), RtlCompactHeap(), RtlCreateHeap(), RtlCreateTagHeap(), RtlDestroyHeap(), RtlFreeHeapSlowly(), RtlGetUserInfoHeap(), RtlpGrowBlockInPlace(), RtlQueryTagHeap(), RtlReAllocateHeap(), RtlSetUserFlagsHeap(), RtlSetUserValueHeap(), RtlSizeHeap(), RtlUsageHeap(), RtlWalkHeap(), and RtlZeroHeap(). |
|
|
Value:
Definition at line 98 of file heappriv.h. |
|
|
Definition at line 39 of file heappriv.h. Referenced by RtlFreeHeap(), RtlFreeHeapSlowly(), and RtlpCoalesceFreeBlocks(). |
|
|
Value: Definition at line 134 of file heappriv.h. Referenced by RtlCreateHeap(), RtlDebugAllocateHeap(), RtlDebugCreateHeap(), RtlDebugFreeHeap(), RtlDebugReAllocateHeap(), RtlInitializeHeapManager(), RtlpCheckBusyBlockTail(), RtlpCheckHeapSignature(), RtlpFindAndCommitPages(), RtlpValidateHeap(), RtlpValidateHeapEntry(), and RtlReAllocateHeap(). |
|
|
|
Definition at line 563 of file heappriv.h. Referenced by RtlAllocateHeapSlowly(), RtlCreateHeap(), RtlCreateTagHeap(), RtlDebugAllocateHeap(), RtlDebugFreeHeap(), RtlDebugReAllocateHeap(), RtlFreeHeapSlowly(), RtlpGrowBlockInPlace(), RtlQueryTagHeap(), RtlReAllocateHeap(), RtlUsageHeap(), and RtlWalkHeap(). |
|
|
Definition at line 73 of file heappriv.h. |
|
|
|
Definition at line 80 of file heappriv.h. Referenced by RtlDestroyHeap(). |
|
|
Definition at line 77 of file heappriv.h. Referenced by RtlCreateHeap(), RtlInitializeHeapManager(), and RtlpSerializeHeap(). |
|
|
Definition at line 81 of file heappriv.h. |
|
|
Value:
Definition at line 397 of file heappriv.h. Referenced by RtlFreeHeap(). |
|
|
Value:
Definition at line 380 of file heappriv.h. Referenced by RtlAllocateHeap(). |
|
|
Definition at line 425 of file heappriv.h. Referenced by RtlFreeHeap(). |
|
|
Value:
Definition at line 525 of file heappriv.h. Referenced by RtlAllocateHeap(). |
|
|
Value:
Definition at line 502 of file heappriv.h. Referenced by RtlAllocateHeap(). |
|
|
Value:
Definition at line 547 of file heappriv.h. Referenced by RtlAllocateHeap(). |
|
|
Definition at line 322 of file heappriv.h. Referenced by RtlAllocateHeapSlowly(), RtlFreeHeapSlowly(), RtlpDeCommitFreeBlock(), RtlpGrowBlockInPlace(), RtlpInsertFreeBlock(), and RtlReAllocateHeap(). |
|
|
Definition at line 465 of file heappriv.h. Referenced by RtlAllocateHeapSlowly(), RtlpCoalesceFreeBlocks(), RtlpGrowBlockInPlace(), and RtlReAllocateHeap(). |
|
|
|
Value:
Definition at line 280 of file heappriv.h. |
|
|
|
Referenced by RtlCreateHeap(). |
|
|
Referenced by RtlpUpdateTagEntry(). |
|
|
Referenced by RtlCreateHeap(). |
|
|
Definition at line 571 of file heappriv.h.
|
|
||||||||||||||||
|
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::Flags, _HEAP_ENTRY::Flags, _HEAP_FREE_ENTRY::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_ENTRY::SegmentIndex, _HEAP_FREE_ENTRY::SegmentIndex, _HEAP::Segments, SET_LAST_STATUS, _HEAP_ENTRY::Size, _HEAP_FREE_ENTRY::Size, 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 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_FREE_ENTRY::Flags, _HEAP::Flags, _HEAP_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_FREE_ENTRY_EXTRA::TagIndex, _HEAP_ENTRY_EXTRA::TagIndex, _HEAP::TotalFreeSize, TRUE, USHORT, and VirtualFreeAction. Referenced by RtlDebugFreeHeap(), and RtlFreeHeap().
|
|
|
Definition at line 4457 of file heapdll.c. References _HEAP_LOCK::Lock, NULL, RtlAcquireLockRoutine, RtlAllocateHeap, RtlFreeHeap, RtlpProcessHeapsListBuffer, RtlpProcessHeapsListLock, RtlReleaseLockRoutine, and USHORT. Referenced by RtlCreateHeap().
|
|
|
Definition at line 130 of file rtl/lookasid.c. References MINIMUM_ALLOCATION_THRESHOLD, MINIMUM_LOOKASIDE_DEPTH, and USHORT. Referenced by RtlAllocateHeap().
|
|
|
Definition at line 222 of file rtl/lookasid.c. References EXCEPTION_EXECUTE_HANDLER, NULL, and RtlpInterlockedPopEntrySList(). Referenced by RtlAllocateHeap(), RtlValidateHeap(), and RtlWalkHeap().
|
|
|
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 4250 of file heapdll.c. References DbgPrint, FALSE, HEAP_SIGNATURE, HeapDebugBreak, HeapDebugPrint, NULL, and TRUE. Referenced by RtlDebugAllocateHeap(), RtlDebugCompactHeap(), RtlDebugCreateTagHeap(), RtlDebugDestroyHeap(), RtlDebugFreeHeap(), RtlDebugGetUserInfoHeap(), RtlDebugQueryTagHeap(), RtlDebugReAllocateHeap(), RtlDebugSetUserFlagsHeap(), RtlDebugSetUserValueHeap(), RtlDebugSizeHeap(), RtlDebugUsageHeap(), RtlDebugWalkHeap(), RtlDebugZeroHeap(), RtlLockHeap(), RtlpSerializeHeap(), RtlUnlockHeap(), and RtlValidateHeap().
|
|
||||||||||||||||||||
|
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 4312 of file heapdll.c. References _HEAP_FREE_ENTRY::Flags, HEAP_ENTRY_LAST_ENTRY, HEAP_GRANULARITY_SHIFT, HEAP_MAXIMUM_FREELISTS, n, NULL, PAGE_SIZE, _HEAP_FREE_ENTRY::PreviousSize, RTL_PAGED_CODE, RtlpCoalesceFreeBlocks(), RtlpDeCommitFreeBlock(), RtlpInsertFreeBlock(), _HEAP_FREE_ENTRY::Size, and TRUE. Referenced by RtlCompactHeap(), and RtlpExtendHeap().
|
|
||||||||||||||||
|
Definition at line 5527 of file rtl/heap.c. References _HEAP_SEGMENT::Entry, _HEAP_SEGMENT::FirstEntry, _HEAP_ENTRY::Flags, _HEAP_FREE_ENTRY::Flags, HEAP_ENTRY_LAST_ENTRY, HEAP_GRANULARITY_SHIFT, HeapDebugPrint, _HEAP_SEGMENT::LastEntryInSegment, NT_SUCCESS, NTSTATUS(), NULL, _HEAP_SEGMENT::NumberOfUnCommittedPages, PAGE_SIZE, _HEAP_ENTRY::PreviousSize, _HEAP_FREE_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 101 of file rtl/lookasid.c.
|
|
|
Definition at line 5893 of file heapdll.c. References NT_SUCCESS, NtFreeVirtualMemory(), NTSTATUS(), NULL, Status, and _HEAP::TagEntries. Referenced by RtlDestroyHeap().
|
|
||||||||||||||||||||
|
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_ENTRY::Size, Size, _HEAP_UNCOMMMTTED_RANGE::Size, Status, and USHORT. Referenced by RtlpExtendHeap(), and RtlpGrowBlockInPlace().
|
|
||||||||||||
|
Definition at line 288 of file rtl/lookasid.c. References EXCEPTION_EXECUTE_HANDLER, FALSE, RtlpInterlockedPushEntrySList(), RtlpQueryDepthSList, and TRUE. Referenced by RtlFreeHeap().
|
|
|
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 5425 of file heapdll.c. References HEAP_GRANULARITY_SHIFT, HEAP_MAXIMUM_FREELISTS, HEAP_NUMBER_OF_PSEUDO_TAG, L, _HEAP::NextAvailableTagIndex, NULL, _HEAP::PseudoTagEntries, RtlpGlobalTagHeap, RtlpPseudoTagNameBuffer, _HEAP::TagEntries, and _HEAP_TAG_ENTRY::TagName. Referenced by RtlDebugAllocateHeap(), RtlDebugFreeHeap(), and RtlDebugReAllocateHeap().
|
|
||||||||||||
|
Definition at line 45 of file rtl/lookasid.c. References MINIMUM_LOOKASIDE_DEPTH, and RtlpInitializeSListHead. Referenced by RtlCreateHeap().
|
|
||||||||||||||||||||||||||||||||
|
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 4571 of file heapdll.c. References _HEAP_LOCK::Lock, n, NULL, RtlAcquireLockRoutine, RtlpProcessHeapsListLock, RtlpUpdateHeapListIndex(), RtlReleaseLockRoutine, and USHORT. Referenced by RtlDestroyHeap().
|
|
|
Definition at line 5802 of file heapdll.c. References _HEAP_PSEUDO_TAG_ENTRY::Allocs, _HEAP_TAG_ENTRY::Allocs, _HEAP_PSEUDO_TAG_ENTRY::Frees, _HEAP_TAG_ENTRY::Frees, HEAP_NUMBER_OF_PSEUDO_TAG, _HEAP::NextAvailableTagIndex, NULL, _HEAP::PseudoTagEntries, _HEAP_PSEUDO_TAG_ENTRY::Size, _HEAP_TAG_ENTRY::Size, and _HEAP::TagEntries.
|
|
||||||||||||
|
Definition at line 76 of file heapdbg.c. References _HEAP_STOP_ON_VALUES::AllocTag, _HEAP_STOP_ON_VALUES::FreeTag, _HEAP_STOP_ON_TAG::HeapIndex, _HEAP_STOP_ON_VALUES::ReAllocTag, and RtlpHeapStopOn. Referenced by RtlpRemoveHeapFromProcessList().
|
|
||||||||||||||||||||||||
|
Definition at line 5554 of file heapdll.c. References Action, _HEAP_TAG_ENTRY::Allocs, FreeAction, _HEAP_TAG_ENTRY::Frees, HEAP_MAXIMUM_FREELISTS, HEAP_NUMBER_OF_PSEUDO_TAG, HEAP_TAG_ACTION, _HEAP::NextAvailableTagIndex, NULL, _HEAP::PseudoTagEntries, ReAllocationAction, RtlpGlobalTagHeap, _HEAP_TAG_ENTRY::Size, _HEAP::TagEntries, USHORT, VirtualAllocationAction, and VirtualReAllocationAction. Referenced by RtlAllocateHeapSlowly(), RtlFreeHeapSlowly(), RtlpGrowBlockInPlace(), and RtlReAllocateHeap().
|
|
||||||||||||
|
Definition at line 2025 of file heapdbg.c. References _HEAP_VIRTUAL_ALLOC_ENTRY::BusyBlock, _HEAP_VIRTUAL_ALLOC_ENTRY::CommitSize, exit, _HEAP_VIRTUAL_ALLOC_ENTRY::ExtraStuff, FALSE, _HEAP_ENTRY::Flags, HEAP_ENTRY_BUSY, HEAP_ENTRY_FILL_PATTERN, HEAP_GRANULARITY_SHIFT, HEAP_MAXIMUM_FREELISTS, HEAP_MAXIMUM_SEGMENTS, HEAP_NUMBER_OF_PSEUDO_TAG, HEAP_VALIDATE_ALL_ENABLED, HeapDebugBreak, HeapDebugPrint, NT_SUCCESS, NtAllocateVirtualMemory(), NtFreeVirtualMemory(), NTSTATUS(), NULL, RTL_PAGED_CODE, RtlpCheckBusyBlockTail(), RtlpValidateHeapHeaders(), RtlpValidateHeapSegment(), RtlpValidateHeapTagsEnable, _HEAP_TAG_ENTRY::Size, _HEAP_PSEUDO_TAG_ENTRY::Size, Size, Status, _HEAP_ENTRY_EXTRA::TagIndex, _HEAP_TAG_ENTRY::TagName, TRUE, and USHORT. Referenced by RtlDebugAllocateHeap(), RtlDebugCompactHeap(), RtlDebugCreateTagHeap(), RtlDebugDestroyHeap(), RtlDebugFreeHeap(), RtlDebugGetUserInfoHeap(), RtlDebugQueryTagHeap(), RtlDebugReAllocateHeap(), RtlDebugSetUserFlagsHeap(), RtlDebugSetUserValueHeap(), RtlDebugSizeHeap(), RtlDebugUsageHeap(), RtlDebugWalkHeap(), RtlDebugZeroHeap(), and RtlValidateHeap().
|
|
||||||||||||||||
|
Definition at line 1696 of file heapdbg.c. References FALSE, _HEAP_SEGMENT::FirstEntry, HEAP_ENTRY_BUSY, HEAP_ENTRY_FILL_PATTERN, HEAP_ENTRY_VIRTUAL_ALLOC, HEAP_GRANULARITY, HEAP_MAXIMUM_SEGMENTS, HeapDebugBreak, HeapDebugPrint, _HEAP_SEGMENT::LastValidEntry, NULL, PAGE_SIZE, RtlpCheckBusyBlockTail(), and TRUE. Referenced by RtlDebugFreeHeap(), RtlDebugGetUserInfoHeap(), RtlDebugReAllocateHeap(), RtlDebugSetUserFlagsHeap(), RtlDebugSetUserValueHeap(), RtlDebugSizeHeap(), and RtlValidateHeap().
|
|
||||||||||||
|
Definition at line 112 of file heapdbg.c. References DbgPrint, Description, FALSE, HeapDebugPrint, n, NT_SUCCESS, NtAllocateVirtualMemory(), NTSTATUS(), NULL, RtlpHeapHeaderFieldOffsets, RtlpValidateHeapHdrsEnable, Status, and TRUE. Referenced by RtlDebugAllocateHeap(), RtlDebugCompactHeap(), RtlDebugCreateHeap(), RtlDebugCreateTagHeap(), RtlDebugFreeHeap(), RtlDebugReAllocateHeap(), RtlpGrowBlockInPlace(), RtlpSerializeHeap(), and RtlpValidateHeap().
|
|
|
Definition at line 46 of file heappriv.h. |
1.3.7