11 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

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

svn path=/trunk/; revision=49040

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

svn path=/trunk/; revision=49039

11 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

11 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

11 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

11 years ago[HEAP]
Aleksey Bragin [Thu, 7 Oct 2010 17:05:29 +0000 (17:05 +0000)]
- 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

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

svn path=/trunk/; revision=49033

11 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

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

svn path=/trunk/; revision=49029

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

svn path=/trunk/; revision=49028

11 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

11 years ago[RTL]
Eric Kohl [Wed, 6 Oct 2010 20:43:51 +0000 (20:43 +0000)]
Change RtlLockBootStatusData prototype according to

svn path=/trunk/; revision=49026

11 years ago[NTDLL]
Aleksey Bragin [Wed, 6 Oct 2010 20:34:30 +0000 (20:34 +0000)]
- 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

11 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

11 years ago[NTDLL]
Aleksey Bragin [Wed, 6 Oct 2010 17:18:22 +0000 (17:18 +0000)]
- 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

11 years ago[CMD]
Kamil Hornicek [Wed, 6 Oct 2010 16:44:09 +0000 (16:44 +0000)]
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

11 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

11 years ago[NTOSKRNL]
Timo Kreuzer [Wed, 6 Oct 2010 14:39:56 +0000 (14:39 +0000)]
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 it shall prevent the lock up. Please test. Dedicated to elhoir.

svn path=/trunk/; revision=49018

11 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

11 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

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

svn path=/trunk/; revision=49014

11 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

11 years ago[NTOSKRNL]
Timo Kreuzer [Wed, 6 Oct 2010 12:16:51 +0000 (12:16 +0000)]
- 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

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

svn path=/trunk/; revision=49011

11 years ago[RTL/HEAP]
Aleksey Bragin [Wed, 6 Oct 2010 09:19:24 +0000 (09:19 +0000)]
- 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

11 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

11 years ago[RTL/HEAP]
Aleksey Bragin [Tue, 5 Oct 2010 21:43:48 +0000 (21:43 +0000)]
- 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

11 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

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

svn path=/trunk/; revision=49005

11 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

11 years ago[RTL]
Aleksey Bragin [Tue, 5 Oct 2010 19:33:42 +0000 (19:33 +0000)]
- 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

11 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

11 years ago[win32k]
Giannis Adamopoulos [Tue, 5 Oct 2010 16:41:38 +0000 (16:41 +0000)]
- 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

11 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

11 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

11 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

12 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

12 years ago[HEAP]
Aleksey Bragin [Tue, 5 Oct 2010 12:42:55 +0000 (12:42 +0000)]
- 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 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

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

svn path=/trunk/; revision=48982

12 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

12 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

12 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

12 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

12 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

12 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

12 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

12 years ago[Win32k]
James Tabor [Sun, 3 Oct 2010 19:18:19 +0000 (19:18 +0000)]
- 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

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

svn path=/trunk/; revision=48968

12 years ago[NTOS]: Move all the Nt*Section API interfaces into ARM3 and rewrite most of the...
Sir Richard [Sat, 2 Oct 2010 02:14:39 +0000 (02:14 +0000)]
[NTOS]: Move all the Nt*Section API interfaces into ARM3 and rewrite most of the code to perform the same parameter validation and input checks as Windows does. Support all protection masks. Use correct section object access mask. Use appropriate SEH where needed. Pass 0-initialized local instead of NULL when needed. Don't assume certain parameters are OPTIONAL when they are not. Don't return SEH failures at the end of the system call, the kernel usually returns the result of the system call proper. Call DbgkMapViewOfSection in scenarios where it would not have gotten called before. Protect against certain kinds of kernel-mode access from user-mode.
[NTOS]: Move unimplemented Mm*Section APIs into ARM3 as well.

svn path=/trunk/; revision=48959

12 years ago[PSDK]: Add missing SEC_XXX definitions for Server 2003 (Vista ones still missing).
Sir Richard [Sat, 2 Oct 2010 01:12:53 +0000 (01:12 +0000)]
[PSDK]: Add missing SEC_XXX definitions for Server 2003 (Vista ones still missing).
[KERNEL32]: NtCreateSection should not be called with merely SEC_FILE: this says nothing about what kind of operation should be done (a commit, a reserve, etc?). Use SEC_COMMIT instead to specify correct operation. This works in ReactOS as of now, but would've failed after the NtSection* API rewrite.
[KERNEL32]: CreateFileMappingW should also accept/allow SEC_LARGE_PAGES, even if we don't suppport it yet.

