- Instead of getting the data from the window station and other strange places, the values are now mostly stored in a global variable. This is possible because NtUserSystemParametersInfo should fail anyway when being called from a non-interactive windowstation (tested on windows XP).
- WM_SETTINGCHANGE is now properly sent not posted to all toplevel Windows also passing the registry string as the lParam value (strings could need some testing).
- SystemMetrics are now set and updated from system parameters.
- Most values are now properly loaded from registry and also saved.
- user32_winetest sysparams: before: 634 executed / 235 failures, after: 1093 executed, 11 failures
- Fixes the non-bold caption font in 2nd stage.
- Implements a number SPI codes.
- Implements helper functions for registry and file access
Thanks to all testers for all the regression testing :)
See issue #4595 for more details.
svn path=/trunk/; revision=41604
- First, switch to using system PTEs as it should've been from the beginning. Our original implementation was broken and prone to race conditions, which Dmitry graciously fixed.
- We can now remove the MiZeroPageInternal hack that was used as a way to avoid deadlock/contention in the zero paths.
- Zeroing PTEs is done at DPC level in ReactOS, to avoid ReactOS-specific race issues. In Windows NT, this operation is always done at passive.
- Zeroing PTEs are similar to hyperspace PTEs, but they can be mapped in chunks for optimization.
- ReactOS does not currently make use of this functionality, so zeroing is pretty slow, especially on bootup if you have lots of memory (all RAM is zeroed).
- The existing ReactOS "compatibility layer" for hyperspace was augmented to seamlessly use the new zeroing PTE API.
- You must now unmap zeroing PTEs -- MiZeroPage was modified to do this.
- System PTE binning, NBQUEUES and SLISTS would optimize this further. TBD.
- Once again, tested on the trinity of supported emulators.
svn path=/trunk/; revision=41578
- Fix boot.
- The lack of colorful poetry is brought to you by cogent human beings on the West Coast whom you should be thankful haven't gone to bed yet.
svn path=/trunk/; revision=41577
- Implement System PTE allocator (MiReserveAlignedSystemPtes and MiReserveSystemPtes). Very simple yet functional, no optimizes for now.
- Allocate 32 zeoring PTEs from the System PTE pool.
- Not used yet, only the allocation is made to test the current framework.
- Tested on VirtualBox, QEMU and VMWare with RAM sizes from 128MB to 1536MB with no problems.
svn path=/trunk/; revision=41575
- DO NOT MAP HYPERSPACE PTEs as GLOBAL! They are now mapped as local, which might fix some really strange bugs that could've occured in the past.
- Use MiPteToAddress instead of manually doing the bitmagic when mapping a page into hyperspace.
svn path=/trunk/; revision=41574
- Secondly, initialize hyperspace in ARM³ now, at the correct place:
- Also, create the hyperspace PDE here, and not in FreeLDR, which was incorrect in the first place.
- This might help booting Windows/WinLDR.
- Install-tested w/ networking, with no issues found, on:
- Virtual Box 2.4
- VMWare 6.5
- QEMU 0.9.0
- PEBKAC?
svn path=/trunk/; revision=41573
- Add a new flag to MmGetContigousPages to specify if these pages should be zeroed or not. Allows the nonpaged pool pages not to get automatically zeroed when allocated (the NP pool allocator can do this by itself later). This allows initial nonpaged pool to be allocated before hyperspace is ready.
svn path=/trunk/; revision=41572
- ARM³ (Alternate ReactOS Memory Management Module) "stuff" is not ACORN Risc Machines (ARM) Port "stuff".
- We are lucky this user made this change before the rest of the code was checked in -- hyperspace, MDLs, nonpaged pool, kernel stacks, I/O mappings, noncached memory and contigous memory will soon all be built on ARM³ -- good thing this wasn't the case yet!
- Recommend this user gets banned for reverting code without approval within the 24hr grace period in ReactOS guidelines.
- If you have a bug to report, use Bugzilla, not your head as a sledgehammer.
svn path=/trunk/; revision=41570
modified dll/win32/kernel32/misc/actctx.c
modified dll/win32/kernel32/misc/lang.c
C89 compliance
modified dll/win32/kernel32/k32.h
Include <limits.h>
modified dll/win32/kernel32/misc/res.c
Hey Arch, instead of copying and pasting definitions from <wine/list.h>, why don't you include it?
svn path=/trunk/; revision=41560
Explicitly include <pseh/pseh2.h>
modified dll/ntdll/ldr/utils.c
Use ANSI C variadic macros, instead of hacks
ntdll now compiles with Visual C++
svn path=/trunk/; revision=41556