Min version | Vista | Vista SP1 | 7 | 7 SP1 | 8 Pre RTM | 8 Pre RTM | 8 | 8.1 Update 1 | 8.1 | 8.1 Update 1 | |||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Max version | Vista SP2 | 7 SP1 | 8 | 8.1 Update 1 | 10 TH2 | ||||||||||
Architecture | x86 | x64 | x86 | x64 | x86 | x64 | x86 | x64 | x86 | x64 | x86 | x64 | x86 | x64 | |
x86 offset offset:bitpos | Field Name | x64 offset offset:bitpos | |||||||||||||
0x0000 | struct _RTL_CRITICAL_SECTION Lock | struct _RTL_CRITICAL_SECTION Lock | struct _RTL_CRITICAL_SECTION Lock | struct _RTL_CRITICAL_SECTION Lock | struct _RTL_SRWLOCK Lock | struct _RTL_SRWLOCK Lock | 0x0000 | ||||||||
0x0000 | struct _RTL_CRITICAL_SECTION padding | struct _RTL_CRITICAL_SECTION padding | 0x0000 | ||||||||||||
0x0004 | struct _LIST_ENTRY SubSegmentZones | 0x0008 | |||||||||||||
0x000C | void * Heap | 0x0018 | |||||||||||||
0x0010 | void * NextSegmentInfoArrayAddress | 0x0020 | |||||||||||||
0x0014 | void * FirstUncommittedAddress | void * FirstUncommittedAddress | void * FirstUncommittedAddress | void * FirstUncommittedAddress | void * FirstUncommittedAddress | void * FirstUncommittedAddress | void * FirstUncommittedAddress | void * FirstUncommittedAddress | 0x0028 | ||||||
0x0018 | struct _LIST_ENTRY SubSegmentZones | struct _LIST_ENTRY SubSegmentZones | struct _LIST_ENTRY SubSegmentZones | struct _LIST_ENTRY SubSegmentZones | struct _LIST_ENTRY SubSegmentZones | struct _LIST_ENTRY SubSegmentZones | 0x0028 | ||||||||
0x0018 | void * ReservedAddressLimit | 0x0030 | |||||||||||||
0x001C | unsigned long SegmentCreate | unsigned long SegmentCreate | unsigned long SegmentCreate | unsigned long SegmentCreate | unsigned long SegmentCreate | unsigned long SegmentCreate | unsigned long SegmentCreate | unsigned long SegmentCreate | 0x0038 | ||||||
0x0020 | uintptr_t ZoneBlockSize | 0x0038 | |||||||||||||
0x0020 | unsigned long SegmentDelete | 0x003C | |||||||||||||
0x0024 | void * Heap | void * Heap | void * Heap | void * Heap | void * Heap | void * Heap | volatile unsigned long MinimumCacheDepth | 0x0040 | |||||||
0x0028 | volatile unsigned long CacheShiftThreshold | volatile unsigned long CacheShiftThreshold | volatile unsigned long CacheShiftThreshold | volatile unsigned long CacheShiftThreshold | volatile unsigned long CacheShiftThreshold | volatile unsigned long CacheShiftThreshold | volatile unsigned long CacheShiftThreshold | volatile unsigned long CacheShiftThreshold | 0x0044 | ||||||
0x0028 | unsigned long SegmentChange | unsigned long SegmentChange | unsigned long SegmentChange | unsigned long SegmentChange | unsigned long SegmentChange | unsigned long SegmentChange | 0x0048 | ||||||||
0x002C | unsigned long SizeInCache | uint64_t SizeInCache | unsigned long SizeInCache | uint64_t SizeInCache | volatile unsigned long SizeInCache | volatile uint64_t SizeInCache | volatile unsigned long SizeInCache | volatile uint64_t SizeInCache | 0x0048 | ||||||
0x002C | unsigned long SegmentCreate | 0x004C | |||||||||||||
0x0030 | unsigned long SegmentInsertInFree | union _HEAP_BUCKET_RUN_INFO RunInfo | volatile union _HEAP_BUCKET_RUN_INFO RunInfo | 0x0050 | |||||||||||
0x0034 | unsigned long SegmentDelete | 0x0054 | |||||||||||||
0x0038 | unsigned long CacheAllocs | unsigned long CacheAllocs | unsigned long CacheAllocs | unsigned long CacheAllocs | unsigned long CacheAllocs | unsigned long CacheAllocs | 0x0058 | ||||||||
0x0038 | struct _USER_MEMORY_CACHE_ENTRY[12] UserBlockCache | struct _USER_MEMORY_CACHE_ENTRY[12] UserBlockCache | struct _USER_MEMORY_CACHE_ENTRY[12] UserBlockCache | struct _USER_MEMORY_CACHE_ENTRY[12] UserBlockCache | struct _USER_MEMORY_CACHE_ENTRY[12] UserBlockCache | struct _USER_MEMORY_CACHE_ENTRY[12] UserBlockCache | struct _USER_MEMORY_CACHE_ENTRY[12] UserBlockCache | struct _USER_MEMORY_CACHE_ENTRY[12] UserBlockCache | 0x0060 | ||||||
0x003C | unsigned long CacheFrees | 0x005C | |||||||||||||
0x0040 | struct _USER_MEMORY_CACHE_ENTRY[12] UserBlockCache | uintptr_t SizeInCache | 0x0060 | ||||||||||||
0x0048 | union _HEAP_BUCKET_RUN_INFO RunInfo | 0x0068 | |||||||||||||
0x0050 | struct _USER_MEMORY_CACHE_ENTRY[12] UserBlockCache | 0x0070 | |||||||||||||
0x0100 | struct _HEAP_BUCKET[128] Buckets | 0x01E0 | |||||||||||||
0x0110 | struct _HEAP_BUCKET[128] Buckets | 0x01F0 | |||||||||||||
0x01B8 | struct _HEAP_BUCKET[129] Buckets | struct _HEAP_LFH_MEM_POLICIES MemoryPolicies | 0x02A0 | ||||||||||||
0x01BC | struct _HEAP_BUCKET[129] Buckets | struct _HEAP_BUCKET[129] Buckets | 0x02A4 | ||||||||||||
0x0300 | struct _HEAP_LOCAL_DATA[1] LocalData | 0x03E0 | |||||||||||||
0x0310 | struct _HEAP_LOCAL_DATA[1] LocalData | 0x03F0 | |||||||||||||
0x03BC | struct _HEAP_LOCAL_SEGMENT_INFO *[129] SegmentInfoArrays | 0x04A8 | |||||||||||||
0x03C0 | struct _HEAP_LOCAL_SEGMENT_INFO *[129] SegmentInfoArrays | struct _HEAP_LOCAL_SEGMENT_INFO *[129] SegmentInfoArrays | 0x04A8 | ||||||||||||
0x05C0 | struct _HEAP_LOCAL_SEGMENT_INFO *[129] AffinitizedInfoArrays | 0x08B0 | |||||||||||||
0x05C4 | struct _HEAP_LOCAL_SEGMENT_INFO *[129] AffinitizedInfoArrays | struct _HEAP_LOCAL_SEGMENT_INFO *[129] AffinitizedInfoArrays | 0x08B0 | ||||||||||||
0x07C4 | struct _SEGMENT_HEAP * SegmentAllocator | struct _SEGMENT_HEAP * SegmentAllocator | 0x0CB8 | ||||||||||||
0x07C8 | struct _SEGMENT_HEAP * SegmentAllocator | struct _SEGMENT_HEAP * SegmentAllocator | 0x0CB8 | ||||||||||||
0x07C8 | struct _HEAP_LOCAL_DATA[1] LocalData | 0x0CC0 | |||||||||||||
0x07D0 | struct _HEAP_LOCAL_DATA[1] LocalData | 0x0CC0 |