mirror of
https://github.com/reactos/reactos.git
synced 2025-02-22 16:36:33 +00:00
[NTOSKRNL]
Improve MiRemoveMappedPtes to be able to unmap session mapped views. svn path=/trunk/; revision=62217
This commit is contained in:
parent
0cbd932b97
commit
e984ea04a6
1 changed files with 12 additions and 3 deletions
|
@ -2118,13 +2118,15 @@ MiRemoveMappedPtes(IN PVOID BaseAddress,
|
|||
IN PCONTROL_AREA ControlArea,
|
||||
IN PMMSUPPORT Ws)
|
||||
{
|
||||
PMMPTE PointerPte;//, FirstPte;
|
||||
PMMPTE PointerPte, ProtoPte;//, FirstPte;
|
||||
PMMPDE PointerPde, SystemMapPde;
|
||||
PMMPFN Pfn1, Pfn2;
|
||||
MMPTE PteContents;
|
||||
KIRQL OldIrql;
|
||||
DPRINT("Removing mapped view at: 0x%p\n", BaseAddress);
|
||||
|
||||
ASSERT(Ws == NULL);
|
||||
|
||||
/* Get the PTE and loop each one */
|
||||
PointerPte = MiAddressToPte(BaseAddress);
|
||||
//FirstPte = PointerPte;
|
||||
|
@ -2175,8 +2177,15 @@ MiRemoveMappedPtes(IN PVOID BaseAddress,
|
|||
/* Windows ASSERT */
|
||||
ASSERT((PteContents.u.Long == 0) || (PteContents.u.Soft.Prototype == 1));
|
||||
|
||||
/* But not handled in ARM3 */
|
||||
ASSERT(PteContents.u.Soft.Prototype == 0);
|
||||
/* Check if this is a prototype pointer PTE */
|
||||
if (PteContents.u.Soft.Prototype == 1)
|
||||
{
|
||||
/* Get the prototype PTE */
|
||||
ProtoPte = MiProtoPteToPte(&PteContents);
|
||||
|
||||
/* We don't support anything else atm */
|
||||
ASSERT(ProtoPte->u.Long == 0);
|
||||
}
|
||||
}
|
||||
|
||||
/* Make the PTE into a zero PTE */
|
||||
|
|
Loading…
Reference in a new issue