reactos.git
13 years ago[HEAP]
Aleksey Bragin [Tue, 12 Oct 2010 18:34:48 +0000 (18:34 +0000)]
[HEAP]
- Implement heap validation support.

svn path=/trunk/; revision=49126

13 years ago[DDK]
Amine Khaldi [Tue, 12 Oct 2010 16:39:38 +0000 (16:39 +0000)]
[DDK]
- Fix ClassDebugPrint prototype.

svn path=/trunk/; revision=49125

13 years agoAttempt nr. 2: link wined3d to crt on amd64 build.
Kamil Hornicek [Tue, 12 Oct 2010 15:02:31 +0000 (15:02 +0000)]
Attempt nr. 2: link wined3d to crt on amd64 build.

svn path=/trunk/; revision=49124

13 years agoFix amd64 build.
Kamil Hornicek [Tue, 12 Oct 2010 14:24:58 +0000 (14:24 +0000)]
Fix amd64 build.

svn path=/trunk/; revision=49123

13 years ago[NTDLL]
Aleksey Bragin [Tue, 12 Oct 2010 09:03:39 +0000 (09:03 +0000)]
[NTDLL]
- Don't access unitialized memory. Caught thanks to a new heap manager, and this fixes all weird actctx exceptions in kernel32_winetest heap.

svn path=/trunk/; revision=49122

13 years ago[Wine Tests]
James Tabor [Mon, 11 Oct 2010 15:12:47 +0000 (15:12 +0000)]
[Wine Tests]
- Update the only two tests that I tested and know that does not have RTL support. The Right To Left support will be another comprehensive change that can be done in a non intrusive way as long no one uses it.

svn path=/trunk/; revision=49117

13 years ago[WINED3D]
Kamil Hornicek [Mon, 11 Oct 2010 13:56:39 +0000 (13:56 +0000)]
[WINED3D]
Update wined3d, ddraw, d3d8 and d3d9 to Wine 1.3.4.

svn path=/trunk/; revision=49116

13 years ago[win32k]
Giannis Adamopoulos [Mon, 11 Oct 2010 13:01:46 +0000 (13:01 +0000)]
[win32k]
- Remove the FreeLParam 'feature' from win32k. This hack allowed us to post messages that contain pointers. However we don't do it anymore so we can also remove this as well
- Add keyboard messages to the list with Hardware messages and not in the list with post messages

svn path=/trunk/; revision=49115

13 years ago[win32k]
Giannis Adamopoulos [Mon, 11 Oct 2010 10:58:33 +0000 (10:58 +0000)]
[win32k]
-Move checks for active hooks in co_HOOK_CallHooks

svn path=/trunk/; revision=49114

13 years ago[HEAP]
Aleksey Bragin [Mon, 11 Oct 2010 10:29:41 +0000 (10:29 +0000)]
[HEAP]
- Fix DWORD -> ULONG in function definitions too.

svn path=/trunk/; revision=49113

13 years ago[NDK]
Pierre Schweitzer [Mon, 11 Oct 2010 10:20:40 +0000 (10:20 +0000)]
[NDK]
Fixed build

svn path=/trunk/; revision=49112

13 years ago[HEAP]
Aleksey Bragin [Mon, 11 Oct 2010 08:39:04 +0000 (08:39 +0000)]
[HEAP]
- Fix RtlQuery/SetHeapInformation prototypes, move them to an appropriate place.
- Implement RtlQuery/SetHeapInformation.
- Implement in-place block growing.
- Amount of winetest heap failures is down to 6 (3 exceptions still happen).

svn path=/trunk/; revision=49111

13 years ago[ADVAPI32]
Aleksey Bragin [Mon, 11 Oct 2010 07:47:52 +0000 (07:47 +0000)]
[ADVAPI32]
- Katayama Hirofumi: Use DataLength field in RegEnumValueW instead of DataOffset.
- Roel Messiant: Test behaviour in Vista and apply same fix to RegEnumValueA.
See issue #2492 for more details.

svn path=/trunk/; revision=49110

13 years ago[Win32k|User32]
James Tabor [Mon, 11 Oct 2010 03:41:41 +0000 (03:41 +0000)]
[Win32k|User32]
- Move to the new window structure. Window Object served us well.

svn path=/trunk/; revision=49109

13 years agoRC file fixes for inconsistences shown up by the recent dll work in r49105.
Daniel Reimer [Sun, 10 Oct 2010 23:29:32 +0000 (23:29 +0000)]
RC file fixes for inconsistences shown up by the recent dll work in r49105.

svn path=/trunk/; revision=49107

13 years agoMore resource fixes making warnings vanish when built with cmake.
Daniel Reimer [Sun, 10 Oct 2010 22:36:35 +0000 (22:36 +0000)]
More resource fixes making warnings vanish when built with cmake.

svn path=/trunk/; revision=49103

