| Min version | XP | 2003/XP64 SP1 | Vista | 7 | 8 Pre RTM | 8 Pre RTM | 10 Pre RTM |
|---|---|---|---|---|---|---|---|
| Max version | 2003/XP64 SP2 | 2003/XP64 SP2 | Vista SP2 | 7 SP1 | 8.1 Update 1 | 10 TH2 | |
| x86 offset offset:bitpos | Field Name | ||||||
| 0x0000 | struct _HEAP_ENTRY Entry | struct _HEAP_SEGMENT Segment | |||||
| 0x0000 | struct _HEAP_ENTRY Entry | ||||||
| 0x0008 | unsigned long Signature | unsigned long SegmentSignature | |||||
| 0x000C | unsigned long Flags | unsigned long SegmentFlags | |||||
| 0x0010 | unsigned long ForceFlags | struct _LIST_ENTRY SegmentListEntry | |||||
| 0x0014 | unsigned long VirtualMemoryThreshold | ||||||
| 0x0018 | unsigned long SegmentReserve | struct _HEAP * Heap | |||||
| 0x001C | unsigned long SegmentCommit | void * BaseAddress | |||||
| 0x0020 | unsigned long DeCommitFreeBlockThreshold | unsigned long NumberOfPages | |||||
| 0x0024 | unsigned long DeCommitTotalFreeThreshold | struct _HEAP_ENTRY * FirstEntry | |||||
| 0x0028 | unsigned long TotalFreeSize | struct _HEAP_ENTRY * LastValidEntry | |||||
| 0x002C | unsigned long MaximumAllocationSize | unsigned long NumberOfUnCommittedPages | |||||
| 0x0030 | uint16_t ProcessHeapsListIndex | unsigned long NumberOfUnCommittedRanges | |||||
| 0x0032 | uint16_t HeaderValidateLength | ||||||
| 0x0034 | void * HeaderValidateCopy | uint16_t SegmentAllocatorBackTraceIndex | |||||
| 0x0036 | uint16_t Reserved | ||||||
| 0x0038 | uint16_t NextAvailableTagIndex | struct _LIST_ENTRY UCRSegmentList | |||||
| 0x003A | uint16_t MaximumTagIndex | ||||||
| 0x003C | struct _HEAP_TAG_ENTRY * TagEntries | ||||||
| 0x0040 | struct _HEAP_UCR_SEGMENT * UCRSegments | unsigned long Flags | |||||
| 0x0044 | struct _HEAP_UNCOMMMTTED_RANGE * UnusedUnCommittedRanges | unsigned long ForceFlags | |||||
| 0x0048 | unsigned long AlignRound | unsigned long CompatibilityFlags | |||||
| 0x004C | unsigned long AlignMask | unsigned long EncodeFlagMask | |||||
| 0x0050 | struct _LIST_ENTRY VirtualAllocdBlocks | struct _HEAP_ENTRY Encoding | |||||
| 0x0058 | struct _HEAP_SEGMENT *[64] Segments | unsigned long PointerKey | unsigned long Interceptor | ||||
| 0x005C | unsigned long Interceptor | unsigned long VirtualMemoryThreshold | |||||
| 0x0060 | unsigned long VirtualMemoryThreshold | unsigned long Signature | |||||
| 0x0064 | unsigned long Signature | unsigned long SegmentReserve | |||||
| 0x0068 | unsigned long SegmentReserve | unsigned long SegmentCommit | |||||
| 0x006C | unsigned long SegmentCommit | unsigned long DeCommitFreeBlockThreshold | |||||
| 0x0070 | unsigned long DeCommitFreeBlockThreshold | unsigned long DeCommitTotalFreeThreshold | |||||
| 0x0074 | unsigned long DeCommitTotalFreeThreshold | unsigned long TotalFreeSize | |||||
| 0x0078 | unsigned long TotalFreeSize | unsigned long MaximumAllocationSize | |||||
| 0x007C | unsigned long MaximumAllocationSize | uint16_t ProcessHeapsListIndex | |||||
| 0x007E | uint16_t HeaderValidateLength | ||||||
| 0x0080 | uint16_t ProcessHeapsListIndex | void * HeaderValidateCopy | |||||
| 0x0082 | uint16_t HeaderValidateLength | ||||||
| 0x0084 | void * HeaderValidateCopy | uint16_t NextAvailableTagIndex | |||||
| 0x0086 | uint16_t MaximumTagIndex | ||||||
| 0x0088 | uint16_t NextAvailableTagIndex | struct _HEAP_TAG_ENTRY * TagEntries | |||||
| 0x008A | uint16_t MaximumTagIndex | ||||||
| 0x008C | struct _HEAP_TAG_ENTRY * TagEntries | struct _LIST_ENTRY UCRList | |||||
| 0x0090 | struct _LIST_ENTRY UCRList | ||||||
| 0x0094 | unsigned long AlignRound | ||||||
| 0x0098 | unsigned long AlignRound | unsigned long AlignMask | |||||
| 0x009C | unsigned long AlignMask | struct _LIST_ENTRY VirtualAllocdBlocks | |||||
| 0x00A0 | struct _LIST_ENTRY VirtualAllocdBlocks | ||||||
| 0x00A4 | struct _LIST_ENTRY SegmentList | ||||||
| 0x00A8 | struct _LIST_ENTRY SegmentList | ||||||
| 0x00AC | uint16_t AllocatorBackTraceIndex | ||||||
| 0x00B0 | uint16_t AllocatorBackTraceIndex | unsigned long NonDedicatedListLength | |||||
| 0x00B4 | unsigned long NonDedicatedListLength | void * BlocksIndex | |||||
| 0x00B8 | void * BlocksIndex | void * UCRIndex | |||||
| 0x00BC | void * UCRIndex | struct _HEAP_PSEUDO_TAG_ENTRY * PseudoTagEntries | |||||
| 0x00C0 | struct _HEAP_PSEUDO_TAG_ENTRY * PseudoTagEntries | struct _LIST_ENTRY FreeLists | |||||
| 0x00C4 | struct _LIST_ENTRY FreeLists | ||||||
| 0x00C8 | struct _HEAP_LOCK * LockVariable | ||||||
| 0x00CC | struct _HEAP_LOCK * LockVariable | function * CommitRoutine | |||||
| 0x00D0 | function * CommitRoutine | void * FrontEndHeap | |||||
| 0x00D4 | void * FrontEndHeap | uint16_t FrontHeapLockCount | |||||
| 0x00D6 | uint8_t FrontEndHeapType | ||||||
| 0x00D7 | uint8_t RequestedFrontEndHeapType | ||||||
| 0x00D8 | uint16_t FrontHeapLockCount | uint16_t * FrontEndHeapUsageData | |||||
| 0x00DA | uint8_t FrontEndHeapType | ||||||
| 0x00DC | struct _HEAP_COUNTERS Counters | struct _HEAP_COUNTERS Counters | uint16_t FrontEndHeapMaximumIndex | ||||
| 0x00DE | uint8_t[257] FrontEndHeapStatusBitmap | volatile uint8_t[257] FrontEndHeapStatusBitmap | |||||
| 0x0124 | struct _HEAP_TUNING_PARAMETERS TuningParameters | ||||||
| 0x0130 | struct _HEAP_TUNING_PARAMETERS TuningParameters | ||||||
| 0x0158 | union __unnamed u | union <unnamed-tag> u | |||||
| 0x0168 | union __unnamed u2 | union <unnamed-tag> u2 | |||||
| 0x016A | uint16_t AllocatorBackTraceIndex | ||||||
| 0x016C | unsigned long NonDedicatedListLength | ||||||
| 0x0170 | void * LargeBlocksIndex | ||||||
| 0x0174 | struct _HEAP_PSEUDO_TAG_ENTRY * PseudoTagEntries | ||||||
| 0x0178 | struct _LIST_ENTRY[128] FreeLists | ||||||
| 0x01E0 | struct _HEAP_COUNTERS Counters | ||||||
| 0x023C | struct _HEAP_TUNING_PARAMETERS TuningParameters | ||||||
| 0x0578 | struct _HEAP_LOCK * LockVariable | ||||||
| 0x057C | function * CommitRoutine | ||||||
| 0x0580 | void * FrontEndHeap | ||||||
| 0x0584 | uint16_t FrontHeapLockCount | ||||||
| 0x0586 | uint8_t FrontEndHeapType | ||||||
| 0x0587 | uint8_t LastSegmentIndex | ||||||