| Min version | XP SP2 | 2003/XP64 | 2003/XP64 SP1 |
|---|---|---|---|
| Max version | XP SP3 | 10 TH2 | |
| x86 offset offset:bitpos | Field Name | ||
| 0x0000 | unsigned long Signature | ||
| 0x0004 | unsigned long HeapFlags | ||
| 0x0008 | struct _RTL_CRITICAL_SECTION * HeapCritSect | ||
| 0x000C | unsigned long nRemoteLockAcquired | ||
| 0x0010 | struct _DPH_HEAP_BLOCK * pVirtualStorageListHead | ||
| 0x0014 | struct _DPH_HEAP_BLOCK * pVirtualStorageListTail | ||
| 0x0018 | unsigned long nVirtualStorageRanges | ||
| 0x001C | unsigned long nVirtualStorageBytes | ||
| 0x0020 | struct _DPH_HEAP_BLOCK * pBusyAllocationListHead | struct _RTL_AVL_TABLE BusyNodesTable | |
| 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 | |
| 0x005C | unsigned long nBusyAllocationBytesAccessible | unsigned long nBusyAllocations | |
| 0x0060 | struct _DPH_HEAP_BLOCK * pNodePoolListHead | unsigned long nBusyAllocationBytesCommitted | |
| 0x0064 | struct _DPH_HEAP_BLOCK * pNodePoolListTail | struct _DPH_HEAP_BLOCK * pFreeAllocationListHead | |
| 0x0068 | unsigned long nNodePools | struct _DPH_HEAP_BLOCK * pFreeAllocationListTail | |
| 0x006C | unsigned long nNodePoolBytes | unsigned long nFreeAllocations | |
| 0x0070 | struct _DPH_HEAP_ROOT * pNextHeapRoot | struct _LIST_ENTRY NextHeap | unsigned long nFreeAllocationBytesCommitted |
| 0x0074 | struct _DPH_HEAP_ROOT * pPrevHeapRoot | struct _LIST_ENTRY AvailableAllocationHead | |
| 0x0078 | unsigned long nUnProtectionReferenceCount | unsigned long ExtraFlags | |
| 0x007C | unsigned long InsideAllocateNode | unsigned long Seed | unsigned long nAvailableAllocations |
| 0x0080 | unsigned long ExtraFlags | void * NormalHeap | unsigned long nAvailableAllocationBytesCommitted |
| 0x0084 | unsigned long Seed | struct _RTL_TRACE_BLOCK * CreateStackTrace | struct _DPH_HEAP_BLOCK * pUnusedNodeListHead |
| 0x0088 | void * NormalHeap | void * FirstThread | struct _DPH_HEAP_BLOCK * pUnusedNodeListTail |
| 0x008C | struct _RTL_TRACE_BLOCK * CreateStackTrace | unsigned long nUnusedNodes | |
| 0x0090 | void * FirstThread | unsigned long nBusyAllocationBytesAccessible | |
| 0x0094 | struct _DPH_HEAP_BLOCK * pNodePoolListHead | ||
| 0x0098 | struct _DPH_HEAP_BLOCK * pNodePoolListTail | ||
| 0x009C | unsigned long nNodePools | ||
| 0x00A0 | unsigned long nNodePoolBytes | ||
| 0x00A4 | struct _LIST_ENTRY NextHeap | ||
| 0x00AC | unsigned long ExtraFlags | ||
| 0x00B0 | unsigned long Seed | ||
| 0x00B4 | void * NormalHeap | ||
| 0x00B8 | struct _RTL_TRACE_BLOCK * CreateStackTrace | ||
| 0x00BC | void * FirstThread | ||