[NTOSKRNL]

- Use ARM3 hyperspace mapping calls instead of the legacy RosMm API

svn path=/trunk/; revision=56038
This commit is contained in:
Cameron Gutman 2012-03-05 17:08:02 +00:00
parent e6c3edf112
commit 4e9be483ad
2 changed files with 14 additions and 8 deletions

View file

@ -290,11 +290,14 @@ _MiWriteBackPage
if (!PageBuffer) return STATUS_NO_MEMORY;
KeRaiseIrql(DISPATCH_LEVEL, &OldIrql);
Hyperspace = MmCreateHyperspaceMapping(Page);
Hyperspace = MiMapPageInHyperSpace(PsGetCurrentProcess(), Page, &OldIrql);
if (!Hyperspace)
{
ExFreePool(PageBuffer);
return STATUS_NO_MEMORY;
}
RtlCopyMemory(PageBuffer, Hyperspace, PAGE_SIZE);
MmDeleteHyperspaceMapping(Hyperspace);
KeLowerIrql(OldIrql);
MiUnmapPageInHyperSpace(PsGetCurrentProcess(), Hyperspace, OldIrql);
DPRINT("MiWriteBackPage(%wZ,%08x%08x,%s:%d)\n", &FileObject->FileName, FileOffset->u.HighPart, FileOffset->u.LowPart, File, Line);
Status = MiSimpleWrite

View file

@ -135,13 +135,16 @@ MiReadFilePage
MmUnmapLockedPages (Mdl->MappedSystemVa, Mdl);
}
OldIrql = KfRaiseIrql(DISPATCH_LEVEL);
PageBuf = MmCreateHyperspaceMapping(*Page);
PageBuf = MiMapPageInHyperSpace(PsGetCurrentProcess(), *Page, &OldIrql);
if (!PageBuf)
{
MmReleasePageMemoryConsumer(RequiredResources->Consumer, *Page);
return STATUS_NO_MEMORY;
}
RtlZeroMemory
((PCHAR)PageBuf+RequiredResources->Amount,
PAGE_SIZE-RequiredResources->Amount);
MmDeleteHyperspaceMapping(PageBuf);
KfLowerIrql(OldIrql);
MiUnmapPageInHyperSpace(PsGetCurrentProcess(), PageBuf, OldIrql);
DPRINT("Read Status %x (Page %x)\n", Status, *Page);