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