mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 23:03:00 +00:00
[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:
parent
f6fa150d19
commit
8c212103be
1 changed files with 7 additions and 0 deletions
|
@ -190,6 +190,7 @@ MmDeleteTeb(IN PEPROCESS Process,
|
||||||
ASSERT((Vad->StartingVpn == ((ULONG_PTR)Teb >> PAGE_SHIFT) &&
|
ASSERT((Vad->StartingVpn == ((ULONG_PTR)Teb >> PAGE_SHIFT) &&
|
||||||
(Vad->EndingVpn == (TebEnd >> PAGE_SHIFT))));
|
(Vad->EndingVpn == (TebEnd >> PAGE_SHIFT))));
|
||||||
ASSERT(Vad->u.VadFlags.NoChange == TRUE);
|
ASSERT(Vad->u.VadFlags.NoChange == TRUE);
|
||||||
|
ASSERT(Vad->u2.VadFlags2.OneSecured == TRUE);
|
||||||
ASSERT(Vad->u2.VadFlags2.MultipleSecured == FALSE);
|
ASSERT(Vad->u2.VadFlags2.MultipleSecured == FALSE);
|
||||||
|
|
||||||
/* Lock the working set */
|
/* Lock the working set */
|
||||||
|
@ -1169,9 +1170,15 @@ MmCleanProcessAddressSpace(IN PEPROCESS Process)
|
||||||
PMM_AVL_TABLE VadTree;
|
PMM_AVL_TABLE VadTree;
|
||||||
PETHREAD Thread = PsGetCurrentThread();
|
PETHREAD Thread = PsGetCurrentThread();
|
||||||
|
|
||||||
|
/* Only support this */
|
||||||
|
ASSERT(Process->AddressSpaceInitialized == 2);
|
||||||
|
|
||||||
/* Lock the process address space from changes */
|
/* Lock the process address space from changes */
|
||||||
MmLockAddressSpace(&Process->Vm);
|
MmLockAddressSpace(&Process->Vm);
|
||||||
|
|
||||||
|
/* VM is deleted now */
|
||||||
|
Process->VmDeleted = TRUE;
|
||||||
|
|
||||||
/* Enumerate the VADs */
|
/* Enumerate the VADs */
|
||||||
VadTree = &Process->VadRoot;
|
VadTree = &Process->VadRoot;
|
||||||
while (VadTree->NumberGenericTableElements)
|
while (VadTree->NumberGenericTableElements)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue