struct HEAP

typedef struct _HEAP
{
     HEAP_ENTRY Entry;
     ULONG SegmentSignature;
     ULONG SegmentFlags;
     LIST_ENTRY SegmentListEntry;
     PHEAP Heap;
     PVOID BaseAddress;
     ULONG NumberOfPages;
     PHEAP_ENTRY FirstEntry;
     PHEAP_ENTRY LastValidEntry;
     ULONG NumberOfUnCommittedPages;
     ULONG NumberOfUnCommittedRanges;
     WORD SegmentAllocatorBackTraceIndex;
     WORD Reserved;
     LIST_ENTRY UCRSegmentList;
     ULONG Flags;
     ULONG ForceFlags;
     ULONG CompatibilityFlags;
     ULONG EncodeFlagMask;
     HEAP_ENTRY Encoding;
     ULONG PointerKey;
     ULONG Interceptor;
     ULONG VirtualMemoryThreshold;
     ULONG Signature;
     ULONG SegmentReserve;
     ULONG SegmentCommit;
     ULONG DeCommitFreeBlockThreshold;
     ULONG DeCommitTotalFreeThreshold;
     ULONG TotalFreeSize;
     ULONG MaximumAllocationSize;
     WORD ProcessHeapsListIndex;
     WORD HeaderValidateLength;
     PVOID HeaderValidateCopy;
     WORD NextAvailableTagIndex;
     WORD MaximumTagIndex;
     PHEAP_TAG_ENTRY TagEntries;
     LIST_ENTRY UCRList;
     ULONG AlignRound;
     ULONG AlignMask;
     LIST_ENTRY VirtualAllocdBlocks;
     LIST_ENTRY SegmentList;
     WORD AllocatorBackTraceIndex;
     ULONG NonDedicatedListLength;
     PVOID BlocksIndex;
     PVOID UCRIndex;
     PHEAP_PSEUDO_TAG_ENTRY PseudoTagEntries;
     LIST_ENTRY FreeLists;
     PHEAP_LOCK LockVariable;
     LONG * CommitRoutine;
     PVOID FrontEndHeap;
     WORD FrontHeapLockCount;
     UCHAR FrontEndHeapType;
     HEAP_COUNTERS Counters;
     HEAP_TUNING_PARAMETERS TuningParameters;
} HEAP, *PHEAP;

Windows Vista Kernel Structures