svn path=/trunk/; revision=48958

12 years agoYugoslavia no longer exists for some time, replaced by Serbia as successor of country...
Matthias Kupfer [Fri, 1 Oct 2010 19:54:27 +0000 (19:54 +0000)]
Yugoslavia no longer exists for some time, replaced by Serbia as successor of country code (phone)

svn path=/trunk/; revision=48955

12 years ago[VIDEOPRT]
Johannes Anderwald [Fri, 1 Oct 2010 17:43:03 +0000 (17:43 +0000)]
- Add sanity checks
- Implement VideoPortGetCommonBuffer, VideoPortLockPages

See issue #5629 for more details.

svn path=/trunk/; revision=48954

12 years ago[XCOPY]
Jérôme Gardou [Thu, 30 Sep 2010 21:45:36 +0000 (21:45 +0000)]
  - Fix compilation with msvc
1. Someone should send this to wine (this is NOT lazyness)
2. Someone should tell mingw dev about

svn path=/trunk/; revision=48948

12 years agoAnti Oracle Movement has begun. Adding go-oo and LibreOffice to rapps.
Daniel Reimer [Thu, 30 Sep 2010 18:47:32 +0000 (18:47 +0000)]
Anti Oracle Movement has begun. Adding go-oo and LibreOffice to rapps.

svn path=/trunk/; revision=48943

12 years ago[DOSKEY]
Jérôme Gardou [Thu, 30 Sep 2010 18:45:58 +0000 (18:45 +0000)]
  - Fix compilation with msvc by GetProcAddress'ing undocumented functions
  - TCHAR -> WCHAR in the process

svn path=/trunk/; revision=48942

12 years ago[NTOS]: This is why you shouldn't let Antoine Dodson commit code.
Sir Richard [Thu, 30 Sep 2010 14:48:03 +0000 (14:48 +0000)]
[NTOS]: This is why you shouldn't let Antoine Dodson commit code.

svn path=/trunk/; revision=48941

12 years ago[NTOS]: He's climbing in yo PFN database, he snatching yo pages up, tryin to page...
Sir Richard [Thu, 30 Sep 2010 04:40:31 +0000 (04:40 +0000)]
[NTOS]: He's climbing in yo PFN database, he snatching yo pages up, tryin to page em so y'all need to hide your pool hide your cache, and hide your working set cuz they grabbin' all the pages out there. We gonna page you, we gonna page you, so you can run and fault on that, run and fault on that, home boy, homeboy, home homeboy.
Enable ARM3 Paged Pool and remove all related deprecated code. Install tested on several VMs, it might cause new regressions. Let's fix them before 0.3.13 instead of reverting.

svn path=/trunk/; revision=48940

12 years ago[NTOS]: Use SYSTEM_PD_SIZE instead of assuming that this is PAGE_SIZE, since this...
Sir Richard [Thu, 30 Sep 2010 03:26:13 +0000 (03:26 +0000)]
[NTOS]: Use SYSTEM_PD_SIZE instead of assuming that this is PAGE_SIZE, since this is not the case on (future) ARM and (current) AMD64 ports.
[NTOS]: Remove some magic numbers in the pool code, using PTE_COUNT, MiAddressToPde, when needed. Also, the expansion code uses PDEs, not PTEs, so differentiate this, because on some systems (ARM), there are different structures for both.
ARM3 paged pool now works, the expansion bug has been fixed (and the code is more portable). Expect to see it gradually enabled soon.

svn path=/trunk/; revision=48939

12 years ago[NTOS]: MiSetConsumer no longer achieves anything. Remove it.
Sir Richard [Thu, 30 Sep 2010 03:21:02 +0000 (03:21 +0000)]
[NTOS]: MiSetConsumer no longer achieves anything. Remove it.

svn path=/trunk/; revision=48938

12 years ago[NTOS]: Add definition for size of a page directory, and size of all page directories...
Sir Richard [Thu, 30 Sep 2010 03:18:44 +0000 (03:18 +0000)]
[NTOS]: Add definition for size of a page directory, and size of all page directories required per process (some architectures have more than one page directory per process/address space).

svn path=/trunk/; revision=48937

