#include "ntrtlp.h"
#include "heap.h"
#include "heappriv.h"
Go to the source code of this file.
Classes | |
struct | _RTL_HEAP_USAGE_INTERNAL |
Defines | |
#define | RTLP_STATIC_HEAP_LIST_SIZE 16 |
Typedefs | |
typedef _RTL_HEAP_USAGE_INTERNAL | RTL_HEAP_USAGE_INTERNAL |
typedef _RTL_HEAP_USAGE_INTERNAL * | PRTL_HEAP_USAGE_INTERNAL |
Functions | |
BOOLEAN | RtlpGrowBlockInPlace (IN PHEAP Heap, IN ULONG Flags, IN PHEAP_ENTRY BusyBlock, IN SIZE_T Size, IN SIZE_T AllocationIndex) |
PVOID | RtlDebugReAllocateHeap (IN PVOID HeapHandle, IN ULONG Flags, IN PVOID BaseAddress, IN SIZE_T Size) |
BOOLEAN | RtlDebugGetUserInfoHeap (IN PVOID HeapHandle, IN ULONG Flags, IN PVOID BaseAddress, OUT PVOID *UserValue OPTIONAL, OUT PULONG UserFlags OPTIONAL) |
BOOLEAN | RtlDebugSetUserValueHeap (IN PVOID HeapHandle, IN ULONG Flags, IN PVOID BaseAddress, IN PVOID UserValue) |
BOOLEAN | RtlDebugSetUserFlagsHeap (IN PVOID HeapHandle, IN ULONG Flags, IN PVOID BaseAddress, IN ULONG UserFlagsReset, IN ULONG UserFlagsSet) |
SIZE_T | RtlDebugCompactHeap (IN PVOID HeapHandle, IN ULONG Flags) |
NTSTATUS | RtlDebugCreateTagHeap (IN PVOID HeapHandle, IN ULONG Flags, IN PWSTR TagPrefix OPTIONAL, IN PWSTR TagNames) |
PWSTR | RtlDebugQueryTagHeap (IN PVOID HeapHandle, IN ULONG Flags, IN USHORT TagIndex, IN BOOLEAN ResetCounters, OUT PRTL_HEAP_TAG_INFO TagInfo OPTIONAL) |
NTSTATUS | RtlDebugUsageHeap (IN PVOID HeapHandle, IN ULONG Flags, IN OUT PRTL_HEAP_USAGE Usage) |
BOOLEAN | RtlDebugWalkHeap (IN PVOID HeapHandle, IN OUT PRTL_HEAP_WALK_ENTRY Entry) |
PHEAP_TAG_ENTRY | RtlpAllocateTags (PHEAP Heap, ULONG NumberOfTags) |
PRTL_HEAP_USAGE_ENTRY | RtlpFreeHeapUsageEntry (PRTL_HEAP_USAGE_INTERNAL Buffer, PRTL_HEAP_USAGE_ENTRY p) |
NTSTATUS | RtlpAllocateHeapUsageEntry (PRTL_HEAP_USAGE_INTERNAL Buffer, PRTL_HEAP_USAGE_ENTRY *pp) |
NTSTATUS | RtlInitializeHeapManager (VOID) |
VOID | RtlProtectHeap (IN PVOID HeapHandle, IN BOOLEAN MakeReadOnly) |
BOOLEAN | RtlLockHeap (IN PVOID HeapHandle) |
BOOLEAN | RtlUnlockHeap (IN PVOID HeapHandle) |
PVOID | RtlReAllocateHeap (IN PVOID HeapHandle, IN ULONG Flags, IN PVOID BaseAddress, IN SIZE_T Size) |
BOOLEAN | RtlGetUserInfoHeap (IN PVOID HeapHandle, IN ULONG Flags, IN PVOID BaseAddress, OUT PVOID *UserValue OPTIONAL, OUT PULONG UserFlags OPTIONAL) |
BOOLEAN | RtlSetUserValueHeap (IN PVOID HeapHandle, IN ULONG Flags, IN PVOID BaseAddress, IN PVOID UserValue) |
BOOLEAN | RtlSetUserFlagsHeap (IN PVOID HeapHandle, IN ULONG Flags, IN PVOID BaseAddress, IN ULONG UserFlagsReset, IN ULONG UserFlagsSet) |
ULONG | RtlCreateTagHeap (IN PVOID HeapHandle, IN ULONG Flags, IN PWSTR TagPrefix OPTIONAL, IN PWSTR TagNames) |
PWSTR | RtlQueryTagHeap (IN PVOID HeapHandle, IN ULONG Flags, IN USHORT TagIndex, IN BOOLEAN ResetCounters, OUT PRTL_HEAP_TAG_INFO TagInfo OPTIONAL) |
NTSTATUS | RtlExtendHeap (IN PVOID HeapHandle, IN ULONG Flags, IN PVOID Base, IN SIZE_T Size) |
SIZE_T NTAPI | RtlCompactHeap (IN PVOID HeapHandle, IN ULONG Flags) |
BOOLEAN | RtlValidateHeap (PVOID HeapHandle, IN ULONG Flags, IN PVOID BaseAddress) |
BOOLEAN | RtlValidateProcessHeaps (VOID) |
ULONG | RtlGetProcessHeaps (ULONG NumberOfHeapsToReturn, PVOID *ProcessHeaps) |
NTSTATUS | RtlEnumProcessHeaps (PRTL_ENUM_HEAPS_ROUTINE EnumRoutine, PVOID Parameter) |
NTSTATUS | RtlUsageHeap (IN PVOID HeapHandle, IN ULONG Flags, IN OUT PRTL_HEAP_USAGE Usage) |
NTSTATUS | RtlWalkHeap (IN PVOID HeapHandle, IN OUT PRTL_HEAP_WALK_ENTRY Entry) |
BOOLEAN | RtlpCheckHeapSignature (IN PHEAP Heap, IN PCHAR Caller) |
PHEAP_FREE_ENTRY | RtlpCoalesceHeap (IN PHEAP Heap) |
VOID | RtlpAddHeapToProcessList (IN PHEAP Heap) |
VOID | RtlpRemoveHeapFromProcessList (IN PHEAP Heap) |
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) |
BOOLEAN | RtlpHeapIsLocked (IN PVOID HeapHandle) |
Variables | |
HEAP_LOCK | RtlpProcessHeapsListLock |
PHEAP | RtlpProcessHeapsListBuffer [RTLP_STATIC_HEAP_LIST_SIZE] |
PHEAP | RtlpGlobalTagHeap = NULL |
WCHAR | RtlpPseudoTagNameBuffer [24] |
|
Definition at line 59 of file heapdll.c. Referenced by RtlInitializeHeapManager(). |
|
Referenced by RtlUsageHeap(). |
|
|
|
Definition at line 2401 of file heapdll.c. References DEBUG_HEAP, EXCEPTION_EXECUTE_HANDLER, FALSE, _HEAP::ForceFlags, HEAP_GRANULARITY_SHIFT, HEAP_MAXIMUM_SEGMENTS, HeapHandle, _HEAP_SEGMENT::LargestUnCommittedRange, _HEAP::LockVariable, NULL, RtlAcquireLockRoutine, RtlDebugCompactHeap(), RtlpCoalesceHeap(), RtlReleaseLockRoutine, _HEAP::Segments, SET_LAST_STATUS, _HEAP_FREE_ENTRY::Size, and TRUE. Referenced by RtlDebugCompactHeap().
|
|
Definition at line 1603 of file heapdll.c. References DEBUG_HEAP, FALSE, _HEAP::ForceFlags, HeapHandle, IF_DEBUG_PAGE_HEAP_THEN_RETURN, IS_HEAP_TAGGING_ENABLED, L, _HEAP::LockVariable, NULL, RtlAcquireLockRoutine, RtlAllocateHeap, RtlDebugCreateTagHeap(), RtlpAllocateTags(), RtlpGlobalTagHeap, RtlReleaseLockRoutine, _HEAP_TAG_ENTRY::TagIndex, _HEAP_TAG_ENTRY::TagName, and TRUE. Referenced by CsrClientConnectToServer(), CsrpConnectToServer(), LdrpDefineDllTag(), LdrpInitializeProcess(), main(), and RtlDebugCreateTagHeap().
|
|
Definition at line 1260 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, RtlCompactHeap(), RtlpCheckHeapSignature(), RtlpDebugPageHeapCompact(), RtlpValidateHeap(), RtlpValidateHeapHeaders(), RtlReleaseLockRoutine, SET_LAST_STATUS, and TRUE. Referenced by RtlCompactHeap().
|
|
Definition at line 1421 of file heapdbg.c. References EXCEPTION_EXECUTE_HANDLER, FALSE, _HEAP::ForceFlags, HEAP_SKIP_VALIDATION_CHECKS, HeapHandle, _HEAP::LockVariable, RtlAcquireLockRoutine, RtlCreateTagHeap(), RtlpCheckHeapSignature(), RtlpValidateHeap(), RtlpValidateHeapHeaders(), RtlReleaseLockRoutine, SET_LAST_STATUS, and TRUE. Referenced by RtlCreateTagHeap().
|
|
Definition at line 919 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, RtlGetUserInfoHeap(), RtlpCheckHeapSignature(), RtlpDebugPageHeapGetUserInfo(), RtlpValidateHeap(), RtlpValidateHeapEntry(), RtlReleaseLockRoutine, SET_LAST_STATUS, and TRUE. Referenced by RtlGetUserInfoHeap().
|
|
Definition at line 1498 of file heapdbg.c. References EXCEPTION_EXECUTE_HANDLER, FALSE, _HEAP::ForceFlags, HEAP_SKIP_VALIDATION_CHECKS, HeapHandle, _HEAP::LockVariable, NULL, RtlAcquireLockRoutine, RtlpCheckHeapSignature(), RtlpValidateHeap(), RtlQueryTagHeap(), RtlReleaseLockRoutine, SET_LAST_STATUS, and TRUE. Referenced by RtlQueryTagHeap().
|
|
Definition at line 603 of file heapdbg.c. References _HEAP::AlignMask, _HEAP::AlignRound, _HEAP_ENTRY_EXTRA::AllocatorBackTraceIndex, EXCEPTION_CONTINUE_SEARCH, EXCEPTION_EXECUTE_HANDLER, FALSE, _HEAP::Flags, _HEAP_ENTRY::Flags, _HEAP::ForceFlags, HEAP_CAPTURE_STACK_BACKTRACES, HEAP_ENTRY_EXTRA_PRESENT, 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, _HEAP::MaximumAllocationSize, NULL, _HEAP::ProcessHeapsListIndex, _HEAP_STOP_ON_VALUES::ReAllocAddress, _HEAP_STOP_ON_VALUES::ReAllocTag, RtlAcquireLockRoutine, RtlpCheckHeapSignature(), RtlpDebugPageHeapReAllocate(), RtlpGetExtraStuffPointer(), RtlpGetTagName(), RtlpHeapStopOn, RtlpValidateHeap(), RtlpValidateHeapEntry(), RtlpValidateHeapHeaders(), RtlReAllocateHeap(), RtlReleaseLockRoutine, SET_LAST_STATUS, Size, _HEAP_ENTRY::SmallTagIndex, _HEAP_STOP_ON_TAG::TagIndex, _HEAP_ENTRY_EXTRA::TagIndex, TRUE, and USHORT. Referenced by RtlReAllocateHeap().
|
|
Definition at line 1086 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(), RtlpDebugPageHeapSetUserFlags(), RtlpValidateHeap(), RtlpValidateHeapEntry(), RtlReleaseLockRoutine, RtlSetUserFlagsHeap(), SET_LAST_STATUS, and TRUE. Referenced by RtlSetUserFlagsHeap().
|
|
Definition at line 1002 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(), RtlpDebugPageHeapSetUserValue(), RtlpValidateHeap(), RtlpValidateHeapEntry(), RtlReleaseLockRoutine, RtlSetUserValueHeap(), SET_LAST_STATUS, and TRUE. Referenced by RtlSetUserValueHeap().
|
|
Definition at line 1572 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(), RtlpDebugPageHeapUsage(), RtlpValidateHeap(), RtlReleaseLockRoutine, RtlUsageHeap(), Status, TRUE, and Usage(). Referenced by RtlUsageHeap().
|
|
Definition at line 1654 of file heapdbg.c. References EXCEPTION_EXECUTE_HANDLER, FALSE, HeapHandle, RtlpCheckHeapSignature(), RtlpValidateHeap(), and SET_LAST_STATUS. Referenced by RtlWalkHeap().
|
|
Definition at line 2896 of file heapdll.c. References _HEAP_LOCK::Lock, NT_SUCCESS, NTSTATUS(), RtlAcquireLockRoutine, RtlpProcessHeapsListLock, RtlReleaseLockRoutine, and Status. Referenced by RtlQueryProcessHeapInformation().
|
|
Definition at line 2132 of file heapdll.c. References FALSE, HEAP_MAXIMUM_SEGMENTS, HEAP_SEGMENT_USER_ALLOCATED, HeapHandle, IF_DEBUG_PAGE_HEAP_THEN_RETURN, _HEAP_SEGMENT::LastValidEntry, _HEAP::LockVariable, NT_SUCCESS, NtQueryVirtualMemory(), NTSTATUS(), NULL, PAGE_SIZE, RtlAcquireLockRoutine, RtlpDebugPageHeapExtend(), RtlpInitializeHeapSegment(), RtlReleaseLockRoutine, _HEAP::Segments, Size, Status, and TRUE.
|
|
Definition at line 2803 of file heapdll.c. References _HEAP_LOCK::Lock, RtlAcquireLockRoutine, RtlpDebugPageHeap, RtlpDebugPageHeapGetProcessHeaps(), RtlpProcessHeapsListLock, and RtlReleaseLockRoutine. Referenced by RtlValidateProcessHeaps().
|
|
Definition at line 1192 of file heapdll.c. References DEBUG_HEAP, EXCEPTION_EXECUTE_HANDLER, FALSE, _HEAP_ENTRY::Flags, _HEAP::ForceFlags, HEAP_ENTRY_BUSY, HEAP_ENTRY_EXTRA_PRESENT, HEAP_ENTRY_SETTABLE_FLAGS, HeapHandle, _HEAP::LockVariable, RtlAcquireLockRoutine, RtlDebugGetUserInfoHeap(), RtlpGetExtraStuffPointer(), RtlReleaseLockRoutine, SET_LAST_STATUS, _HEAP_ENTRY_EXTRA::Settable, and TRUE. Referenced by RtlDebugGetUserInfoHeap(), and RtlpDphNormalHeapGetUserInfo().
|
|
Definition at line 179 of file heapdll.c. References CHECK_HEAP_TAIL_SIZE, HeapDebugBreak, HeapDebugPrint, _HEAP_LOCK::Lock, NULL, RtlInitializeLockRoutine, RTLP_STATIC_HEAP_LIST_SIZE, RtlpProcessHeapsListBuffer, RtlpProcessHeapsListLock, and VOID(). Referenced by LdrpForkProcess(), LdrpInitializeProcess(), and main().
|
|
Definition at line 390 of file heapdll.c. References FALSE, _HEAP::Flags, HeapHandle, IF_DEBUG_PAGE_HEAP_THEN_RETURN, _HEAP::LockVariable, _HEAP::LookasideLockCount, RTL_PAGED_CODE, RtlAcquireLockRoutine, RtlpCheckHeapSignature(), RtlpDebugPageHeapLock(), and TRUE.
|
|
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 5954 of file heapdll.c. References Buffer, NT_SUCCESS, NtAllocateVirtualMemory(), NTSTATUS(), NULL, PAGE_SIZE, and Status. Referenced by RtlUsageHeap().
|
|
Definition at line 5225 of file heapdll.c. References _HEAP_TAG_ENTRY::CreatorBackTraceIndex, _HEAP::Flags, HEAP_CAPTURE_STACK_BACKTRACES, HEAP_SIGNATURE, _HEAP::MaximumTagIndex, _HEAP::NextAvailableTagIndex, NT_SUCCESS, NtAllocateVirtualMemory(), NTSTATUS(), NULL, PAGE_SIZE, RtlpGlobalTagHeap, _HEAP::Signature, Status, _HEAP::TagEntries, _HEAP_TAG_ENTRY::TagIndex, and USHORT. Referenced by RtlCreateTagHeap().
|
|
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 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 5893 of file heapdll.c. References NT_SUCCESS, NtFreeVirtualMemory(), NTSTATUS(), NULL, Status, and _HEAP::TagEntries. Referenced by RtlDestroyHeap().
|
|
Definition at line 6092 of file heapdll.c. Referenced by RtlUsageHeap().
|
|
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 4693 of file heapdll.c. References ALLOC_HEAP_FILL, CHECK_HEAP_TAIL_FILL, CHECK_HEAP_TAIL_SIZE, DEBUG_HEAP, FALSE, _HEAP_FREE_ENTRY::Flags, _HEAP_ENTRY::Flags, HEAP_ENTRY_BUSY, HEAP_ENTRY_EXTRA_PRESENT, HEAP_ENTRY_LAST_ENTRY, HEAP_ENTRY_SETTABLE_FLAGS, HEAP_GRANULARITY_SHIFT, HEAP_MAXIMUM_BLOCK_SIZE, IS_HEAP_TAGGING_ENABLED, _HEAP_SEGMENT::LastEntryInSegment, NULL, PAGE_SIZE, _HEAP_FREE_ENTRY::PreviousSize, ReAllocationAction, ROUND_UP_TO_POWER2, RtlpCoalesceFreeBlocks(), RtlpFindAndCommitPages(), RtlpInsertFreeBlock(), RtlpInsertFreeBlockDirect, RtlpRemoveFreeBlock, RtlpUpdateTagEntry(), RtlpValidateHeapHeaders(), _HEAP_FREE_ENTRY::SegmentIndex, _HEAP_ENTRY::Size, Size, _HEAP_FREE_ENTRY::Size, _HEAP_ENTRY_EXTRA::TagIndex, TRUE, and USHORT. Referenced by RtlReAllocateHeap().
|
|
Definition at line 6152 of file heapdll.c. References HeapHandle, IF_DEBUG_PAGE_HEAP_THEN_RETURN, _HEAP_LOCK::Lock, _HEAP::LockVariable, NULL, and RtlpDebugPageHeapIsLocked(). Referenced by LdrShutdownProcess().
|
|
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_TAG_ENTRY::Allocs, _HEAP_PSEUDO_TAG_ENTRY::Allocs, _HEAP_TAG_ENTRY::Frees, _HEAP_PSEUDO_TAG_ENTRY::Frees, HEAP_NUMBER_OF_PSEUDO_TAG, _HEAP::NextAvailableTagIndex, NULL, _HEAP::PseudoTagEntries, _HEAP_TAG_ENTRY::Size, _HEAP_PSEUDO_TAG_ENTRY::Size, and _HEAP::TagEntries.
|
|
Definition at line 258 of file heapdll.c. References _HEAP_SEGMENT::BaseAddress, HEAP_MAXIMUM_SEGMENTS, HeapDebugPrint, HeapHandle, _HEAP_SEGMENT::LastValidEntry, NT_SUCCESS, NTSTATUS(), NULL, _HEAP::Segments, Size, and Status.
|
|
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 1919 of file heapdll.c. References _HEAP_TAG_ENTRY::Allocs, DEBUG_HEAP, FALSE, _HEAP::ForceFlags, _HEAP_TAG_ENTRY::Frees, HEAP_GRANULARITY_SHIFT, HEAP_NUMBER_OF_PSEUDO_TAG, HeapHandle, IF_DEBUG_PAGE_HEAP_THEN_RETURN, IS_HEAP_TAGGING_ENABLED, L, _HEAP::LockVariable, _HEAP::NextAvailableTagIndex, NULL, _HEAP::PseudoTagEntries, RtlAcquireLockRoutine, RtlDebugQueryTagHeap(), RtlReleaseLockRoutine, _HEAP_TAG_ENTRY::Size, _HEAP::TagEntries, _HEAP_TAG_ENTRY::TagName, and TRUE. Referenced by RtlDebugQueryTagHeap().
|
|
Definition at line 518 of file heapdll.c. References _HEAP::AlignMask, _HEAP::AlignRound, ALLOC_HEAP_FILL, CHECK_HEAP_TAIL_FILL, CHECK_HEAP_TAIL_SIZE, _HEAP_VIRTUAL_ALLOC_ENTRY::CommitSize, DEBUG_HEAP, EXCEPTION_CONTINUE_SEARCH, EXCEPTION_EXECUTE_HANDLER, _HEAP_VIRTUAL_ALLOC_ENTRY::ExtraStuff, FALSE, _HEAP_FREE_ENTRY::Flags, _HEAP_ENTRY::Flags, _HEAP::Flags, _HEAP::ForceFlags, HEAP_ENTRY_BUSY, HEAP_ENTRY_EXTRA_PRESENT, HEAP_ENTRY_LAST_ENTRY, HEAP_ENTRY_SETTABLE_FLAGS, HEAP_ENTRY_VIRTUAL_ALLOC, HEAP_GRANULARITY_SHIFT, HEAP_MAXIMUM_BLOCK_SIZE, HEAP_NEED_EXTRA_FLAGS, HeapDebugBreak, HeapDebugPrint, HeapHandle, IS_HEAP_TAGGING_ENABLED, _HEAP_SEGMENT::LastEntryInSegment, _HEAP::LockVariable, NT_SUCCESS, NTSTATUS(), NULL, PAGE_SIZE, _HEAP_FREE_ENTRY::PreviousSize, _HEAP::PseudoTagEntries, ReAllocationAction, ROUND_UP_TO_POWER2, RtlAcquireLockRoutine, RtlAllocateHeap, RtlDebugReAllocateHeap(), RtlFreeHeap, RtlpGetExtraStuffPointer(), RtlpGetSizeOfBigBlock(), RtlpGrowBlockInPlace(), RtlpInsertFreeBlock(), RtlpInsertFreeBlockDirect, RtlpRemoveFreeBlock, RtlpUpdateTagEntry(), RtlRaiseException(), RtlReleaseLockRoutine, _HEAP_ENTRY::SegmentIndex, _HEAP_FREE_ENTRY::SegmentIndex, _HEAP::Segments, SET_LAST_STATUS, _HEAP_ENTRY_EXTRA::Settable, _HEAP_FREE_ENTRY::Size, _HEAP_ENTRY::Size, Size, _HEAP_ENTRY::SmallTagIndex, Status, _HEAP_ENTRY_EXTRA::TagIndex, _HEAP::TotalFreeSize, TRUE, _HEAP_ENTRY::UnusedBytes, USHORT, and VirtualReAllocationAction. Referenced by LdrpDphSnapImports(), LdrpSetAlternateResourceModuleHandle(), LdrUnloadAlternateResourceModule(), main(), and RtlDebugReAllocateHeap().
|
|
Definition at line 1480 of file heapdll.c. References DEBUG_HEAP, EXCEPTION_EXECUTE_HANDLER, FALSE, _HEAP_ENTRY::Flags, _HEAP::ForceFlags, HEAP_ENTRY_BUSY, HeapHandle, _HEAP::LockVariable, RtlAcquireLockRoutine, RtlDebugSetUserFlagsHeap(), RtlReleaseLockRoutine, SET_LAST_STATUS, and TRUE. Referenced by RtlDebugSetUserFlagsHeap(), and RtlpDphNormalHeapSetUserFlags().
|
|
Definition at line 1356 of file heapdll.c. References DEBUG_HEAP, FALSE, _HEAP_ENTRY::Flags, _HEAP::ForceFlags, HEAP_ENTRY_BUSY, HEAP_ENTRY_EXTRA_PRESENT, HeapHandle, _HEAP::LockVariable, RtlAcquireLockRoutine, RtlDebugSetUserValueHeap(), RtlpGetExtraStuffPointer(), RtlReleaseLockRoutine, SET_LAST_STATUS, _HEAP_ENTRY_EXTRA::Settable, and TRUE. Referenced by RtlDebugSetUserValueHeap(), and RtlpDphNormalHeapSetUserValue().
|
|
Definition at line 454 of file heapdll.c. References FALSE, _HEAP::Flags, HeapHandle, IF_DEBUG_PAGE_HEAP_THEN_RETURN, _HEAP::LockVariable, _HEAP::LookasideLockCount, RTL_PAGED_CODE, RtlpCheckHeapSignature(), RtlpDebugPageHeapUnlock(), RtlReleaseLockRoutine, and TRUE.
|
|
Definition at line 2976 of file heapdll.c. References _HEAP_UNCOMMMTTED_RANGE::Address, _HEAP_ENTRY_EXTRA::AllocatorBackTraceIndex, _HEAP_SEGMENT::BaseAddress, Buffer, _HEAP_VIRTUAL_ALLOC_ENTRY::BusyBlock, _HEAP_VIRTUAL_ALLOC_ENTRY::CommitSize, DEBUG_HEAP, _HEAP_SEGMENT::Entry, _HEAP::Entry, _HEAP_VIRTUAL_ALLOC_ENTRY::ExtraStuff, FALSE, _HEAP_ENTRY::Flags, _HEAP::Flags, _HEAP::ForceFlags, HEAP_ENTRY_BUSY, HEAP_ENTRY_EXTRA_PRESENT, HEAP_ENTRY_LAST_ENTRY, HEAP_GRANULARITY_SHIFT, HEAP_MAXIMUM_SEGMENTS, HeapHandle, IS_HEAP_TAGGING_ENABLED, _HEAP_SEGMENT::LastValidEntry, _HEAP::LockVariable, _HEAP_UNCOMMMTTED_RANGE::Next, NT_SUCCESS, NtAllocateVirtualMemory(), NtFreeVirtualMemory(), NTSTATUS(), NULL, _HEAP_SEGMENT::NumberOfPages, _HEAP_SEGMENT::NumberOfUnCommittedPages, PAGE_SIZE, PRTL_HEAP_USAGE_INTERNAL, RtlAcquireLockRoutine, RtlDebugUsageHeap(), RtlpAllocateHeapUsageEntry(), RtlpFreeHeapUsageEntry(), RtlpGetExtraStuffPointer(), RtlReleaseLockRoutine, _HEAP::SegmentReserve, _HEAP::Segments, _HEAP_UNCOMMMTTED_RANGE::Size, _HEAP_ENTRY::Size, _HEAP_ENTRY::SmallTagIndex, Status, _HEAP_ENTRY_EXTRA::TagIndex, _HEAP::TotalFreeSize, TRUE, _HEAP_SEGMENT::UnCommittedRanges, _HEAP_ENTRY::UnusedBytes, Usage(), and _HEAP::VirtualAllocdBlocks. Referenced by main(), and RtlDebugUsageHeap().
|
|
Definition at line 2530 of file heapdll.c. References EXCEPTION_EXECUTE_HANDLER, FALSE, _HEAP::ForceFlags, HEAP_MAXIMUM_FREELISTS, HeapHandle, IS_DEBUG_PAGE_HEAP_HANDLE, _HEAP::LockVariable, _HEAP::Lookaside, NULL, RtlAcquireLockRoutine, RtlFreeHeap, RtlpAllocateFromHeapLookaside(), RtlpCheckHeapSignature(), RtlpDebugPageHeapValidate(), RtlpValidateHeap(), RtlpValidateHeapEntry(), RtlReleaseLockRoutine, SET_LAST_STATUS, and TRUE. Referenced by main(), RtlpDphNormalHeapValidate(), and RtlValidateProcessHeaps().
|
|
Definition at line 2680 of file heapdll.c. References FALSE, NT_SUCCESS, NTSTATUS(), NULL, RtlGetProcessHeaps(), RtlValidateHeap(), Size, Status, and TRUE. Referenced by LdrShutdownProcess().
|
|
Definition at line 3714 of file heapdll.c. References _HEAP_UNCOMMMTTED_RANGE::Address, _HEAP_ENTRY_EXTRA::AllocatorBackTraceIndex, _HEAP_VIRTUAL_ALLOC_ENTRY::BusyBlock, DEBUG_HEAP, _HEAP_VIRTUAL_ALLOC_ENTRY::Entry, _HEAP_SEGMENT::FirstEntry, _HEAP_ENTRY::Flags, _HEAP_SEGMENT::Flags, _HEAP::Flags, HEAP_ENTRY_BUSY, HEAP_ENTRY_EXTRA_PRESENT, HEAP_ENTRY_LAST_ENTRY, HEAP_ENTRY_SETTABLE_FLAGS, HEAP_ENTRY_VIRTUAL_ALLOC, HEAP_GRANULARITY_SHIFT, HEAP_MAXIMUM_FREELISTS, HEAP_MAXIMUM_SEGMENTS, HeapHandle, IF_DEBUG_PAGE_HEAP_THEN_RETURN, IS_HEAP_TAGGING_ENABLED, _HEAP_SEGMENT::LastValidEntry, _HEAP::Lookaside, _HEAP_UNCOMMMTTED_RANGE::Next, NTSTATUS(), NULL, _HEAP_SEGMENT::NumberOfPages, _HEAP_SEGMENT::NumberOfUnCommittedPages, PAGE_SIZE, RtlDebugWalkHeap(), RtlFreeHeap, RtlpAllocateFromHeapLookaside(), RtlpDebugPageHeapWalk(), RtlpGetExtraStuffPointer(), RtlpGetSizeOfBigBlock(), _HEAP_ENTRY::SegmentIndex, _HEAP::Segments, _HEAP_ENTRY_EXTRA::Settable, _HEAP_UNCOMMMTTED_RANGE::Size, _HEAP_ENTRY::Size, _HEAP_ENTRY::SmallTagIndex, Status, _HEAP_ENTRY_EXTRA::TagIndex, _HEAP_SEGMENT::UnCommittedRanges, _HEAP_ENTRY::UnusedBytes, and _HEAP::VirtualAllocdBlocks.
|
|
Definition at line 68 of file heapdll.c. Referenced by LdrpDefineDllTag(), RtlCreateTagHeap(), RtlpAllocateTags(), RtlpGetTagName(), RtlpUpdateTagEntry(), and RtlQueryProcessHeapInformation(). |
|
Definition at line 61 of file heapdll.c. Referenced by RtlInitializeHeapManager(), and RtlpAddHeapToProcessList(). |
|
Definition at line 53 of file heapdll.c. Referenced by RtlEnumProcessHeaps(), RtlGetProcessHeaps(), RtlInitializeHeapManager(), RtlpAddHeapToProcessList(), and RtlpRemoveHeapFromProcessList(). |
|
Definition at line 75 of file heapdll.c. Referenced by RtlpGetTagName(). |