28 #define EXTRA_FLAG (1ULL << (sizeof (size_t) * 8 - 1))
31 #define LFH_BLOCK (1 << (SHIFT))
32 #define LARGE_BLOCK (1 << (SHIFT + 1))
33 #define NT_BLOCK (1 << (SHIFT + 2))
34 #define SEGMENT_HEAP_BLOCK (1 << (SHIFT + 3))
35 #define VS_BLOCK (1 << (SHIFT + 4))
36 #define BACKEND_BLOCK (1 << (SHIFT + 5))
119 PVOID PreviousBlockPrivateData;
137 UINT64 CompactHeader;
173 PVOID PreviousBlockPrivateData;
189 UINT64 CompactHeader;
229 PVOID ReservedForAlignment;
1005 NTSTATUS (NTAPI *RtlDestroyQueryDebugBuffer)(
1009 __kernel_entry
NTSTATUS (NTAPI *w32_NtQueryInformationProcess)(
HANDLE CriticalSectionHandle
PVOID BackTraceInformation
HANDLE RemoteEventPairHandle
HANDLE CriticalSectionOwnerThread
HANDLE RemoteThreadHandle
HANDLE RemoteProcessHandle
ULONG32 AllocationIndicesActive
WPARAM TotalMemoryCommitted
ULONG32 PollIntervalCounter
ULONG32 InBlockCommitFailures
ULONG32 DecommitsSinceLastCheck
WPARAM TotalSizeInVirtualBlocks
WPARAM TotalMemoryLargeUCR
ULONG32 InBlockDeccommits
WPARAM InBlockDeccomitSize
WPARAM TotalMemoryReserved
UINT8 ExtendedBlockSignature
HEAP_UNPACKED_ENTRY UnpackedEntry
HEAP_EXTENDED_ENTRY ExtendedEntry
UINT8 ExtendedBlockSignature
RTL_BALANCED_NODE TreeNode
HEAP_LFH_FAST_REF ActiveSubsegment
HEAP_LFH_SUBSEGMENT_OWNER State
PHEAP_LFH_AFFINITY_SLOT * AffinitySlots
PUINT8 ProcAffinityMapping
WPARAM AffinityMappingLock
HEAP_LFH_SUBSEGMENT_OWNER State
WPARAM TotalSubsegmentCount
HEAP_LFH_SUBSEGMENT_STATS BucketStats
HEAP_SUBALLOCATOR_CALLBACKS Callbacks
WPARAM SubsegmentCreationLock
PHEAP_LFH_BUCKET Buckets[129]
UINT8 SlowSubsegmentGrowth
WPARAM AvailableSubsegmentCount
LIST_ENTRY FullSubsegmentList
LIST_ENTRY AvailableSubsegmentList
HEAP_LFH_SUBSEGMENT_STAT Buckets[4]
PHEAP_LFH_SUBSEGMENT_OWNER Owner
HEAP_LFH_SUBSEGMENT_ENCODED_OFFSETS BlockOffsets
SLIST_HEADER DeletedSubSegments
PHEAP_SUBSEGMENT ActiveSubsegment
HEAP_BUCKET_COUNTERS Counters
PHEAP_SUBSEGMENT CachedItems[16]
PHEAP_LOCAL_DATA LocalData
union _HEAP_LOCK::@493 Lock
RTL_CRITICAL_SECTION CriticalSection
WPARAM OpportunisticLargePageCount
WPARAM SmallPagesInUseWithinLarge
RTL_BALANCED_NODE TreeNode
HEAP_PAGE_RANGE_DESCRIPTOR DescArray[256]
WPARAM TotalCommittedPages
WPARAM FreeCommittedPages
WPARAM TotalReservedPages
HEAP_OPPORTUNISTIC_LARGE_PAGE_STATS LargePageStats[2]
WPARAM LfhFreeCommittedPages
RTL_HP_SEG_ALLOC_POLICY LargePageUtilizationPolicy
LIST_ENTRY SegmentListEntry
ULONG32 NumberOfUnCommittedPages
LIST_ENTRY UCRSegmentList
PHEAP_ENTRY LastValidEntry
ULONG32 NumberOfUnCommittedRanges
UINT16 SegmentAllocatorBackTraceIndex
BYTE FirstDescriptorIndex
SINGLE_LIST_ENTRY FreeSegmentList[2]
WPARAM FreeSegmentListLock
BYTE CachedCommitSoftShift
LIST_ENTRY SegmentListHead
RTL_RB_TREE FreePageRanges
RTL_HP_ENV_HANDLE EnvHandle
BYTE CachedCommitHighShift
PHEAP_USERDATA_HEADER UserBlocks
SLIST_HEADER DelayFreeList
PHEAP_LOCAL_SEGMENT_INFO LocalInfo
INTERLOCK_SEQ AggregateExchg
SINGLE_LIST_ENTRY SFreeListEntry
UINT16 CreatorBackTraceIndex
ULONG32 CommittThresholdShift
WPARAM MaxPreCommittThreshold
UINT16 FirstAllocationOffset
HEAP_ENTRY_EXTRA ExtraStuff
HEAP_SUBALLOCATOR_CALLBACKS Callbacks
LIST_ENTRY SubsegmentList
RTL_RB_TREE FreeChunkTree
WPARAM FreeCommittedUnits
WPARAM TotalCommittedUnits
WPARAM DelayFreeContext[8]
PVOID WPARAM *RTL_RUN_ONCE StackTraceInitVar
UINT16 ProcessHeapsListIndex
LIST_ENTRY UCRSegmentList
UINT16 NextAvailableTagIndex
WPARAM MaximumAllocationSize
ULONG32 NumberOfUnCommittedPages
WPARAM DeCommitTotalFreeThreshold
UINT16 AllocatorBackTraceIndex
WPARAM DeCommitFreeBlockThreshold
UINT16 SegmentAllocatorBackTraceIndex
UINT8 FrontEndHeapStatusBitmap[257]
ULONG32 NonDedicatedListLength
UINT16 FrontEndHeapMaximumIndex
LONG32(WINAPI *CommitRoutine)(PVOID
LIST_ENTRY VirtualAllocdBlocks
PHEAP_PSEUDO_TAG_ENTRY PseudoTagEntries
ULONG32 CompatibilityFlags
PHEAP_TAG_ENTRY TagEntries
UINT16 FrontHeapLockCount
RTL_HEAP_MEMORY_LIMIT_DATA CommitLimitData
UINT16 HeaderValidateLength
ULONG32 NumberOfUnCommittedRanges
UINT8 RequestedFrontEndHeapType
HEAP_TUNING_PARAMETERS TuningParameters
ULONG32 VirtualMemoryThreshold
PHEAP_ENTRY LastValidEntry
LIST_ENTRY SegmentListEntry
PUINT16 FrontEndHeapUsageData
PHeapBlockExtraInfo extraInfo
PVOID ReservedAddressLimit
PHEAP_LOCAL_SEGMENT_INFO SegmentInfoArrays[129]
PHEAP_LOCAL_SEGMENT_INFO AffinitizedInfoArrays[129]
HEAP_LFH_MEM_POLICIES MemoryPolicies
LIST_ENTRY SubSegmentZones
ULONG CacheShiftThreshold
USER_MEMORY_CACHE_ENTRY UserBlockCache[12]
PVOID FirstUncommittedAddress
PSEGMENT_HEAP SegmentAllocator
PVOID NextSegmentInfoArrayAddress
HEAP_BUCKET_RUN_INFO RunInfo
HEAP_LOCAL_DATA LocalData[1]
PRTL_BALANCED_NODE Children[2]
WPARAM MaxAllocationSizeBytes
WPARAM CommitLimitFailureCode
WPARAM AllocationLimitFailureCode
BYTE WitholdPageCrossingBlocks
ULONG PageAlignLargeAllocs
struct _RTL_HP_VS_CONFIG::@494 Flags
WPARAM LargeReservedPages
RTL_SRWLOCK LargeMetadataLock
RTL_RUN_ONCE StackTraceInitVar
USHORT AllocatedFromMetadata
HEAP_VS_CONTEXT VsContext
HEAP_SEG_CONTEXT SegContexts[2]
RTL_HEAP_MEMORY_LIMIT_DATA CommitLimitData
HEAP_LFH_CONTEXT LfhContext
USHORT ProcessHeapListIndex
HEAP_RUNTIME_MEMORY_STATS MemStats
RTL_RB_TREE LargeAllocMetadata
WPARAM LargeCommittedPages
RTL_SRWLOCK ContextExtendLock
RTL_HP_ENV_HANDLE EnvHandle
UINT64 ReservedMustBeZero1
PVOID ReservedMustBeZero2
ULONG CacheShiftThreshold
struct _HEAP_ENTRY_EXTRA HEAP_ENTRY_EXTRA
struct _HEAP_USERDATA_HEADER * PHEAP_USERDATA_HEADER
__kernel_entry IN PROCESSINFOCLASS OUT PVOID ProcessInformation
struct _HEAP_BUCKET_RUN_INFO * PHEAP_BUCKET_RUN_INFO
struct _HEAP_OPPORTUNISTIC_LARGE_PAGE_STATS HEAP_OPPORTUNISTIC_LARGE_PAGE_STATS
struct _RTL_BITMAP_EX RTL_BITMAP_EX
struct _RTL_HP_LFH_CONFIG * PRTL_HP_LFH_CONFIG
struct _HEAP_LFH_SUBSEGMENT_ENCODED_OFFSETS HEAP_LFH_SUBSEGMENT_ENCODED_OFFSETS
struct _HEAP_LFH_AFFINITY_SLOT * PHEAP_LFH_AFFINITY_SLOT
struct _HEAP_USERDATA_HEADER HEAP_USERDATA_HEADER
struct _HEAP_PAGE_RANGE_DESCRIPTOR * PHEAP_PAGE_RANGE_DESCRIPTOR
struct _HEAP_TAG_ENTRY * PHEAP_TAG_ENTRY
struct _HEAP_EXTENDED_ENTRY * PHEAP_EXTENDED_ENTRY
struct _HEAP_BUCKET * PHEAP_BUCKET
struct _HEAP_ENTRY * PHEAP_ENTRY
struct _HEAP_VS_CHUNK_HEADER_SIZE * PHEAP_VS_CHUNK_HEADER_SIZE
struct _DEBUG_BUFFER * PDEBUG_BUFFER
struct _HEAP_TUNING_PARAMETERS HEAP_TUNING_PARAMETERS
struct _RTL_HEAP_MEMORY_LIMIT_DATA * PRTL_HEAP_MEMORY_LIMIT_DATA
struct _HEAP_LFH_SUBSEGMENT HEAP_LFH_SUBSEGMENT
struct _HEAP_LFH_BUCKET * PHEAP_LFH_BUCKET
struct _RTL_BITMAP_EX * PRTL_BITMAP_EX
struct _HeapBlockExtraInfo * PHeapBlockExtraInfo
struct _HEAP_VS_CONTEXT * PHEAP_VS_CONTEXT
struct _HEAP_LFH_SUBSEGMENT_STAT HEAP_LFH_SUBSEGMENT_STAT
struct _RTL_HP_ENV_HANDLE RTL_HP_ENV_HANDLE
IN DWORD IN OUT PDEBUG_BUFFER DebugBuffer
struct _HEAP_BUCKET HEAP_BUCKET
struct _HEAP_SUBALLOCATOR_CALLBACKS * PHEAP_SUBALLOCATOR_CALLBACKS
struct _HEAP_SEG_CONTEXT HEAP_SEG_CONTEXT
struct _HEAP_SEGMENT HEAP_SEGMENT
struct _HEAP_LFH_BUCKET HEAP_LFH_BUCKET
struct _LFH_HEAP * PLFH_HEAP
struct _RTL_HP_SEG_ALLOC_POLICY * PRTL_HP_SEG_ALLOC_POLICY
struct _RTL_BALANCED_NODE RTL_BALANCED_NODE
struct _RTL_HEAP_MEMORY_LIMIT_DATA RTL_HEAP_MEMORY_LIMIT_DATA
struct _LFH_BLOCK_ZONE * PLFH_BLOCK_ZONE
struct _HeapBlock * PHeapBlock
struct _USER_MEMORY_CACHE_ENTRY USER_MEMORY_CACHE_ENTRY
struct _HEAP_VIRTUAL_ALLOC_ENTRY HEAP_VIRTUAL_ALLOC_ENTRY
struct _HEAP_OPPORTUNISTIC_LARGE_PAGE_STATS * PHEAP_OPPORTUNISTIC_LARGE_PAGE_STATS
struct _RTL_RB_TREE RTL_RB_TREE
struct _HEAP_LOCAL_DATA * PHEAP_LOCAL_DATA
struct _HEAP_ENTRY_EXTRA * PHEAP_ENTRY_EXTRA
@ PAGE_RANGE_FLAGS_LFH_SUBSEGMENT
@ PAGE_RANGE_FLAGS_VS_SUBSEGMENT
@ PAGE_RANGE_FLAGS_ALLOCATED
@ PAGE_RANGE_FLAGS_COMMITED
struct _HeapBlockBasicInfo * PHeapBlockBasicInfo
struct _HEAP_LFH_SUBSEGMENT_OWNER * PHEAP_LFH_SUBSEGMENT_OWNER
struct _HEAP_LFH_FAST_REF HEAP_LFH_FAST_REF
struct _LFH_HEAP LFH_HEAP
enum _RTLP_HP_LOCK_TYPE RTLP_HP_LOCK_TYPE
struct _HEAP_LFH_FAST_REF * PHEAP_LFH_FAST_REF
struct _HEAP_TAG_ENTRY HEAP_TAG_ENTRY
struct _HEAP_LOCK * PHEAP_LOCK
struct _HEAP_PSEUDO_TAG_ENTRY HEAP_PSEUDO_TAG_ENTRY
struct _HeapBlockExtraInfo HeapBlockExtraInfo
struct _HEAP_BUCKET_COUNTERS HEAP_BUCKET_COUNTERS
struct _INTERLOCK_SEQ INTERLOCK_SEQ
struct _HEAP_BUCKET_RUN_INFO HEAP_BUCKET_RUN_INFO
struct _INTERLOCK_SEQ * PINTERLOCK_SEQ
struct _HEAP_USERDATA_OFFSETS HEAP_USERDATA_OFFSETS
struct _RTL_HP_VS_CONFIG RTL_HP_VS_CONFIG
struct _HEAP_VS_CHUNK_HEADER HEAP_VS_CHUNK_HEADER
struct _HEAP_COUNTERS HEAP_COUNTERS
struct _HEAP_RUNTIME_MEMORY_STATS * PHEAP_RUNTIME_MEMORY_STATS
struct _HEAP_LOCAL_DATA HEAP_LOCAL_DATA
struct _HEAP_RUNTIME_MEMORY_STATS HEAP_RUNTIME_MEMORY_STATS
struct _HEAP_UNPACKED_ENTRY * PHEAP_UNPACKED_ENTRY
struct _HEAP_VS_CHUNK_HEADER * PHEAP_VS_CHUNK_HEADER
struct _HeapInformation * PHeapInformation
struct _HEAP_LARGE_ALLOC_DATA * PHEAP_LARGE_ALLOC_DATA
struct _HEAP_LFH_SUBSEGMENT_STAT * PHEAP_LFH_SUBSEGMENT_STAT
struct _SEGMENT_HEAP SEGMENT_HEAP
struct _RTL_HP_ENV_HANDLE * PRTL_HP_ENV_HANDLE
struct _HEAP_LARGE_ALLOC_DATA HEAP_LARGE_ALLOC_DATA
struct _DEBUG_HEAP_INFORMATION DEBUG_HEAP_INFORMATION
struct _HEAP_SUBSEGMENT * PHEAP_SUBSEGMENT
struct _HEAP_VIRTUAL_ALLOC_ENTRY * PHEAP_VIRTUAL_ALLOC_ENTRY
struct _HEAP_LFH_SUBSEGMENT * PHEAP_LFH_SUBSEGMENT
struct _HEAP_PSEUDO_TAG_ENTRY * PHEAP_PSEUDO_TAG_ENTRY
struct _HEAP_SUBALLOCATOR_CALLBACKS HEAP_SUBALLOCATOR_CALLBACKS
struct _RTL_BALANCED_NODE * PRTL_BALANCED_NODE
struct _HEAP_LOCAL_SEGMENT_INFO * PHEAP_LOCAL_SEGMENT_INFO
__kernel_entry IN PROCESSINFOCLASS OUT PVOID IN ULONG OUT PULONG ReturnLength
struct _HEAP_PAGE_SEGMENT * PHEAP_PAGE_SEGMENT
__kernel_entry IN PROCESSINFOCLASS OUT PVOID IN ULONG ProcessInformationLength
struct _HeapInformation HeapInformation
struct _HEAP_COUNTERS * PHEAP_COUNTERS
struct _HEAP_LOCAL_SEGMENT_INFO HEAP_LOCAL_SEGMENT_INFO
struct _LFH_BLOCK_ZONE LFH_BLOCK_ZONE
struct _HEAP_LFH_SUBSEGMENT_OWNER HEAP_LFH_SUBSEGMENT_OWNER
struct _RTL_HP_LFH_CONFIG RTL_HP_LFH_CONFIG
struct _HeapBlockBasicInfo HeapBlockBasicInfo
struct _HEAP_LFH_MEM_POLICIES HEAP_LFH_MEM_POLICIES
struct _SEGMENT_HEAP * PSEGMENT_HEAP
struct _HEAP_LFH_MEM_POLICIES * PHEAP_LFH_MEM_POLICIES
struct _HeapBlock HeapBlock
struct _USER_MEMORY_CACHE_ENTRY * PUSER_MEMORY_CACHE_ENTRY
struct _HEAP_SUBSEGMENT HEAP_SUBSEGMENT
struct _HEAP_USERDATA_OFFSETS * PHEAP_USERDATA_OFFSETS
struct _HEAP_VS_CHUNK_HEADER_SIZE HEAP_VS_CHUNK_HEADER_SIZE
struct _HEAP_ENTRY HEAP_ENTRY
struct _HEAP_VS_SUBSEGMENT HEAP_VS_SUBSEGMENT
struct _HEAP_BUCKET_COUNTERS * PHEAP_BUCKET_COUNTERS
struct _HEAP_LFH_SUBSEGMENT_STATS HEAP_LFH_SUBSEGMENT_STATS
struct _HEAP_PAGE_SEGMENT HEAP_PAGE_SEGMENT
__kernel_entry IN PROCESSINFOCLASS ProcessInformationClass
struct _HEAP_EXTENDED_ENTRY HEAP_EXTENDED_ENTRY
struct _HEAP_LFH_SUBSEGMENT_ENCODED_OFFSETS * PHEAP_LFH_SUBSEGMENT_ENCODED_OFFSETS
struct _HEAP_LFH_SUBSEGMENT_STATS * PHEAP_LFH_SUBSEGMENT_STATS
struct _HEAP_LOCK HEAP_LOCK
struct _HEAP_VS_CONTEXT HEAP_VS_CONTEXT
struct _HEAP_LFH_CONTEXT * PHEAP_LFH_CONTEXT
struct _HEAP_SEGMENT * PHEAP_SEGMENT
struct _HEAP_SEG_CONTEXT * PHEAP_SEG_CONTEXT
struct _HEAP_PAGE_RANGE_DESCRIPTOR HEAP_PAGE_RANGE_DESCRIPTOR
struct _DEBUG_HEAP_INFORMATION * PDEBUG_HEAP_INFORMATION
IN DWORD DebugInfoClassMask
NTSTATUS(NTAPI *RtlQueryProcessDebugInformation)(IN DWORD ProcessId
struct _HEAP_TUNING_PARAMETERS * PHEAP_TUNING_PARAMETERS
struct _RTL_RB_TREE * PRTL_RB_TREE
struct _HEAP_UNPACKED_ENTRY HEAP_UNPACKED_ENTRY
struct _HEAP_VS_SUBSEGMENT * PHEAP_VS_SUBSEGMENT
struct _HEAP_LFH_CONTEXT HEAP_LFH_CONTEXT
struct _RTL_HP_SEG_ALLOC_POLICY RTL_HP_SEG_ALLOC_POLICY
struct _HEAP_LFH_AFFINITY_SLOT HEAP_LFH_AFFINITY_SLOT
struct _RTL_HP_VS_CONFIG * PRTL_HP_VS_CONFIG
struct _DEBUG_BUFFER DEBUG_BUFFER