Locations
_ahvmShr locates the Shared Arena VMAH.
PTDA field ptda_ah locates each Private Arena VMAH.
For private arenas: ptda (0xffcb)
┌───────────────┬──────┬──────┬────┬────────────────────────────────┐│Field Name │Offset│Length│Type│Description │ ├───────────────┼──────┼──────┼────┼────────────────────────────────┤ │ah_pahNext │+0 │4 │D │Link to next arena │ ├───────────────┼──────┼──────┼────┼────────────────────────────────┤ │ah_pahPrev │+4 │4 │D │Link to previous arena │ ├───────────────┼──────┼──────┼────┼────────────────────────────────┤ │ah_parSen │+8 │4 │D │Handle of arena sentinel │ ├───────────────┼──────┼──────┼────┼────────────────────────────────┤ │ah_parFree │+c │4 │D │Hint of 1st free block in arena │ ├───────────────┼──────┼──────┼────┼────────────────────────────────┤ │ah_papbm │+10 │4 │D │Pointer to bitmap directory │ ├───────────────┼──────┼──────┼────┼────────────────────────────────┤ │ah_paharHash │+14 │4 │D │Hash table pointer │ ├───────────────┼──────┼──────┼────┼────────────────────────────────┤ │ah_pat │+18 │4 │D │Pointer to per-type info │ ├───────────────┼──────┼──────┼────┼────────────────────────────────┤ │ah_fl │+1c │4 │D │Flags │ ├───────────────┼──────┼──────┼────┼────────────────────────────────┤ │ah_laddrMin │+20 │4 │D │Minimum address currently mapped│ ├───────────────┼──────┼──────┼────┼────────────────────────────────┤ │ah_laddrMax │+24 │4 │D │Max address currently mapped │ ├───────────────┼──────┼──────┼────┼────────────────────────────────┤ │ah_car │+28 │4 │D │Count of arena entries │ ├───────────────┼──────┼──────┼────┼────────────────────────────────┤ │ah_carBitmap │+2c │4 │D │Max entry count to need bitmap │ ├───────────────┼──────┼──────┼────┼────────────────────────────────┤ │ah_lbmNumbMax │+30 │4 │D │Max bitmap number │ ├───────────────┼──────┼──────┼────┼────────────────────────────────┤ │ah_lbmeNumbMax │+34 │4 │D │Max bitmap entry number │ ├───────────────┼──────┼──────┼────┼────────────────────────────────┤ │ah_lHashNumbMax│+38 │4 │D │Max hash table index │ ├───────────────┼──────┼──────┼────┼────────────────────────────────┤ │ah_hob │+3c │2 │W │Arena header pseudo-handle │ ├───────────────┼──────┼──────┼────┼────────────────────────────────┤ │ah_filler │+3e │2 │W │Make structure 4-byte multiple │ └───────────────┴──────┴──────┴────┴────────────────────────────────┘
ah_fl flag definitions:
┌──────────────────┬──────────┬────────────────────────────┐ │Name │Bit Mask │Description │ ├──────────────────┼──────────┼────────────────────────────┤ │VMAH_BITMAP_BYPASS│0x00000001│Worth bypassing bitmap │ ├──────────────────┼──────────┼────────────────────────────┤ │VMAH_NO_HASH_WRAP │0x00000002│No hash table wraparound yet│ ├──────────────────┼──────────┼────────────────────────────┤ │VMAH_GROW_DOWN │0x00000004│Arena grows down │ └──────────────────┴──────────┴────────────────────────────┘