[NTOS]: Handle faults on user-mode addresses, from user-mode processes, if they are owned by ARM3, so they can be forwarded to the VAD fault handler.

svn path=/trunk/; revision=48164
This commit is contained in:
Sir Richard 2010-07-21 18:09:31 +00:00
parent e6cdd4d0fd
commit f9444f0c52

View file

@ -284,6 +284,11 @@ MmAccessFault(IN BOOLEAN StoreInstruction,
* can go away.
*/
MemoryArea = MmLocateMemoryAreaByAddress(MmGetKernelAddressSpace(), Address);
if (!(MemoryArea) && (Address <= MM_HIGHEST_VAD_ADDRESS))
{
/* Could this be a VAD fault from user-mode? */
MemoryArea = MmLocateMemoryAreaByAddress(MmGetCurrentAddressSpace(), Address);
}
if ((!(MemoryArea) && ((ULONG_PTR)Address >= (ULONG_PTR)MmPagedPoolStart)) ||
((MemoryArea) && (MemoryArea->Type == MEMORY_AREA_OWNED_BY_ARM3)))
{
@ -292,7 +297,7 @@ MmAccessFault(IN BOOLEAN StoreInstruction,
//
DPRINT("ARM3 fault %p\n", MemoryArea);
return MmArmAccessFault(StoreInstruction, Address, Mode, TrapInformation);
}
}
/* Keep same old ReactOS Behaviour */
if (StoreInstruction)