struct _HEAP { union { struct _HEAP_SEGMENT Segment;/* 0x0 64 */ struct { struct _HEAP_ENTRY Entry;/* 0x0 8 */ unsigned long SegmentSignature;/* 0x8 4 */ unsigned long SegmentFlags;/* 0xc 4 */ struct _LIST_ENTRY SegmentListEntry;/* 0x10 8 */ struct _HEAP* Heap;/* 0x18 4 */ void* BaseAddress;/* 0x1c 4 */ unsigned long NumberOfPages;/* 0x20 4 */ struct _HEAP_ENTRY* FirstEntry;/* 0x24 4 */ struct _HEAP_ENTRY* LastValidEntry;/* 0x28 4 */ unsigned long NumberOfUnCommittedPages;/* 0x2c 4 */ unsigned long NumberOfUnCommittedRanges;/* 0x30 4 */ unsigned short SegmentAllocatorBackTraceIndex;/* 0x34 2 */ unsigned short Reserved;/* 0x36 2 */ struct _LIST_ENTRY UCRSegmentList;/* 0x38 8 */ };/* 0x0 64 */ };/* 0x0 64 */ /* ── cacheline 1 boundary (64 bytes) ── */ unsigned long Flags;/* 0x40 4 */ unsigned long ForceFlags;/* 0x44 4 */ unsigned long CompatibilityFlags;/* 0x48 4 */ unsigned long EncodeFlagMask;/* 0x4c 4 */ struct _HEAP_ENTRY Encoding;/* 0x50 8 */ unsigned long Interceptor;/* 0x58 4 */ unsigned long VirtualMemoryThreshold;/* 0x5c 4 */ unsigned long Signature;/* 0x60 4 */ unsigned long SegmentReserve;/* 0x64 4 */ unsigned long SegmentCommit;/* 0x68 4 */ unsigned long DeCommitFreeBlockThreshold;/* 0x6c 4 */ unsigned long DeCommitTotalFreeThreshold;/* 0x70 4 */ unsigned long TotalFreeSize;/* 0x74 4 */ unsigned long MaximumAllocationSize;/* 0x78 4 */ unsigned short ProcessHeapsListIndex;/* 0x7c 2 */ unsigned short HeaderValidateLength;/* 0x7e 2 */ /* ── cacheline 2 boundary (128 bytes) ── */ void* HeaderValidateCopy;/* 0x80 4 */ unsigned short NextAvailableTagIndex;/* 0x84 2 */ unsigned short MaximumTagIndex;/* 0x86 2 */ struct _HEAP_TAG_ENTRY* TagEntries;/* 0x88 4 */ struct _LIST_ENTRY UCRList;/* 0x8c 8 */ unsigned long AlignRound;/* 0x94 4 */ unsigned long AlignMask;/* 0x98 4 */ struct _LIST_ENTRY VirtualAllocdBlocks;/* 0x9c 8 */ struct _LIST_ENTRY SegmentList;/* 0xa4 8 */ unsigned short AllocatorBackTraceIndex;/* 0xac 2 */ /* 2 bytes padding */ unsigned long NonDedicatedListLength;/* 0xb0 4 */ void* BlocksIndex;/* 0xb4 4 */ void* UCRIndex;/* 0xb8 4 */ struct _HEAP_PSEUDO_TAG_ENTRY* PseudoTagEntries;/* 0xbc 4 */ /* ── cacheline 3 boundary (192 bytes) ── */ struct _LIST_ENTRY FreeLists;/* 0xc0 8 */ struct _HEAP_LOCK* LockVariable;/* 0xc8 4 */ long (*CommitRoutine)(void*, void**, unsigned long*);/* 0xcc 4 */ union _RTL_RUN_ONCE StackTraceInitVar;/* 0xd0 4 */ struct _RTL_HEAP_MEMORY_LIMIT_DATA CommitLimitData;/* 0xd4 16 */ void* FrontEndHeap;/* 0xe4 4 */ unsigned short FrontHeapLockCount;/* 0xe8 2 */ unsigned char FrontEndHeapType;/* 0xea 1 */ unsigned char RequestedFrontEndHeapType;/* 0xeb 1 */ wchar_t* FrontEndHeapUsageData;/* 0xec 4 */ unsigned short FrontEndHeapMaximumIndex;/* 0xf0 2 */ volatile unsigned char FrontEndHeapStatusBitmap[257];/* 0xf2 257 */ /* 1 byte padding */ /* ── cacheline 7 boundary (448 bytes) ── */ struct _HEAP_COUNTERS Counters;/* 0x1f4 92 */ /* ── cacheline 9 boundary (576 bytes) ── */ struct _HEAP_TUNING_PARAMETERS TuningParameters;/* 0x250 8 */};size 600 (0x258)59 members2 holes (3 bytes)padding 010 cachelines
Used in (1)