13 years ago[HEAP]
Aleksey Bragin [Sun, 10 Oct 2010 21:52:48 +0000 (21:52 +0000)]
[HEAP]
- Properly set HEAP_GROWABLE flag if dwMaximumSize is 0 in HeapCreate. Also check for dwMaximumSize validity. Fixes out-of-memory problems when running "heavy" applications like Office 2003 setup with a new heap manager (which actually respects HEAP_GROWABLE flag).

svn path=/trunk/; revision=49102

13 years agoReplace \" with "" in resource files. This makes CMAKE build way more silent. Needs...
Daniel Reimer [Sun, 10 Oct 2010 14:45:03 +0000 (14:45 +0000)]
Replace \" with "" in resource files. This makes CMAKE build way more silent. Needs to be merged.
TBD find a way to silent warnings happening due to \n in strings.

svn path=/trunk/; revision=49096

13 years ago[NTOSKRNL]
Eric Kohl [Sun, 10 Oct 2010 11:31:51 +0000 (11:31 +0000)]
[NTOSKRNL]
Implement SeImpersonateClientEx() and simplify SeImpersonateClient().

svn path=/trunk/; revision=49091

13 years ago[HEAP]
Aleksey Bragin [Sun, 10 Oct 2010 11:16:55 +0000 (11:16 +0000)]
[HEAP]
- Add 64 bit compatibility.

svn path=/trunk/; revision=49090

13 years ago[PAINT]
Benedikt Freisen [Sun, 10 Oct 2010 09:57:44 +0000 (09:57 +0000)]
[PAINT]
- apply patch by Black_Fox (see bug 5434)
- fix minor bugs introduced by it
- generalize changes related to mirroring rectangular selections to free form selections
- solve problem regarding selection contents update

svn path=/trunk/; revision=49089

13 years ago[WIDL]
Eric Kohl [Sat, 9 Oct 2010 23:13:57 +0000 (23:13 +0000)]
[WIDL]
- Revert r49085 and r49086.

svn path=/trunk/; revision=49087

13 years ago[WIDL]
Eric Kohl [Sat, 9 Oct 2010 22:54:37 +0000 (22:54 +0000)]
[WIDL]
Fix Unix build.

svn path=/trunk/; revision=49086

13 years ago[WIDL]
Eric Kohl [Sat, 9 Oct 2010 22:41:05 +0000 (22:41 +0000)]
[WIDL]
- Sync to Wine-1.3.4
- Bugfix: The switchtype attribute of non-encapsulated unions was not  propagated to a type but only to its aliases.

svn path=/trunk/; revision=49085

13 years agoUpdate rapps database
Daniel Reimer [Sat, 9 Oct 2010 22:36:58 +0000 (22:36 +0000)]
Update rapps database

svn path=/trunk/; revision=49084

13 years ago[URLMON]
Cameron Gutman [Sat, 9 Oct 2010 21:52:25 +0000 (21:52 +0000)]
[URLMON]
- Sync to WINE 1.3.4
[WININET]
- Add a forgotten change to the diff
[WINHTTP]
- Sync to WINE 1.3.4
- Sync the inet_ntop.c change from wininet
- Update the diff

svn path=/trunk/; revision=49083

13 years ago[PSDK]
Cameron Gutman [Sat, 9 Oct 2010 21:10:39 +0000 (21:10 +0000)]
[PSDK]
- Add INET_E_USE_DEFAULT_SETTING definition
[WINE]
- Add iscntrlW() definition

svn path=/trunk/; revision=49082

13 years ago[WININET]
Cameron Gutman [Sat, 9 Oct 2010 20:08:18 +0000 (20:08 +0000)]
[WININET]
- Sync wininet to WINE 1.3.4
- Regenerate wininet_ros.diff so that it actually applies against current WINE head

svn path=/trunk/; revision=49081

13 years ago[WININET]
Cameron Gutman [Sat, 9 Oct 2010 18:40:16 +0000 (18:40 +0000)]
[WININET]
- Add a ROS-specific change that was missed during the last winesync to fix winsock error handling
- Remove the CP_UNIXCP definition
- Use WSASetLastError instead of errno in inet_ntop.c
- Thanks to IRC:igorko for pointing out the bug

svn path=/trunk/; revision=49078

13 years ago[HEAP]
Aleksey Bragin [Sat, 9 Oct 2010 13:02:34 +0000 (13:02 +0000)]
[HEAP]
- Move (and cleanup) private heap definitions and structure to a standalone header file heap.h. It's explicitly included in heap_rewrite.c and heapdbg.c to prevent conflicts with the existing heap manager in heap.c.

svn path=/trunk/; revision=49071

13 years ago[HEAP]
Aleksey Bragin [Sat, 9 Oct 2010 12:49:30 +0000 (12:49 +0000)]
[HEAP]
- Implement setting/getting heap user values and flags (very easy provided heap design is now proper). Amount of winetest failures is down to 12 (but 3 crashes in child processes).

svn path=/trunk/; revision=49069

13 years ago[RAPPS]
Amine Khaldi [Sat, 9 Oct 2010 10:35:35 +0000 (10:35 +0000)]
[RAPPS]
Igor Paliychuk:
- Update some broken links.
- Changed the cyrillic "P" to a latin "P" in the beginning of the VBox driver's russian and ukrainian descriptions (rapps doesn't display it when it's cyrillic).