12 years ago[NTOS]: Fix a bug in MiRemoveAnyPage: it was always checking the colored zero page...
Sir Richard [Thu, 30 Sep 2010 03:17:14 +0000 (03:17 +0000)]
[NTOS]: Fix a bug in MiRemoveAnyPage: it was always checking the colored zero page list, instead of checking the colored free page list the second time around.

svn path=/trunk/; revision=48936

12 years ago[PSDK]
Pierre Schweitzer [Wed, 29 Sep 2010 22:54:00 +0000 (22:54 +0000)]
Fixed build

svn path=/trunk/; revision=48935

12 years ago[REGE[REGEDIT]
Aleksey Bragin [Wed, 29 Sep 2010 21:52:16 +0000 (21:52 +0000)]
- Katayama Hirofumi: Don't leak open handles to keys.
- Katayama Hirofumi: Misc code changes/ cleanup.
See issue #5547 for more details.

svn path=/trunk/; revision=48934

12 years ago[REGEDIT]
Aleksey Bragin [Wed, 29 Sep 2010 21:43:39 +0000 (21:43 +0000)]
- Katayama Hirofumi: Unicodify regedit, add support for import/export of v5 reg files. Based on Wine regedit.

svn path=/trunk/; revision=48933

12 years ago[KMTEST]
Pierre Schweitzer [Wed, 29 Sep 2010 21:42:11 +0000 (21:42 +0000)]
Added a small testcase for FsRtlIsNameInExpression(). It's quite relevant for daily and simple use of the function. It shouldn't fail on ReactOS given our current implementation.

svn path=/trunk/; revision=48932

12 years agoPSDK
Aleksey Bragin [Wed, 29 Sep 2010 21:32:56 +0000 (21:32 +0000)]
- Edison Henrique Andreassy <>: Add FILEMUIINFO definition.
See issue #5640 for more details.

svn path=/trunk/; revision=48931

12 years ago[Win32k]
James Tabor [Wed, 29 Sep 2010 05:23:15 +0000 (05:23 +0000)]
- Return the correct complexity, pass all user32 wine test_winregion tests.

svn path=/trunk/; revision=48930

12 years ago[Win32k]
James Tabor [Wed, 29 Sep 2010 02:29:33 +0000 (02:29 +0000)]
- Fix future wine sync user32 win test for get process default layout with null parameter.

svn path=/trunk/; revision=48929

12 years ago[ACPI]
Cameron Gutman [Wed, 29 Sep 2010 02:16:18 +0000 (02:16 +0000)]
- Fix ACPI warnings
- Based on a patch by Love Nystrom

svn path=/trunk/; revision=48928

12 years ago[NTOS]: Add MiRemoveZeroPageSafe helper function, when a zero page is required, but...
Sir Richard [Wed, 29 Sep 2010 01:10:28 +0000 (01:10 +0000)]
[NTOS]: Add MiRemoveZeroPageSafe helper function, when a zero page is required, but the inline zeroing of MiRemoveZeroPage is not. This function will only try grabbing a zero page if one exists, otherwise a free page will be grabbed and zeroed with custom code of the caller's choosing.
[NTOS]: Add concept of process color and system color. Compute correct color to use whenever requesting a page.
[NTOS]: Uncondtionally enable the color code when inserting/removing pages.
For now, when requesting a page, colors are still ignored, and the global PFN lists are scanned instead. If there are no regressions, we are one patch away from that.

svn path=/trunk/; revision=48927

12 years ago[NTOS]: Fix straggling bugs in color table algorithms.
Sir Richard [Wed, 29 Sep 2010 00:13:09 +0000 (00:13 +0000)]
[NTOS]: Fix straggling bugs in color table algorithms.
[NTOS]: Enable color tables! Right now pages are merely entering and exiting the tables, the tables themselves are never used for allocations. This will change with further commits.

svn path=/trunk/; revision=48926

12 years ago[NTOS]: Write missing color code in certain PFN functions, and fix existing code...
Sir Richard [Tue, 28 Sep 2010 22:41:46 +0000 (22:41 +0000)]
[NTOS]: Write missing color code in certain PFN functions, and fix existing code where needed. Add some debugging. For now, turned off until testing succeeds.
[NTOS]: Redocument which MMPFN fields are violated by ReactOS-internal values. This has gotten much better than before.

svn path=/trunk/; revision=48925

12 years ago[FONTS]
Amine Khaldi [Tue, 28 Sep 2010 17:19:52 +0000 (17:19 +0000)]
- Update RedHat Liberation Fonts to 1.06
- Update Tahoma Fonts To Wine HEAD
- Update DejaVu Fonts Documentation To 2.31
See issue #5632,5633,5634 for more details.

svn path=/trunk/; revision=48924

12 years ago[USETUP]
Amine Khaldi [Tue, 28 Sep 2010 17:12:46 +0000 (17:12 +0000)]
- Update Estonian translation by anthrax11.

See issue #5625 for more details.

svn path=/trunk/; revision=48923

12 years ago[NTOS]: Switch to using an ARM3, much more correct MmZeroPageThread. Stub support...
Sir Richard [Tue, 28 Sep 2010 16:47:25 +0000 (16:47 +0000)]
[NTOS]: Switch to using an ARM3, much more correct MmZeroPageThread. Stub support for discarding sections and listening to the Power Manager Idle Timer.
[NTOS]: Use a synchronization (auto-reset) instead of notification event for the zero page thread, this way we don't have to reset it manually and query its state. Instead, a boolean MmZeroingPageThreadActive is checked instead.
[NTOS]: Once we switch to colored lists, major improvements can be done for speed.

svn path=/trunk/; revision=48922

12 years ago[NTOS]: The RMAP entry only has a valid process if the address is in user-space,...
Sir Richard [Tue, 28 Sep 2010 16:44:18 +0000 (16:44 +0000)]
[NTOS]: The RMAP entry only has a valid process if the address is in user-space, otherwise process is NULL. Only attempt to acquire the process rundown lock if a process actually exists. Fixes crashes caused by 48905.

svn path=/trunk/; revision=48921

12 years ago[NTOS]: Zeroed pages should go at the front, not the back of the zero list. Going...
Sir Richard [Tue, 28 Sep 2010 14:38:30 +0000 (14:38 +0000)]
[NTOS]: Zeroed pages should go at the front, not the back of the zero list. Going to the back is a special boot-only case on MP, which isn't supported. Implement zero-only version of MiInsertPageInList, remove MiInsertZeroPageAtBack.
[NTOS]: Remove many other deprecated functions. Physical memory consistency should now be higher than in the past.

svn path=/trunk/; revision=48919

12 years ago[NTOS]: One last fix to the zero page thread before we move to ARM3: use MiRemoveAnyP...
Sir Richard [Tue, 28 Sep 2010 14:29:37 +0000 (14:29 +0000)]
[NTOS]: One last fix to the zero page thread before we move to ARM3: use MiRemoveAnyPage instead of dangerous MiRemoveHeadList. The code works on the assumption (validated by Windows through a bug check) that MiRemoveAnyPage always returns the first free page, and we also manually grab the first free page, and compare this is true. Nice way to detect PFN database corruption.
[NTOS]: Fix MiInsertZeroAtBack to increment the MmAvailablePage count, since MiRemoveAnyPage decrements it (MiRemoveHeadList did not).

svn path=/trunk/; revision=48918

12 years ago[KERNEL32]
Aleksey Bragin [Tue, 28 Sep 2010 14:24:17 +0000 (14:24 +0000)]
- Igor Paliychuk: Fix properly showing genitive names from NLS data by applying a missed Wine sync.
See issue #5556 for more details.

svn path=/trunk/; revision=48917

12 years ago[USETUP]
Amine Khaldi [Tue, 28 Sep 2010 13:39:57 +0000 (13:39 +0000)]
- Update Ukrainian translation by Igor Paliychuk.
See issue #5536 5540 5604 5614 5617 for more details.

svn path=/trunk/; revision=48915

12 years ago[KERNEL32]
Kamil Hornicek [Tue, 28 Sep 2010 00:02:05 +0000 (00:02 +0000)]
Winnls.h can be included now.

svn path=/trunk/; revision=48913

12 years ago- Remove MiZeroPage, use MiZeroPhysicalPage instead. They work pretty much the same...
Sir Richard [Mon, 27 Sep 2010 21:58:54 +0000 (21:58 +0000)]
- Remove MiZeroPage, use MiZeroPhysicalPage instead. They work pretty much the same except the needless raise to DISPATCH_LEVEL.
- Get rid of the messed up MiMapPageToZeroInHyperSpace which was hacking into MiMapPagesToZeroInHyperSpace. Now MiMapPagesToZeroInHyperSpace is properly implemented to use chained PFNs, and the MmZeroPageThread code has been modified to correctly use the new mechanism.
- Zero page mapping now happens at PASSIVE trough MiMapPAgesToZeroInHyperSpace, not DISPATCH anymore.
- More fixes are coming to remove the remaining MiRemoveHeadList and rewrite the zero page loop. Should fix more possible corruptions.

svn path=/trunk/; revision=48912

12 years ago[NTOS]: Adding colored page lists means we need to start using the OriginalPte field...
Sir Richard [Mon, 27 Sep 2010 17:36:54 +0000 (17:36 +0000)]
[NTOS]: Adding colored page lists means we need to start using the OriginalPte field as a forward/back link. This is shared with AweReferenceCount, which ReactOS uses as the RMAP list head. However, RMAPped pages shoudl never be free/zero, and non-free-zero pages will never have a color backlink in OriginalPte, so it should theoretically be safe to do this. However, it's possible for the RMAP "get" function to be called on a free/zero page (which would normally return NULL), but with color chaining enabled, the "get" function would misinterpret the backlink as an RMAP entry. Therefore, we overload the ParityError bit to signify "there is an RMAP". The get/set functions now handle this, and the color linkage will ASSERT this later. This way, a colorlink with ParityError == FALSE is not treated as an rmap list head.

svn path=/trunk/; revision=48910

12 years ago[NTOS]: Don't use dangerous MiRemoveHeadList in MDL page allocation, use MiRemoveAnyP...
Sir Richard [Mon, 27 Sep 2010 17:09:33 +0000 (17:09 +0000)]
[NTOS]: Don't use dangerous MiRemoveHeadList in MDL page allocation, use MiRemoveAnyPage instead.
[NTOS]: Don't repurpose pages from the zero/free page list without actually unlinking the page first! This should fix even more corruptions.

svn path=/trunk/; revision=48909

12 years ago[NTOS]: Stop using MiInsertInListTail and MiRemoveHeadList in the deprecated ReactOS...
Sir Richard [Mon, 27 Sep 2010 16:00:24 +0000 (16:00 +0000)]
[NTOS]: Stop using MiInsertInListTail and MiRemoveHeadList in the deprecated ReactOS page functions. Those two functions do not adequately support the semantis needed for page insertion/removal and should've never been used. MmAllocPage now uses MiRemoveAny/ZeroPage, and MmDereferencePage uses MiInsertPageInFreeList. Should help with some corruptions. More is coming.

svn path=/trunk/; revision=48908

12 years ago[user32]
Giannis Adamopoulos [Mon, 27 Sep 2010 14:31:13 +0000 (14:31 +0000)]
- Remove the last reactos-only export from user32 (PrivateCsrssManualGuiCheck)

- Move PrivateCsrssManualGuiCheck from user32 to win32csr

svn path=/trunk/; revision=48907

12 years ago[ntoskrnl/mm]
Michael Martin [Mon, 27 Sep 2010 08:46:02 +0000 (08:46 +0000)]
- Acquire rundown protection on process to make sure it is not being terminated and before attempting to do anything with the process. Fixed a rare case of PspDeleteProcess being called twice for a process, resulting in bugcheck.

svn path=/trunk/; revision=48905

12 years ago[Win32k]
James Tabor [Mon, 27 Sep 2010 02:46:16 +0000 (02:46 +0000)]
- Implement win32k support functions for Get and Set process default layout.
- Due to changes with wine it will be difficult to sync when RTL support is being added to ComCtl32.

svn path=/trunk/; revision=48904

12 years ago[DDK]: Add misisng MmLockPagableCodeSection.
Sir Richard [Sun, 26 Sep 2010 15:01:37 +0000 (15:01 +0000)]
[DDK]: Add misisng MmLockPagableCodeSection.

svn path=/trunk/; revision=48903

12 years ago[NTOSKRNL]
Eric Kohl [Sun, 26 Sep 2010 11:37:40 +0000 (11:37 +0000)]
Implement NtQueryOpenSubKeys.

svn path=/trunk/; revision=48902

12 years agodisable some locale IDs because they are not supported yet
Matthias Kupfer [Sat, 25 Sep 2010 23:20:23 +0000 (23:20 +0000)]
disable some locale IDs because they are not supported yet
- 417 Rhaeto-Romanic
- 445 Bengali (India)
or still unknown
- 48f
- 490
this fixes multiple entries (see bug #5636)

svn path=/trunk/; revision=48898