reactos/reactos/ntoskrnl
Sir Richard 64d3af216f [NTOS]: A few other fixups to the page fault path:
1) Assert on empty kernel PTE instead of handling it as a bugcheck. Windows ASSERTs too. Also clarify some ASSERTs which Windows also does versus ASSERTs we are only doing due to lack of support for said feature.
2) User page fault path can now distinguish between a user-mode PTE fault, and a kernel-mode fault on a user PDE, both by creating a correct kernel PDE when needed instead of always creating user PTEs, as well as by only touching the UsedPageTableEntry reference counting mechanism when a user-address is in play.
3) Related to #2, also recognize when the faulting PTE is actually a PDE in the self-mapping region -- another scenario when the "user fault" is actually a kernel fault for a user PDE.
4) Add one more path where a Paged Pool PDE fixup can save the day instead of always faulting.
5) Finally, related to #2 and #3, handle the MI_IS_PAGE_TABLE_OR_HYPER_ADDRESS scenario for a User PDE by treating it as a user fault. The code looks deceptively similar but there are slight differences which require the separate codepaths with some duplicated code. The magic is in the ordering.
In trunk, these changes should not cause any regressions (let's hope so). On the internal VAD-based Virtual Memory branch, they now allow booting to 3rd stage and a fully usable ReactOS environment. MEMORY_AREA_VIRTUAL_MEMORY is gone on that branch. It's coming.
[NTOS]: Use PAGE_READWRITE as hardcoded protection instead of PAGE_EXECUTE_READWRITE -- the difference is meaningless on ReactOS Mm but actually causes issues on ARM3 with VADs.

svn path=/trunk/; revision=55938
2012-02-29 23:11:21 +00:00
..
cache [NTOSKRNL] 2012-02-28 09:30:53 +00:00
cc [NEWCC] 2012-02-23 12:03:06 +00:00
config [NTOSKRNL] 2012-02-25 22:27:27 +00:00
dbgk [NTOSKRNL]: Implement ProcessDebugObjectHandle and a bunch more query/set process classes. Fixes Winetests. 2012-02-20 06:42:02 +00:00
ex [NTOS]: Handle memory allocation failures correctly, supporting all the required debug and caller flags (such as RAISE_ON_FAILURE). We no longer simply just return "NULL" in failure cases. 2012-02-27 08:21:15 +00:00
fsrtl [NTOSKRNL] 2012-02-29 20:11:51 +00:00
fstub [NTOSKRNL] 2012-01-26 20:06:08 +00:00
inbv [USB-BRINGUP-TRUNK] 2012-01-20 20:58:46 +00:00
include [NTOSKRNL] 2012-02-29 20:03:46 +00:00
io [NTOSKRNL] 2012-02-29 18:50:07 +00:00
kd [NTOSKRNL] 2012-02-18 13:39:08 +00:00
kd64 [NTOSKRNL] 2012-02-18 13:39:08 +00:00
kdbg [FREELDR][NTOSKRNL][TOOLS] 2012-02-25 21:45:56 +00:00
ke [NTOS]: Implementation of the "Generic DPC" functionality from Windows NT 5.2, which is a forced-synchronization all-CPU DPC callback mechanism. Implemented, and exported all APIs requireted, and added to NDK. NOTE: This implementation only works for Single Processor systems (NT_UP) since this is all that ReactOS currently works on. 2012-02-25 20:40:06 +00:00
lpc [USB-BRINGUP-TRUNK] 2012-01-20 20:58:46 +00:00
mm [NTOS]: A few other fixups to the page fault path: 2012-02-29 23:11:21 +00:00
ob [NTOSKRNL]: Fix ntdll:om winetest. When querying for filenames if the caller did not specify a buffer large enough (which they normally don't, initially), we would just fail but not tell them how large to request it (so they'd get back an uninitailized huge value). 2012-02-20 00:11:24 +00:00
po [NEWCC] 2012-02-23 12:03:06 +00:00
ps [NTOSKRNL] 2012-02-22 21:18:56 +00:00
rtl [USB-BRINGUP-TRUNK] 2012-01-20 20:58:46 +00:00
se [NTOSKRNL]: Fix the zombie fix. Should fix toolhelp tests. 2012-02-20 07:30:26 +00:00
tests [USB-BRINGUP-TRUNK] 2012-01-20 20:58:46 +00:00
vdm [USB-BRINGUP-TRUNK] 2012-01-20 20:58:46 +00:00
vf [USB-BRINGUP-TRUNK] 2012-01-20 20:58:46 +00:00
wmi [USB-BRINGUP-TRUNK] 2012-01-20 20:58:46 +00:00
CMakeLists.txt [FSRTL] 2012-02-29 09:18:01 +00:00
KrnlFun.c [USB-BRINGUP-TRUNK] 2012-01-20 20:58:46 +00:00
ntdll.S [USB-BRINGUP-TRUNK] 2012-01-20 20:58:46 +00:00
ntoskrnl.rc [USB-BRINGUP-TRUNK] 2012-01-20 20:58:46 +00:00
ntoskrnl.spec [NTOS]: Implementation of the "Generic DPC" functionality from Windows NT 5.2, which is a forced-synchronization all-CPU DPC callback mechanism. Implemented, and exported all APIs requireted, and added to NDK. NOTE: This implementation only works for Single Processor systems (NT_UP) since this is all that ReactOS currently works on. 2012-02-25 20:40:06 +00:00
ntoskrnl_amd64.lds [FREELDR][NTOSKRNL][TOOLS] 2012-02-25 21:45:56 +00:00
ntoskrnl_arm.lds [FREELDR][NTOSKRNL][TOOLS] 2012-02-25 21:45:56 +00:00
ntoskrnl_i386.lds [FREELDR][NTOSKRNL][TOOLS] 2012-02-25 21:45:56 +00:00
ntoskrnl_powerpc.lds [FREELDR][NTOSKRNL][TOOLS] 2012-02-25 21:45:56 +00:00
sysfuncs.lst [USB-BRINGUP-TRUNK] 2012-01-20 20:58:46 +00:00