svn path=/trunk/; revision=49067

13 years ago[NTDLL]
Pierre Schweitzer [Sat, 9 Oct 2010 10:01:37 +0000 (10:01 +0000)]
[NTDLL]
Fixed build

svn path=/trunk/; revision=49065

13 years ago[RTL]
Aleksey Bragin [Sat, 9 Oct 2010 09:19:33 +0000 (09:19 +0000)]
[RTL]
- Fix RtlSetUserFlagsHeap declaration and definition.

svn path=/trunk/; revision=49064

13 years ago[KERNEL32]
Aleksey Bragin [Sat, 9 Oct 2010 09:15:50 +0000 (09:15 +0000)]
[KERNEL32]
- Revert incorrect changes from 34404 and 40910: RtlSetUserFlagsHeap() doesn't set usual heap flags, it sets special user-settable heap entry flags. With the new heap manager such usage corrupts heap integrity (not to say prototype of this function is incorrect).
- RtlReAllocateHeap() is supposed to copy user values and flags so there is no need to set them afterwise again.
- Fix a typo in comments.

svn path=/trunk/; revision=49063

13 years ago[HEAP]
Aleksey Bragin [Fri, 8 Oct 2010 20:17:39 +0000 (20:17 +0000)]
[HEAP]
- Roel Messiant: Fix infinite loop in RtlDestroyHeap if heap contained big blocks.

svn path=/trunk/; revision=49058

13 years ago[HEAP]
Aleksey Bragin [Fri, 8 Oct 2010 19:30:23 +0000 (19:30 +0000)]
[HEAP]
- Set proper heap flags (tail and free checking) in case heap validation is enabled. Fixes another bunch of winetests.

svn path=/trunk/; revision=49057

13 years ago[EVENTLOG]
Eric Kohl [Fri, 8 Oct 2010 18:48:54 +0000 (18:48 +0000)]
[EVENTLOG]
Rename the EVENTSOURCE struct to LOGHANDLE because it is currently used like a handle object. The EVENTSOURCE struct will be added again in one of the next commits.

svn path=/trunk/; revision=49055

13 years ago[HEAP]
Aleksey Bragin [Fri, 8 Oct 2010 09:47:48 +0000 (09:47 +0000)]
[HEAP]
- Roel Messiant: Remove old-style Peb->ProcessHeaps assignment from RTL, it's already done by MM.
- Roel Messiant: Fix a typo (missing else) between two if branches, which fixes commit routine support.
- Properly save requested size if 0 was given (1 should be allocated, but 0 saved as a requested amount). Fixes winetests.
- Remove unnecessary dprints.

svn path=/trunk/; revision=49048

