x64x86arm64 / ntdllntoskrnl

_SEGMENT_HEAP

← first 1 build latest →
struct _SEGMENT_HEAP {
unsigned long Signature;/* 0x10 4 */
unsigned long GlobalFlags;/* 0x14 4 */
unsigned long Interceptor;/* 0x18 4 */
unsigned short ProcessHeapListIndex;/* 0x1c 2 */
union {
struct {
unsigned short AllocatedFromMetadata : 1;/* 0x1e:0 2 */
unsigned short ReadOnly : 1;/* 0x1e:1 2 */
};/* 0x1e 2 */
unsigned short InternalFlags;/* 0x1e 2 */
};/* 0x1e 2 */
unsigned __int64 ReservedMustBeZero;/* 0x30 8 */
void* UserContext;/* 0x38 8 */
/* ── cacheline 1 boundary (64 bytes) ── */
unsigned __int64 LargeMetadataLock;/* 0x40 8 */
volatile unsigned __int64 LargeReservedPages;/* 0x58 8 */
volatile unsigned __int64 LargeCommittedPages;/* 0x60 8 */
unsigned __int64 Tag;/* 0x68 8 */
/* 8 bytes padding */
/* ── cacheline 2 boundary (128 bytes) ── */
/* ── 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 */
/* 16 bytes padding */
/* ── cacheline 5 boundary (320 bytes) ── */
/* ── cacheline 11 boundary (704 bytes) ── */
/* ── cacheline 14 boundary (896 bytes) ── */
};
size 2624 (0xa40)28 members3 holes (28 bytes)padding 041 cachelines
Used in (2)