diff --git a/reactos/ntoskrnl/include/internal/mm.h b/reactos/ntoskrnl/include/internal/mm.h index 7415aeffe73..f61ac5cf55a 100644 --- a/reactos/ntoskrnl/include/internal/mm.h +++ b/reactos/ntoskrnl/include/internal/mm.h @@ -204,6 +204,7 @@ typedef struct _ROS_SECTION_OBJECT typedef struct _MEMORY_AREA { + MMVAD VadNode; ULONG_PTR StartingVpn; ULONG_PTR EndingVpn; struct _MEMORY_AREA *Parent; diff --git a/reactos/ntoskrnl/mm/marea.c b/reactos/ntoskrnl/mm/marea.c index bae8d0d1577..488184a4d95 100644 --- a/reactos/ntoskrnl/mm/marea.c +++ b/reactos/ntoskrnl/mm/marea.c @@ -384,8 +384,8 @@ MmInsertMemoryArea( PMMVAD Vad; ASSERT(marea->Type == MEMORY_AREA_SECTION_VIEW || marea->Type == MEMORY_AREA_CACHE); - Vad = ExAllocatePoolWithTag(NonPagedPool, sizeof(MMVAD), TAG_MVAD); - ASSERT(Vad); + Vad = &marea->VadNode; + RtlZeroMemory(Vad, sizeof(MMVAD)); Vad->StartingVpn = PAGE_ROUND_DOWN(MA_GetStartingAddress(marea)) >> PAGE_SHIFT; /* @@ -825,7 +825,6 @@ MmFreeMemoryArea( MiRemoveNode(MemoryArea->Vad, &Process->VadRoot); } - ExFreePoolWithTag(MemoryArea->Vad, TAG_MVAD); MemoryArea->Vad = NULL; } }