Min version | XP SP2 | 2003/XP64 | 2003/XP64 SP1 | ||
---|---|---|---|---|---|
Max version | XP SP3 | 10 TH2 | |||
Architecture | x86 | x86 | x86 | x64 | |
x86 offset offset:bitpos | Field Name | x64 offset offset:bitpos | |||
0x0000 | unsigned long Signature | 0x0000 | |||
0x0004 | unsigned long HeapFlags | 0x0004 | |||
0x0008 | struct _RTL_CRITICAL_SECTION * HeapCritSect | 0x0008 | |||
0x000C | unsigned long nRemoteLockAcquired | 0x0010 | |||
0x0010 | struct _DPH_HEAP_BLOCK * pVirtualStorageListHead | 0x0018 | |||
0x0014 | struct _DPH_HEAP_BLOCK * pVirtualStorageListTail | 0x0020 | |||
0x0018 | unsigned long nVirtualStorageRanges | 0x0028 | |||
0x001C | uintptr_t nVirtualStorageBytes | 0x0030 | |||
0x0020 | struct _DPH_HEAP_BLOCK * pBusyAllocationListHead | struct _RTL_AVL_TABLE BusyNodesTable | 0x0038 | ||
0x0024 | struct _DPH_HEAP_BLOCK * pBusyAllocationListTail | ||||
0x0028 | unsigned long nBusyAllocations | ||||
0x002C | unsigned long nBusyAllocationBytesCommitted | ||||
0x0030 | struct _DPH_HEAP_BLOCK * pFreeAllocationListHead | ||||
0x0034 | struct _DPH_HEAP_BLOCK * pFreeAllocationListTail | ||||
0x0038 | unsigned long nFreeAllocations | ||||
0x003C | unsigned long nFreeAllocationBytesCommitted | ||||
0x0040 | struct _DPH_HEAP_BLOCK * pAvailableAllocationListHead | ||||
0x0044 | struct _DPH_HEAP_BLOCK * pAvailableAllocationListTail | ||||
0x0048 | unsigned long nAvailableAllocations | ||||
0x004C | unsigned long nAvailableAllocationBytesCommitted | ||||
0x0050 | struct _DPH_HEAP_BLOCK * pUnusedNodeListHead | ||||
0x0054 | struct _DPH_HEAP_BLOCK * pUnusedNodeListTail | ||||
0x0058 | unsigned long nUnusedNodes | struct _DPH_HEAP_BLOCK * NodeToAllocate | 0x00A0 | ||
0x005C | unsigned long nBusyAllocationBytesAccessible | unsigned long nBusyAllocations | 0x00A8 | ||
0x0060 | struct _DPH_HEAP_BLOCK * pNodePoolListHead | uintptr_t nBusyAllocationBytesCommitted | 0x00B0 | ||
0x0064 | struct _DPH_HEAP_BLOCK * pNodePoolListTail | struct _DPH_HEAP_BLOCK * pFreeAllocationListHead | 0x00B8 | ||
0x0068 | unsigned long nNodePools | struct _DPH_HEAP_BLOCK * pFreeAllocationListTail | 0x00C0 | ||
0x006C | unsigned long nNodePoolBytes | unsigned long nFreeAllocations | 0x00C8 | ||
0x0070 | struct _DPH_HEAP_ROOT * pNextHeapRoot | struct _LIST_ENTRY NextHeap | uintptr_t nFreeAllocationBytesCommitted | 0x00D0 | |
0x0074 | struct _DPH_HEAP_ROOT * pPrevHeapRoot | struct _LIST_ENTRY AvailableAllocationHead | 0x00D8 | ||
0x0078 | unsigned long nUnProtectionReferenceCount | unsigned long ExtraFlags | |||
0x007C | unsigned long InsideAllocateNode | unsigned long Seed | unsigned long nAvailableAllocations | 0x00E8 | |
0x0080 | unsigned long ExtraFlags | void * NormalHeap | uintptr_t nAvailableAllocationBytesCommitted | 0x00F0 | |
0x0084 | unsigned long Seed | struct _RTL_TRACE_BLOCK * CreateStackTrace | struct _DPH_HEAP_BLOCK * pUnusedNodeListHead | 0x00F8 | |
0x0088 | void * NormalHeap | void * FirstThread | struct _DPH_HEAP_BLOCK * pUnusedNodeListTail | 0x0100 | |
0x008C | struct _RTL_TRACE_BLOCK * CreateStackTrace | unsigned long nUnusedNodes | 0x0108 | ||
0x0090 | void * FirstThread | uintptr_t nBusyAllocationBytesAccessible | 0x0110 | ||
0x0094 | struct _DPH_HEAP_BLOCK * pNodePoolListHead | 0x0118 | |||
0x0098 | struct _DPH_HEAP_BLOCK * pNodePoolListTail | 0x0120 | |||
0x009C | unsigned long nNodePools | 0x0128 | |||
0x00A0 | uintptr_t nNodePoolBytes | 0x0130 | |||
0x00A4 | struct _LIST_ENTRY NextHeap | 0x0138 | |||
0x00AC | unsigned long ExtraFlags | 0x0148 | |||
0x00B0 | unsigned long Seed | 0x014C | |||
0x00B4 | void * NormalHeap | 0x0150 | |||
0x00B8 | struct _RTL_TRACE_BLOCK * CreateStackTrace | 0x0158 | |||
0x00BC | void * FirstThread | 0x0160 |