[NTOS]: Sanity checks when dealing with creating/cleaning process address space.

[NTOS]: Set the VmDeleted flag when the process address space is being nuked.

svn path=/trunk/; revision=49434
This commit is contained in:
Sir Richard 2010-11-02 14:41:03 +00:00
parent f6fa150d19
commit 8c212103be

View file

@ -190,6 +190,7 @@ MmDeleteTeb(IN PEPROCESS Process,
ASSERT((Vad->StartingVpn == ((ULONG_PTR)Teb >> PAGE_SHIFT) &&
(Vad->EndingVpn == (TebEnd >> PAGE_SHIFT))));
ASSERT(Vad->u.VadFlags.NoChange == TRUE);
ASSERT(Vad->u2.VadFlags2.OneSecured == TRUE);
ASSERT(Vad->u2.VadFlags2.MultipleSecured == FALSE);
/* Lock the working set */
@ -1169,9 +1170,15 @@ MmCleanProcessAddressSpace(IN PEPROCESS Process)
PMM_AVL_TABLE VadTree;
PETHREAD Thread = PsGetCurrentThread();
/* Only support this */
ASSERT(Process->AddressSpaceInitialized == 2);
/* Lock the process address space from changes */
MmLockAddressSpace(&Process->Vm);
/* VM is deleted now */
Process->VmDeleted = TRUE;
/* Enumerate the VADs */
VadTree = &Process->VadRoot;
while (VadTree->NumberGenericTableElements)