13 years ago[NTDLL]
Aleksey Bragin [Thu, 7 Oct 2010 21:12:10 +0000 (21:12 +0000)]
[NTDLL]
- Load image execution options before creating process heap (so that GlobalFlag overrides can be taken into account).
- Make LdrQueryImageFileExecutionOptions avoid heap usage when possible (and when it's not possible, fail with out of memory status).
- Fixes a dramatic count of ~100 failures in "kernel32_winetest heap".

svn path=/trunk/; revision=49045

13 years ago[NTOSKRNL]
Pierre Schweitzer [Thu, 7 Oct 2010 20:20:10 +0000 (20:20 +0000)]
[NTOSKRNL]
On boot, while loading drivers, make starting Loader Block available to the whole kernel to let drivers calling on-boot functions that may need it.
One of them will be implemented later.

svn path=/trunk/; revision=49044

13 years ago[NTOSKRNL]
Pierre Schweitzer [Thu, 7 Oct 2010 20:08:24 +0000 (20:08 +0000)]
[NTOSKRNL]
Fixed a FIXME in ARC names by implementing IopStoreSystemPartitionInformation(). This make ReactOS writing boot paths to registry.

svn path=/trunk/; revision=49043

13 years ago[NTOSKRNL]
Pierre Schweitzer [Thu, 7 Oct 2010 19:58:22 +0000 (19:58 +0000)]
[NTOSKRNL]
Don't ignore IopCreateArcNames() return while booting.
At the moment, it's just returning STATUS_SUCCES but it will be changed later.

svn path=/trunk/; revision=49042

13 years agoFix indentation. No code changes.
Eric Kohl [Thu, 7 Oct 2010 19:58:04 +0000 (19:58 +0000)]
Fix indentation. No code changes.

svn path=/trunk/; revision=49041

13 years ago[FREELDR]
Pierre Schweitzer [Thu, 7 Oct 2010 19:16:09 +0000 (19:16 +0000)]
[FREELDR]
Fix CDs checksum computation
[NTOSKRNL]
Fix ARC names accordingly

svn path=/trunk/; revision=49040

13 years ago[win32k]
Giannis Adamopoulos [Thu, 7 Oct 2010 19:14:49 +0000 (19:14 +0000)]
[win32k]
- Fix an ancient FIXME in PATH_PathToRegion

svn path=/trunk/; revision=49039

13 years ago[NTOS]: Fix copy/paste error.
Sir Richard [Thu, 7 Oct 2010 17:41:20 +0000 (17:41 +0000)]
[NTOS]: Fix copy/paste error.

svn path=/trunk/; revision=49037

13 years ago[NTOS]: Hackfix a hack. Should get rid of the recent VAD assert in user32/bpp changes.
Sir Richard [Thu, 7 Oct 2010 17:35:25 +0000 (17:35 +0000)]
[NTOS]: Hackfix a hack. Should get rid of the recent VAD assert in user32/bpp changes.

svn path=/trunk/; revision=49036

13 years ago[NTOS]: Add support for user-mode VAD faults on page tables (just a couple lines...
Sir Richard [Thu, 7 Oct 2010 17:27:23 +0000 (17:27 +0000)]
[NTOS]: Add support for user-mode VAD faults on page tables (just a couple lines of extra code).
[NTOS]: Add support for user-mode VAD demand zero faults.
[NTOS]: Remove broken ASSERT.

svn path=/trunk/; revision=49035

13 years ago[HEAP]
Aleksey Bragin [Thu, 7 Oct 2010 17:05:29 +0000 (17:05 +0000)]
[HEAP]
- Fix allocated/free memory fillers to match those Windows uses (winetests)
- Add missing coalesce-on-free flag check in RtlCreateHeap
- Turn on tail check/pattern filling in RtlAllocateHeap.
- Add extra stuff storage support in RtlAllocateHeap and its helpers.
- Set win32 statuses where necessary.
- Return success in RtlValidateHeap to reduce spam when running winetest.

svn path=/trunk/; revision=49034

13 years ago[NTDLL]
Aleksey Bragin [Thu, 7 Oct 2010 16:51:19 +0000 (16:51 +0000)]
[NTDLL]
- Fix a typo which always set page heap enabled to true.

svn path=/trunk/; revision=49033

13 years ago[NTOS]: My attempt at making bugchecks a thing of the past has failed, someone has...
Sir Richard [Thu, 7 Oct 2010 13:52:42 +0000 (13:52 +0000)]
[NTOS]: My attempt at making bugchecks a thing of the past has failed, someone has caught the typo. Bugchecks will now happen in ReactOS again instead of being ignored. Maybe you can "forget" to merge this one with the release branch? ;-)

svn path=/trunk/; revision=49031

13 years ago[WIN32K]
Aleksey Bragin [Thu, 7 Oct 2010 07:56:26 +0000 (07:56 +0000)]
[WIN32K]
- Roel Messiant: Return correct address in the user heap commit routine. Should fix boot with the new heap manager.

svn path=/trunk/; revision=49029

13 years ago[ADVAPI32]
Aleksey Bragin [Thu, 7 Oct 2010 07:21:08 +0000 (07:21 +0000)]
[ADVAPI32]
- Roel Messiant: Properly handle STATUS_BUFFER_TOO_SMALL in RegEnumValueW implementation.
See issue #2492 for more details.

svn path=/trunk/; revision=49028

13 years agoCarlo Bramini <carlo DOT bramix AT libero DOT it>
Matthias Kupfer [Wed, 6 Oct 2010 22:11:12 +0000 (22:11 +0000)]
Carlo Bramini <carlo DOT bramix AT libero DOT it>
- Fix for render status bar after changing line wrap and flicker issue.
- See issue #5635 for details.

svn path=/trunk/; revision=49027

13 years ago[RTL]
Eric Kohl [Wed, 6 Oct 2010 20:43:51 +0000 (20:43 +0000)]
[RTL]
Change RtlLockBootStatusData prototype according to http://cookp.com/%2F/thread/1111206/how%20can%20i%20detect%20last%20boot%20success

svn path=/trunk/; revision=49026

13 years ago[NTDLL]
Aleksey Bragin [Wed, 6 Oct 2010 20:34:30 +0000 (20:34 +0000)]
[NTDLL]
- LoadImageFileExecutionOptions() improvements:
 * Apply certain heap flags if the process is being debugged (only if NtGlobalFlags is not overridden).
 * Implement enabling page heap and reading image-specific configuration values.
- Add page heap configuration values to the Heap Manager.

svn path=/trunk/; revision=49025

13 years ago- Respectively fix incorrect data type for GlobalFlags in ReactOS registry.
Aleksey Bragin [Wed, 6 Oct 2010 17:25:15 +0000 (17:25 +0000)]
- Respectively fix incorrect data type for GlobalFlags in ReactOS registry.

svn path=/trunk/; revision=49022

13 years ago[NTDLL]
Aleksey Bragin [Wed, 6 Oct 2010 17:18:22 +0000 (17:18 +0000)]
[NTDLL]
- Fix loading of GlobalFlags in Image File Execution Options. I really wonder who had that brilliant idea that bitwise flags would be stored as a string in the registry.
- If there is a GlobalFlags value specified in the registr for that specific image, it means that value should overwrite NtGlobalFlags. Fix that too (previously it was ORing which made no sense).

svn path=/trunk/; revision=49021

13 years ago[CMD]
Kamil Hornicek [Wed, 6 Oct 2010 16:44:09 +0000 (16:44 +0000)]
[CMD]
Use the full name we get from SearchForExecutable when building the command line for CreateProcess so we get proper name in argv[0] later.

svn path=/trunk/; revision=49020

13 years ago[NTOS]: Fix bugs in the VAD algorithms, we should be rounding up, not down.
Sir Richard [Wed, 6 Oct 2010 16:25:30 +0000 (16:25 +0000)]
[NTOS]: Fix bugs in the VAD algorithms, we should be rounding up, not down.

svn path=/trunk/; revision=49019

13 years ago[NTOSKRNL]
Timo Kreuzer [Wed, 6 Oct 2010 14:39:56 +0000 (14:39 +0000)]
[NTOSKRNL]
Alternative workaround for pentium lock errata: Instead of burdening the page fault handler, just mark the IDT page as Write-Through if the bug is present. According to http://www.rcollins.org/Errata/Dec97/F00FBug.html it shall prevent the lock up. Please test. Dedicated to elhoir.

svn path=/trunk/; revision=49018

13 years ago- Implement monitor bitmap support for the display dialog
Ged Murphy [Wed, 6 Oct 2010 14:13:00 +0000 (14:13 +0000)]
- Implement monitor bitmap support for the display dialog
- Fix incorrect codepage values
- Look for applets in windows dir as well as system dir
- Patch by Carlo Bramix
See issue #3158 for more details.

svn path=/trunk/; revision=49017

13 years ago[NTOS]: Temporary debugging.
Sir Richard [Wed, 6 Oct 2010 13:32:58 +0000 (13:32 +0000)]
[NTOS]: Temporary debugging.

svn path=/trunk/; revision=49016

13 years ago[win32k]
Giannis Adamopoulos [Wed, 6 Oct 2010 13:10:00 +0000 (13:10 +0000)]
[win32k]
- co_UserDestroyWindow: Send WM_PARENTNOTIFY message in correct order

svn path=/trunk/; revision=49014

13 years agoremove svn:merginfo
Timo Kreuzer [Wed, 6 Oct 2010 12:30:23 +0000 (12:30 +0000)]
remove svn:merginfo

svn path=/trunk/; revision=49013

13 years ago[NTOSKRNL]
Timo Kreuzer [Wed, 6 Oct 2010 12:16:51 +0000 (12:16 +0000)]
[NTOSKRNL]
- Add amd64 versions of MI_MAKE_PROTOTYPE_PTE and MiProtoPteToPte
- Remove outdated external declarations
- disable deprecated amd64 code
- use MiFillSystemPageDirectory only for 2 paging levels
- Fixes amd64 build

svn path=/trunk/; revision=49012

13 years ago[win32k]
Giannis Adamopoulos [Wed, 6 Oct 2010 11:14:58 +0000 (11:14 +0000)]
[win32k]
- Send WM_PARENTNOTIFY message when a window is destroyed

svn path=/trunk/; revision=49011

13 years ago[RTL/HEAP]
Aleksey Bragin [Wed, 6 Oct 2010 09:19:24 +0000 (09:19 +0000)]
[RTL/HEAP]
- Implement missing parts of a virtual block allocations support.
- Minor fixes to handling extra stuff in heap blocks.
- Wine's heap regression tests now run through the end without crashing and show 277 failures.

svn path=/trunk/; revision=49010

13 years agoLame... build fix.
Sir Richard [Wed, 6 Oct 2010 04:34:36 +0000 (04:34 +0000)]
Lame... build fix.

svn path=/trunk/; revision=49008

13 years ago[RTL/HEAP]
Aleksey Bragin [Tue, 5 Oct 2010 21:43:48 +0000 (21:43 +0000)]
[RTL/HEAP]
- First commit of a heap manager rewrite. It introduces a totally new heap manager, with the following features:
* Actually resembles real NT's heap manager;
* Based on data structures similar to Windows 2003 and Vista+'s heap structures;
* Supporting advanced heap flags (e.g. useful for debugging);
* Substantially lower fragmentation rates (and thus speed and reliability) than the existing Wine's implementation. It's going to be further enhanced by adding a frontend allocator (for example, as lookaside lists, or as a Low Fragmentation Heap alike frontend in Vista+ systems);
* Real support for user-defined flags and native support for user-defined values;
* Native support for a custom commit routine, which is very important for trunk's win32 subsystem;
* Reserving, committing, decommitting and freeing on the fly, unlike existing heap manager which prefers to reserve and commit as much as possible, and doesn't decommit when it's no longer necessary;
* Support for per process heaps, with a proper lock;
* Reserved support for a special so-called debug heap allocator (to be implemented in heapdbg.c) which will be useful for finding heap corruptions.

The committed code is a result of a month of work, and is a heavy work-in-progress one. It already implements the bare minimum required to boot to 3rd stage and run FireFox 3, however many rare codepaths are not implemented yet and there is some maintenance work to do (e.g. move structures and defines to a standalone header file). A list of used references is stated in the header of a source file for now.

svn path=/trunk/; revision=49007

13 years ago- Fix build from 49005.
James Tabor [Tue, 5 Oct 2010 20:18:04 +0000 (20:18 +0000)]
- Fix build from 49005.

svn path=/trunk/; revision=49006

13 years ago[Win32k|User32]
James Tabor [Tue, 5 Oct 2010 20:13:32 +0000 (20:13 +0000)]
[Win32k|User32]
- Implement NtUserGetMenuIndex, see Bug 5528.

svn path=/trunk/; revision=49005

13 years ago[NTOS]: High-level interface fixes to NtAllocateVirtualMemory/NtFreeVirtualMemory:
Sir Richard [Tue, 5 Oct 2010 20:00:32 +0000 (20:00 +0000)]
[NTOS]: High-level interface fixes to NtAllocateVirtualMemory/NtFreeVirtualMemory:
        - Validate MEM_LARGE_PAGES, MEM_PHYSICAL flags. Check for permission to use MEM_LARGE_PAGES.
        - Validate protection mask.
        - Validate MEM_RELEASE and MEM_DECOMMIT.
        - Perform correct SEH in NtFreeVirtualMemory.
        - Protect against overflows past VAD/User address ranegs.
        - Only reference the process by handle if this isn't already the current process.
        - If this isn't the current process, attach to it during the duration of the VM operation.

svn path=/trunk/; revision=49004

13 years ago[RTL]
Aleksey Bragin [Tue, 5 Oct 2010 19:33:42 +0000 (19:33 +0000)]
[RTL]
- Fix heap code to actually use the new lock instead of using RTL_CRITICAL_SECTION.
- Fix a ROUND_UP and ROUND_DOWN macros: it is a *rule* to wrap every argument in braces in a macro, otherwise shit happens. A couple of days were lost fighting a strange bug in the new heap manager code where it was doing ROUND_UP(Heap + 1, PAGE_SIZE)...

svn path=/trunk/; revision=49003

13 years ago[NTOS]: Build fix.
Sir Richard [Tue, 5 Oct 2010 17:01:41 +0000 (17:01 +0000)]
[NTOS]: Build fix.

svn path=/trunk/; revision=49002

13 years ago[win32k]
Giannis Adamopoulos [Tue, 5 Oct 2010 16:41:38 +0000 (16:41 +0000)]
[win32k]
- Don't place new windows with default position at the top left corner of the screen
See issue #5484 for more details.

svn path=/trunk/; revision=49001

13 years ago[NTOS]: Fix whitespace typo in comment (two spaces instead of one).
Sir Richard [Tue, 5 Oct 2010 15:59:47 +0000 (15:59 +0000)]
[NTOS]: Fix whitespace typo in comment (two spaces instead of one).
That's right. I'm not a fun person.

svn path=/trunk/; revision=49000

13 years ago[NTOS]: Delete a bunch of junk, 5 less files in Mm now (also moved some functions...
Sir Richard [Tue, 5 Oct 2010 15:55:52 +0000 (15:55 +0000)]
[NTOS]: Delete a bunch of junk, 5 less files in Mm now (also moved some functions around). Delete unused functions where found.
[NTOS]: The modified page writer should run at a high priority such as 27, not in idle mode at priority 1 -- otherwise dirty pages never get flushed out.
[NTOS]: Reimplement MmGetFileNameForAddress, MmGetFileNameForSection, MmGetFileObjectForSection to also support ARM3 sections. Shouldn't affect anything other than the user-mode debugging support.

svn path=/trunk/; revision=48999

13 years ago[NTOS]: When shutting down, call Cc to flush the dirty cached pages, otherwise these...
Sir Richard [Tue, 5 Oct 2010 15:52:00 +0000 (15:52 +0000)]
[NTOS]: When shutting down, call Cc to flush the dirty cached pages, otherwise these might've gotten lost (and lead to lost/corrupted data on disk).
[NTOS]: Don't assume that CcFlushDirtyPages will run with APCs disabled. Go ahead and actually enter/leave a critical region (Acquire/ReleaseForLazyWrite depend on this). The guarded mutex does disable APCs, but it's released when the actual flush happens.

svn path=/trunk/; revision=48998

13 years ago[NTOS]: Implement ARM3 version of MmMapViewOfSection, only for ARM3 pagefile-backed...
Sir Richard [Tue, 5 Oct 2010 14:36:09 +0000 (14:36 +0000)]
[NTOS]: Implement ARM3 version of MmMapViewOfSection, only for ARM3 pagefile-backed sections, and without any special flag support. Tested and works great, with the new pagefault code correctly finding the Prototype PTE for the VAD.
[NTOS]: Make every VAD insert also create a MEMORY_AREA. Now the two address space views should be completely synchronized and we can try removing the hack that was done for PEB/TEB support (which will remove the 200 thread regression).
[NTOS]: Implement MiGetNextNode and MiFindEmptyAddressRangeInTree.

svn path=/trunk/; revision=48997

13 years ago[HEAP]
Aleksey Bragin [Tue, 5 Oct 2010 12:42:55 +0000 (12:42 +0000)]
[HEAP]
- Move on to using a real HEAP_LOCK structure for a heap lock.
- Implement kernel-mode counterparts of this lock too. Right now these don't introduce much of a difference, but they are going to be properly used by the new heap manager code.

svn path=/trunk/; revision=48994

13 years ago[NTOS]: Add the tiny little bit of code required to correctly handle user-mode faults...
Sir Richard [Tue, 5 Oct 2010 08:14:02 +0000 (08:14 +0000)]
[NTOS]: Add the tiny little bit of code required to correctly handle user-mode faults on ARM3 mapped sections in certain limited scenarios.

svn path=/trunk/; revision=48993

13 years ago[NTOS]: Delete deprecated handling of MEMORY_AREA_IO_MAPPING. Delete all MEMORY_AREA...
Sir Richard [Tue, 5 Oct 2010 05:07:13 +0000 (05:07 +0000)]
[NTOS]: Delete deprecated handling of MEMORY_AREA_IO_MAPPING. Delete all MEMORY_AREA definitions except the ones for SEGMENT_VIEW and VIRTUAL_MEMORY. All other memory is now owned by ARM3!
[NTOS]: Delete WriteCopyView flag from MEMORY_AREA (unused, and was taking up 4 bytes due to alignment), and add a Vad pointer (takes up 4 bytes -- no actual size change).
[NTOS]: For VM and Section MEMORY_AREAs mapped in user-mode, build a "fake" VAD and insert it into the VAD Root of the Process. This means there is now a consistent view between ARM3 and RosMm in terms of user-mode address space layout, which will come in handy later.
[NTOS]: Destroy the MEMORY_AREA's VAD when the MEMORY_AREA itself is deleted. Watch out for the scenario explained in a previous check-in, where the VAD was caught by the MmCleanProcessAddressSpace vad-cleanup-loop.
[NTOS]: Implement MiInsertVad to restore the old functionality of MiInsertNode when the current parent and insertion result is not yet known. It obtains the information and calls MiInsertNode.

svn path=/trunk/; revision=48992

13 years ago[NTOS]: Add a _64K macro definition so we can stop typing out 65536 all the time.
Sir Richard [Tue, 5 Oct 2010 05:01:15 +0000 (05:01 +0000)]
[NTOS]: Add a _64K macro definition so we can stop typing out 65536 all the time.

svn path=/trunk/; revision=48991

13 years ago[NTOS]: Use the Spare flag in the VAD as a ReactOS/MemoryArea specific flag to signif...
Sir Richard [Tue, 5 Oct 2010 05:00:19 +0000 (05:00 +0000)]
[NTOS]: Use the Spare flag in the VAD as a ReactOS/MemoryArea specific flag to signify that this VAD is associated with a MEMORY_AREA and should be unlinked at process exit, but not freed. This is because MemoryAreas themselves are cleaned up later, and in the future their associated VADs (not yet in Trunk) will also be parsed. In the process death scenario, those VADs will be freed, but not unlinked (since it would already have been unlinked).

svn path=/trunk/; revision=48990

13 years ago[NTOS]: Nobody uses MEMORY_AREA_SYSTEM anymore, call these MEMORY_AREA_OWNED_BY_ARM3...
Sir Richard [Tue, 5 Oct 2010 04:58:26 +0000 (04:58 +0000)]
[NTOS]: Nobody uses MEMORY_AREA_SYSTEM anymore, call these MEMORY_AREA_OWNED_BY_ARM3 for now. We'll have to sync this code with x86 later anyway.

svn path=/trunk/; revision=48989

13 years ago[NTOS]: Nobody actually writes TRUE for WriteCopyView in the MEMORY_AREA data structu...
Sir Richard [Tue, 5 Oct 2010 04:57:32 +0000 (04:57 +0000)]
[NTOS]: Nobody actually writes TRUE for WriteCopyView in the MEMORY_AREA data structure, so this field is useless (always false). Remove all instances of its use.

svn path=/trunk/; revision=48988

13 years ago[NTOS]: We don't support SEC_BASED for ARM3 sectios either, ASSERT that.
Sir Richard [Tue, 5 Oct 2010 04:56:04 +0000 (04:56 +0000)]
[NTOS]: We don't support SEC_BASED for ARM3 sectios either, ASSERT that.

svn path=/trunk/; revision=48987

13 years ago[NTOS]: Nobody reads/checks for MEMORY_AREA_CACHE_SEGMENT. Might as well just call...
Sir Richard [Tue, 5 Oct 2010 04:53:32 +0000 (04:53 +0000)]
[NTOS]: Nobody reads/checks for MEMORY_AREA_CACHE_SEGMENT. Might as well just call this zero (no logical change).

svn path=/trunk/; revision=48986

13 years ago[win32k]
Giannis Adamopoulos [Mon, 4 Oct 2010 21:44:58 +0000 (21:44 +0000)]
[win32k]
- Reduce duplicated code in co_UserCreateWindowEx, co_IntSetParent and co_WinPosSetWindowPos
- based on wine

svn path=/trunk/; revision=48982

13 years ago[NTOS]: Implement MiMapViewInSystemSpace, all it took was another 250 lines and we...
Sir Richard [Mon, 4 Oct 2010 20:19:03 +0000 (20:19 +0000)]
[NTOS]: Implement MiMapViewInSystemSpace, all it took was another 250 lines and we can now map ARM3 sections into memory. Accessing them causes a fault, which we correctly handle with the prototype PTE fault code.
[NTOS]: Added a bogus allocation flag that can be used with Nt/MmCreateSection and MmMapViewInSystemSpace to take the ARM3 path instead. Only for internal testing at the moment.
Now we need to look at how to allow mapping these into user-space as well...

svn path=/trunk/; revision=48981

13 years ago[NTOS]: Implement MmCreateArm3Section, which creates ARM3-backed sections, but only...
Sir Richard [Mon, 4 Oct 2010 19:31:16 +0000 (19:31 +0000)]
[NTOS]: Implement MmCreateArm3Section, which creates ARM3-backed sections, but only for pagefile-backed memory at the moment. It uses MiCreatePagingFileMap and creates the expected Segment, Subsection, ControlArea and Section objects described in Windows kernel internals literrature. It's surprisingly easy and only takes 200 lines of code.

svn path=/trunk/; revision=48980

13 years ago[NTOS]: Implement/fixup the code paths during page faults that are needed to succesfu...
Sir Richard [Mon, 4 Oct 2010 18:51:07 +0000 (18:51 +0000)]
[NTOS]: Implement/fixup the code paths during page faults that are needed to succesfuly resolve a demand page associated with a pagefile backed ARM3 section (which uses Prototype PTEs). A lot of the code was already there but assumed we were using Prototype PTEs only for the shared user data page. By combining that code with the typical demand-zero fault code, we obtain the needed paths. For now, only tested with ARM3 sections that are page-filed backed (not image or data-file backed) mapped into system view space (MmMapViewOfSectionInSystemSpace), not user-mode addresses (which need VADs). The code to actually create/map these doesn't exist in trunk yet, the purpose of this checkin is to test the new fault changes to make sure they don't cause negative effects to already-working faults.

svn path=/trunk/; revision=48979

13 years ago[NTOS]: Initialize system views by calling MiInitializeSystemSpaceMap. This sets...
Sir Richard [Mon, 4 Oct 2010 18:36:37 +0000 (18:36 +0000)]
[NTOS]: Initialize system views by calling MiInitializeSystemSpaceMap. This sets up the lock, bitmap, and hash table.

svn path=/trunk/; revision=48978

13 years ago[NTOS]: Define MI_MAKE_PROTOTYPE_PTE macro to make a real prototype PTE from a PTE...
Sir Richard [Mon, 4 Oct 2010 18:34:41 +0000 (18:34 +0000)]
[NTOS]: Define MI_MAKE_PROTOTYPE_PTE macro to make a real prototype PTE from a PTE. Define counter-part MiProtoPteToPte to recover the true PTE from a given Prototype PTE.
[NTOS]: Define MI_PTE_LOOKUP_NEEDED instead of using 0xFFFF. The name was found in checked build assertion strings.
[NTOS]: Add MM_VIEW (used for System-mapped Section Views) and MM_SESSSION (used to define the system/session view mappings) structure definitions.

svn path=/trunk/; revision=48977

13 years ago[NTOS]: Go ahead and now fill out the OriginalPte field for PFNs initialized with...
Sir Richard [Mon, 4 Oct 2010 18:22:50 +0000 (18:22 +0000)]
[NTOS]: Go ahead and now fill out the OriginalPte field for PFNs initialized with MiInitializePfn(ForOtherProcess). They should only belong to ARM3 so they'll never have SwapEntry/RMAP associated with them. This functionality is important for future Prototype PTE support, among other things, as it lets us get the original PTE value written for a given PFN entry.

svn path=/trunk/; revision=48976

13 years ago[PSDK] - Add more track popup menu types.
James Tabor [Mon, 4 Oct 2010 15:41:25 +0000 (15:41 +0000)]
[PSDK] - Add more track popup menu types.

svn path=/trunk/; revision=48975

13 years ago[Win32k]
James Tabor [Sun, 3 Oct 2010 19:18:19 +0000 (19:18 +0000)]
[Win32k]
- Fixed ValidateTimerCallback, always returning true and just spinning in the loop.
- Add one more process information flag with a point type and capturing the hit test in desktop structure.

svn path=/trunk/; revision=48970

13 years ago[NDIS]
Cameron Gutman [Sun, 3 Oct 2010 15:18:57 +0000 (15:18 +0000)]
[NDIS]
- Disable timer queuing code (hackfix for various network driver failures)
- Also needs to be merged into 0.3.12

svn path=/trunk/; revision=48968