Note: this patch only implements the code paths, they are not excercised yet.
authorSir Richard <sir_richard@svn.reactos.org>
Thu, 22 Jul 2010 20:52:23 +0000 (20:52 +0000)
committerSir Richard <sir_richard@svn.reactos.org>
Thu, 22 Jul 2010 20:52:23 +0000 (20:52 +0000)
commitda305551a9329fabd20a93f6b2f18b3501d1e8a5
tree6d7b9eabf211a05a1dd36050e7d7d6099ea7e255
parentdd68882cd0582611f54c96f65ad2372fdf35fabc
Note: this patch only implements the code paths, they are not excercised yet.
[NTOS]: Implement handling a very special case of "prototype PTE", the one used to map the shared user data for user-mode applications.
[NTOS]: MiCheckVirtualAddress detects this (Windows behavior) and returns a prototype PTE that's marked MM_READONLY. This is our MmSharedUserDataPte from before. This gets sent to MiDispatchFault which calls MiResolveProtoPteFault to handle it. In turn, this calls MiCompleteProtoPteFault. All these code paths have heavy ASSERTions to only allow them to be hit for the shared user data page, however, in the far distant future when prototype PTEs are used for section objects, we'll at least have the right checks and code flow (many of these ASSERTions will then have to be removed).
[NTOS]: The end result is that we also now have STATUS_PAGE_FAULT_TRANSITION, not just STATUS_PAGE_FAULT_DEMAND_ZERO, and that prototype PTEs are somewhat understood and some assumptions have been removed.

svn path=/trunk/; revision=48201
reactos/ntoskrnl/mm/ARM3/pagfault.c