/* PRIVATE FUNCTIONS **********************************************************/
-VOID
-NTAPI
-MiRosTakeOverSharedUserPage(IN PEPROCESS Process)
-{
- NTSTATUS Status;
- PMEMORY_AREA MemoryArea;
- PVOID AllocatedBase = (PVOID)MM_SHARED_USER_DATA_VA;
-
- Status = MmCreateMemoryArea(&Process->Vm,
- MEMORY_AREA_OWNED_BY_ARM3,
- &AllocatedBase,
- PAGE_SIZE,
- PAGE_READWRITE,
- &MemoryArea,
- 0,
- PAGE_SIZE);
- ASSERT(NT_SUCCESS(Status));
-}
-
NTSTATUS
NTAPI
MiCreatePebOrTeb(IN PEPROCESS Process,
/* Release PFN lock */
KeReleaseQueuedSpinLock(LockQueuePfnLock, OldIrql);
- /* Lock the VAD, ARM3-owned ranges away */
- MiRosTakeOverSharedUserPage(Process);
-
/* Check if there's a Section Object */
if (SectionObject)
{
MmInitializeHandBuiltProcess2(IN PEPROCESS Process)
{
/* Lock the VAD, ARM3-owned ranges away */
- MiRosTakeOverSharedUserPage(Process);
return STATUS_SUCCESS;
}
MmDeleteProcessAddressSpace(PEPROCESS Process)
{
PVOID Address;
- PMEMORY_AREA MemoryArea;
DPRINT("MmDeleteProcessAddressSpace(Process %p (%s))\n", Process,
Process->ImageFileName);
#endif
MmLockAddressSpace(&Process->Vm);
- while ((MemoryArea = (PMEMORY_AREA)Process->Vm.WorkingSetExpansionLinks.Flink) != NULL)
- {
- /* There should be nothing else left */
- ASSERT(MemoryArea->Type == MEMORY_AREA_OWNED_BY_ARM3);
-
- MmFreeMemoryArea(&Process->Vm,
- MemoryArea,
- NULL,
- NULL);
- }
+ /* There should not be any memory areas left! */
+ ASSERT(Process->Vm.WorkingSetExpansionLinks.Flink == NULL);
#if (_MI_PAGING_LEVELS == 2)
{