struct _SEGMENT_HEAP { struct RTL_HP_ENV_HANDLE EnvHandle;/* 0x0 16 */ unsigned long Signature;/* 0x10 4 */ unsigned long GlobalFlags;/* 0x14 4 */ unsigned long Interceptor;/* 0x18 4 */ unsigned short ProcessHeapListIndex;/* 0x1c 2 */ unsigned short InternalFlags;/* 0x1e 2 */ struct _RTLP_HEAP_COMMIT_LIMIT_DATA CommitLimitData;/* 0x20 16 */ unsigned __int64 ReservedMustBeZero;/* 0x30 8 */ void* UserContext;/* 0x38 8 */ /* ── cacheline 1 boundary (64 bytes) ── */ unsigned __int64 LargeMetadataLock;/* 0x40 8 */ struct _RTL_RB_TREE LargeAllocMetadata;/* 0x48 16 */ volatile unsigned __int64 LargeReservedPages;/* 0x58 8 */ volatile unsigned __int64 LargeCommittedPages;/* 0x60 8 */ unsigned __int64 Tag;/* 0x68 8 */ union _RTL_RUN_ONCE StackTraceInitVar;/* 0x70 8 */ /* 8 bytes padding */ /* ── cacheline 2 boundary (128 bytes) ── */ struct _HEAP_RUNTIME_MEMORY_STATS MemStats;/* 0x80 96 */ /* ── cacheline 3 boundary (192 bytes) ── */ unsigned long GlobalLockOwner;/* 0xe0 4 */ /* 4 bytes padding */ unsigned __int64 ContextExtendLock;/* 0xe8 8 */ unsigned char* AllocatedBase;/* 0xf0 8 */ unsigned char* UncommittedBase;/* 0xf8 8 */ /* ── cacheline 4 boundary (256 bytes) ── */ unsigned char* ReservedLimit;/* 0x100 8 */ unsigned char* ReservedRegionEnd;/* 0x108 8 */ unsigned __int64 CompactionLock;/* 0x110 8 */ struct _RTL_HP_HEAP_VA_CALLBACKS_ENCODED CallbacksEncoded;/* 0x118 32 */ /* 8 bytes padding */ /* ── cacheline 5 boundary (320 bytes) ── */ struct _HEAP_SEG_CONTEXT SegContexts[2];/* 0x140 384 */ /* ── cacheline 11 boundary (704 bytes) ── */ struct _HEAP_VS_CONTEXT VsContext;/* 0x2c0 96 */ /* ── cacheline 12 boundary (768 bytes) ── */ struct _HEAP_PG_CONTEXT PgContext;/* 0x320 144 */ /* 16 bytes padding */ /* ── cacheline 15 boundary (960 bytes) ── */ struct _HEAP_LFH_CONTEXT LfhContext;/* 0x3c0 1728 */};size 2688 (0xa80)28 members4 holes (36 bytes)padding 042 cachelines
Used in (5)