[ros-diffs] [cgutman] 56038: [NTOSKRNL] - Use ARM3 hyperspace mapping calls instead of the legacy RosMm API

cgutman at svn.reactos.org cgutman at svn.reactos.org
Mon Mar 5 17:08:02 UTC 2012


Author: cgutman
Date: Mon Mar  5 17:08:02 2012
New Revision: 56038

URL: http://svn.reactos.org/svn/reactos?rev=56038&view=rev
Log:
[NTOSKRNL]
- Use ARM3 hyperspace mapping calls instead of the legacy RosMm API

Modified:
    trunk/reactos/ntoskrnl/cache/section/io.c
    trunk/reactos/ntoskrnl/cache/section/reqtools.c

Modified: trunk/reactos/ntoskrnl/cache/section/io.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/cache/section/io.c?rev=56038&r1=56037&r2=56038&view=diff
==============================================================================
--- trunk/reactos/ntoskrnl/cache/section/io.c [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/cache/section/io.c [iso-8859-1] Mon Mar  5 17:08:02 2012
@@ -290,11 +290,14 @@
 
 	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

Modified: trunk/reactos/ntoskrnl/cache/section/reqtools.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/cache/section/reqtools.c?rev=56038&r1=56037&r2=56038&view=diff
==============================================================================
--- trunk/reactos/ntoskrnl/cache/section/reqtools.c [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/cache/section/reqtools.c [iso-8859-1] Mon Mar  5 17:08:02 2012
@@ -135,13 +135,16 @@
         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);
 




More information about the Ros-diffs mailing list