_HEAP

//0xae8 bytes (sizeof) struct _HEAP { struct _HEAP_ENTRY Entry; //0x0 ULONG Signature; //0x10 ULONG Flags; //0x14 ULONG ForceFlags; //0x18 ULONG VirtualMemoryThreshold; //0x1c ULONGLONG SegmentReserve; //0x20 ULONGLONG SegmentCommit; //0x28 ULONGLONG DeCommitFreeBlockThreshold; //0x30 ULONGLONG DeCommitTotalFreeThreshold; //0x38 ULONGLONG TotalFreeSize; //0x40 ULONGLONG MaximumAllocationSize; //0x48 USHORT ProcessHeapsListIndex; //0x50 USHORT HeaderValidateLength; //0x52 VOID* HeaderValidateCopy; //0x58 USHORT NextAvailableTagIndex; //0x60 USHORT MaximumTagIndex; //0x62 struct _HEAP_TAG_ENTRY* TagEntries; //0x68 struct _HEAP_UCR_SEGMENT* UCRSegments; //0x70 struct _HEAP_UNCOMMMTTED_RANGE* UnusedUnCommittedRanges; //0x78 ULONGLONG AlignRound; //0x80 ULONGLONG AlignMask; //0x88 struct _LIST_ENTRY VirtualAllocdBlocks; //0x90 struct _HEAP_SEGMENT* Segments[64]; //0xa0 union { ULONG FreeListsInUseUlong[4]; //0x2a0 UCHAR FreeListsInUseBytes[16]; //0x2a0 } u; //0x2a0 union { USHORT FreeListsInUseTerminate; //0x2b0 USHORT DecommitCount; //0x2b0 } u2; //0x2b0 USHORT AllocatorBackTraceIndex; //0x2b2 ULONG NonDedicatedListLength; //0x2b4 VOID* LargeBlocksIndex; //0x2b8 struct _HEAP_PSEUDO_TAG_ENTRY* PseudoTagEntries; //0x2c0 struct _LIST_ENTRY FreeLists[128]; //0x2c8 struct _HEAP_LOCK* LockVariable; //0xac8 LONG (*CommitRoutine)(VOID* arg1, VOID** arg2, ULONGLONG* arg3); //0xad0 VOID* FrontEndHeap; //0xad8 USHORT FrontHeapLockCount; //0xae0 UCHAR FrontEndHeapType; //0xae2 UCHAR LastSegmentIndex; //0xae3 };