struct _SEGMENT_HEAP { struct RTL_HP_ENV_HANDLE EnvHandle;/* 0x0 8 */ unsigned long Signature;/* 0x8 4 */ unsigned long GlobalFlags;/* 0xc 4 */ unsigned long Interceptor;/* 0x10 4 */ unsigned short ProcessHeapListIndex;/* 0x14 2 */ unsigned short AllocatedFromMetadata : 1;/* 0x16:0 2 */ union { struct _RTL_HEAP_MEMORY_LIMIT_DATA CommitLimitData;/* 0x18 16 */ struct { unsigned long ReservedMustBeZero1;/* 0x18 4 */ void* UserContext;/* 0x1c 4 */ unsigned long ReservedMustBeZero2;/* 0x20 4 */ void* Spare;/* 0x24 4 */ };/* 0x18 16 */ };/* 0x18 16 */ /* 24 bytes padding */ /* ── cacheline 1 boundary (64 bytes) ── */ unsigned long LargeMetadataLock;/* 0x40 4 */ struct _RTL_RB_TREE LargeAllocMetadata;/* 0x44 8 */ volatile unsigned long LargeReservedPages;/* 0x4c 4 */ volatile unsigned long LargeCommittedPages;/* 0x50 4 */ union _RTL_RUN_ONCE StackTraceInitVar;/* 0x54 4 */ /* 40 bytes padding */ /* ── cacheline 2 boundary (128 bytes) ── */ struct _HEAP_RUNTIME_MEMORY_STATS MemStats;/* 0x80 44 */ unsigned short GlobalLockCount;/* 0xac 2 */ /* 2 bytes padding */ unsigned long GlobalLockOwner;/* 0xb0 4 */ unsigned long ContextExtendLock;/* 0xb4 4 */ unsigned char* AllocatedBase;/* 0xb8 4 */ unsigned char* UncommittedBase;/* 0xbc 4 */ /* ── cacheline 3 boundary (192 bytes) ── */ unsigned char* ReservedLimit;/* 0xc0 4 */ /* 60 bytes padding */ /* ── cacheline 4 boundary (256 bytes) ── */ struct _HEAP_SEG_CONTEXT SegContexts[2];/* 0x100 256 */ /* ── cacheline 8 boundary (512 bytes) ── */ struct _HEAP_VS_CONTEXT VsContext;/* 0x200 192 */ /* ── cacheline 11 boundary (704 bytes) ── */ struct _HEAP_LFH_CONTEXT LfhContext;/* 0x2c0 704 */};size 1408 (0x580)26 members4 holes (126 bytes)padding 022 cachelines
Used in (4)