From: Thomas Faber Date: Sun, 5 Jul 2015 19:44:05 +0000 (+0000) Subject: [NTOS:MM] X-Git-Tag: ReactOS-0.4.0~1642 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=64379e8f3ad6108eaaaf52753a2add29b83ed91d;ds=sidebyside [NTOS:MM] - Show that PAGE_NOCACHE also works for image and data sections - Show that *MapViewOfSection returns user space addresses CORE-9808 svn path=/trunk/; revision=68352 --- diff --git a/rostests/kmtests/ntos_mm/MmSection.c b/rostests/kmtests/ntos_mm/MmSection.c index da952559ef0..8cc5281a479 100644 --- a/rostests/kmtests/ntos_mm/MmSection.c +++ b/rostests/kmtests/ntos_mm/MmSection.c @@ -62,6 +62,21 @@ ok_eq_hex(Status, ExpectAtBase ? STATUS_SUCCESS : STATUS_IMAGE_NOT_AT_BASE);\ if (!skip(NT_SUCCESS(Status), "Section not mapped\n")) \ { \ + ok((LONG_PTR)BaseAddress > 0, "BaseAddress = %p\n", BaseAddress); \ + ok_eq_uint(*(PUCHAR)BaseAddress, ExpectM ? 'M' : 0); \ + Status = MmUnmapViewOfSection(PsGetCurrentProcess(), BaseAddress); \ + ok_eq_hex(Status, STATUS_SUCCESS); \ + } \ + BaseAddress = NULL; \ + ViewSize = 0; \ + Status = MmMapViewOfSection(SectionObject, PsGetCurrentProcess(), \ + &BaseAddress, 0, 1, &SectionOffset, \ + &ViewSize, ViewUnmap, 0, \ + PAGE_READONLY | PAGE_NOCACHE); \ + ok_eq_hex(Status, ExpectAtBase ? STATUS_SUCCESS : STATUS_IMAGE_NOT_AT_BASE);\ + if (!skip(NT_SUCCESS(Status), "Section not mapped\n")) \ + { \ + ok((LONG_PTR)BaseAddress > 0, "BaseAddress = %p\n", BaseAddress); \ ok_eq_uint(*(PUCHAR)BaseAddress, ExpectM ? 'M' : 0); \ Status = MmUnmapViewOfSection(PsGetCurrentProcess(), BaseAddress); \ ok_eq_hex(Status, STATUS_SUCCESS); \ @@ -452,6 +467,7 @@ TestPhysicalMemorySection(VOID) ok_eq_hex(Status, STATUS_SUCCESS); if (!skip(NT_SUCCESS(Status), "No view\n")) { + ok((LONG_PTR)Mapping > 0, "Mapping = %p\n", Mapping); EqualBytes = RtlCompareMemory(Mapping, ZeroPageContents, PAGE_SIZE); @@ -476,6 +492,7 @@ TestPhysicalMemorySection(VOID) ok_eq_hex(Status, STATUS_SUCCESS); if (!skip(NT_SUCCESS(Status), "No view\n")) { + ok((LONG_PTR)Mapping > 0, "Mapping = %p\n", Mapping); EqualBytes = RtlCompareMemory(Mapping, ZeroPageContents, PAGE_SIZE); @@ -500,6 +517,7 @@ TestPhysicalMemorySection(VOID) ok_eq_hex(Status, STATUS_SUCCESS); if (!skip(NT_SUCCESS(Status), "No view\n")) { + ok((LONG_PTR)Mapping > 0, "Mapping = %p\n", Mapping); EqualBytes = RtlCompareMemory(Mapping, MyPage, PAGE_SIZE);