ULONG MaxPreCommittThreshold;
} HEAP_TUNING_PARAMETERS, *PHEAP_TUNING_PARAMETERS;
+typedef struct _HEAP_LIST_LOOKUP
+{
+ struct _HEAP_LIST_LOOKUP *ExtendedLookup;
+ ULONG ArraySize;
+ ULONG ExtraItem;
+ ULONG ItemCount;
+ ULONG OutOfRangeItems;
+ ULONG BaseIndex;
+ PLIST_ENTRY ListHead;
+ PULONG ListsInUseUlong;
+ PLIST_ENTRY *ListHints;
+} HEAP_LIST_LOOKUP, *PHEAP_LIST_LOOKUP;
+
typedef struct _HEAP
{
HEAP_ENTRY Entry;
struct _HEAP_SEGMENT *Segments[HEAP_SEGMENTS]; //FIXME: non-Vista
USHORT AllocatorBackTraceIndex;
ULONG NonDedicatedListLength;
- PVOID BlocksIndex;
+ PVOID BlocksIndex; // HEAP_LIST_LOOKUP
PVOID UCRIndex;
PHEAP_PSEUDO_TAG_ENTRY PseudoTagEntries;
LIST_ENTRY FreeLists[HEAP_FREELISTS]; //FIXME: non-Vista
+ //LIST_ENTRY FreeLists;
union
{
ULONG FreeListsInUseUlong[HEAP_FREELISTS / (sizeof(ULONG) * 8)]; //FIXME: non-Vista