11 years agoMerge the OpenTTD update from 0.3.10 branch
Colin Finck [Thu, 2 Jul 2009 21:18:18 +0000 (21:18 +0000)]
Merge the OpenTTD update from 0.3.10 branch

svn path=/trunk/; revision=41748

11 years ago- In the process of rewriting IntGdiCreateDisplayDC, making it an intermediate level...
James Tabor [Thu, 2 Jul 2009 19:09:32 +0000 (19:09 +0000)]
- In the process of rewriting IntGdiCreateDisplayDC, making it an intermediate level support function for IntGdiCreateDC.

svn path=/trunk/; revision=41744

11 years agoFixed cropping function and implemented size boxes
Benedikt Freisen [Thu, 2 Jul 2009 17:02:37 +0000 (17:02 +0000)]
Fixed cropping function and implemented size boxes

svn path=/trunk/; revision=41742

11 years agoBug 4636: Romanian translation patch by Dimitriu Petru
Daniel Reimer [Thu, 2 Jul 2009 08:33:06 +0000 (08:33 +0000)]
Bug 4636: Romanian translation patch by Dimitriu Petru
Bug 4638: Japanese translation update for some files by Tomoya Kitagawa
Bug 4651: Unfinished translation to polish (
Bug 4652: update for slovak and others translations by Mario Kacmar

svn path=/trunk/; revision=41739

11 years ago- Register a device interface for each stream
Johannes Anderwald [Thu, 2 Jul 2009 07:58:06 +0000 (07:58 +0000)]
- Register a device interface for each stream

svn path=/trunk/; revision=41738

11 years ago - tcpip locking rewrite (part 1 of x)
Cameron Gutman [Thu, 2 Jul 2009 07:16:50 +0000 (07:16 +0000)]
 - tcpip locking rewrite (part 1 of x)
 - Use ExInterlocked list functions to manipulate the request lists
 - Fix usage of the wrong lock to protect the listen request list
 - Next step: Optimize usage of TCPLock

svn path=/trunk/; revision=41737

11 years ago - Don't cancel already completed requests
Cameron Gutman [Thu, 2 Jul 2009 06:51:34 +0000 (06:51 +0000)]
 - Don't cancel already completed requests
 - Fix potential NULL pointer access
 - Actually disassociate the address file and connection in DispTdiDisassociateAddress
 - Insert new requests at the end of the list not the beginning

svn path=/trunk/; revision=41736

11 years ago- wine sync dde.c and dde_private.h to 1.1.24.
James Tabor [Thu, 2 Jul 2009 05:07:12 +0000 (05:07 +0000)]
- wine sync dde.c and dde_private.h to 1.1.24.

svn path=/trunk/; revision=41735

11 years agoMikhail Denisenko <denisenkom AT gmail DOT com>
Matthias Kupfer [Wed, 1 Jul 2009 21:56:44 +0000 (21:56 +0000)]
Mikhail Denisenko <denisenkom AT gmail DOT com>
- Add symbols to system menu by using marlett font.
- See issue #4450 for details.

svn path=/trunk/; revision=41733

11 years agofix msvc build
Christoph von Wittich [Wed, 1 Jul 2009 21:31:13 +0000 (21:31 +0000)]
fix msvc build

svn path=/trunk/; revision=41732

11 years agochange to LOGFONTW, because it's unicode
Matthias Kupfer [Wed, 1 Jul 2009 20:54:40 +0000 (20:54 +0000)]
change to LOGFONTW, because it's unicode

svn path=/trunk/; revision=41730

11 years agoAdd some more working apps to the Downloader list, update the RosBE link.
Colin Finck [Wed, 1 Jul 2009 19:49:45 +0000 (19:49 +0000)]
Add some more working apps to the Downloader list, update the RosBE link.
Based on a patch by Victor Martinez

svn path=/trunk/; revision=41729

11 years agoPaint:
Benedikt Freisen [Wed, 1 Jul 2009 19:24:17 +0000 (19:24 +0000)]
- Fixed new bug in palette drawing (replacing a + by a -)
- Added "Show grid" and "Show miniature" functions
- Therefore changed the menus -> please check translations

svn path=/trunk/; revision=41728

11 years ago- Add more vista types. Added another window message type, based on winproc.c. Added...
James Tabor [Wed, 1 Jul 2009 17:19:16 +0000 (17:19 +0000)]
- Add more vista types. Added another window message type, based on winproc.c. Added two vista prototypes for ntuser.
- Implemented new PostMessage and SendNotifyMessage, this is for bug 4646. I realize the need to update/sync dde code from wine. This relates to the new post and send functions and the use of MsgiKMToUMMessage. Trying to understand this mess.
- CreateDesktop is used to create the HWND_MESSAGE for the desktop. This is a work in progress. The ntuser prototype is updated too. Now pass the correct data from user to kernel space.
- Major update to event code and testing with user32 wine test msg. ATM, only two ntuser notifications are sent if the app has a event hook. Need to add more notifications at the correct points.
- Code arranging in hooks. Testing with user32 cross test works, need to add more ntuser hook calls at the correct points.
- Testing: More is required! User32 cross tests win and msg, win test hangs at flush_events. FF 1.5.x (Still has that funny minimize bug. Play with it and see. Missing one more check I think.) and AbiWord 2.4.1. Notepad lite is doing something very naughty inside it's hook call, with out the source, testing it will be imposable, so someone needs to find an open source program that does the same thing.
- Reference: Drag and drop file into window: winproc.c WM_COPYGLOBALDATA

svn path=/trunk/; revision=41727

11 years ago- Remove dead code
Johannes Anderwald [Wed, 1 Jul 2009 15:00:12 +0000 (15:00 +0000)]
- Remove dead code
- Reuse free audio handle index

svn path=/trunk/; revision=41726

11 years ago- Partly Implement StreamClassReadWriteConfig
Johannes Anderwald [Wed, 1 Jul 2009 14:44:31 +0000 (14:44 +0000)]
- Partly Implement StreamClassReadWriteConfig
- Allocate a HwInstance buffer which is passed to each instantiated filter instance

svn path=/trunk/; revision=41725

11 years agoFix some warnings / bugs.
Dmitry Gorbachev [Wed, 1 Jul 2009 09:59:47 +0000 (09:59 +0000)]
Fix some warnings / bugs.

svn path=/trunk/; revision=41724

11 years ago - Fix corruption of ARP target protocol address
Cameron Gutman [Wed, 1 Jul 2009 05:14:56 +0000 (05:14 +0000)]
 - Fix corruption of ARP target protocol address
 - We were copying the address type (1 byte) and 3 bytes of the target address instead of all 4 bytes of the target address

svn path=/trunk/; revision=41723

11 years agointrin_x86: Don't test for __MSVCSRT__ when implementing _rotr and _rotl. gcc defines...
Timo Kreuzer [Wed, 1 Jul 2009 00:40:07 +0000 (00:40 +0000)]
intrin_x86: Don't test for __MSVCSRT__ when implementing _rotr and _rotl. gcc defines __MSVCSRT__ and "knows" these funtions, but doesn't implemnt them.

svn path=/trunk/; revision=41722

11 years ago - Put the correct source address in Raw IP and UDP packets
Cameron Gutman [Tue, 30 Jun 2009 21:14:21 +0000 (21:14 +0000)]
 - Put the correct source address in Raw IP and UDP packets
 - Remove (now unused) IPGetDefaultAddress which just broke things
 - Fixes responses from different IP addresses when trying to ping the loopback adapter
 - See issue #4573 for more details

svn path=/trunk/; revision=41720

11 years ago- Implement support function adding global atoms in win32k.
James Tabor [Tue, 30 Jun 2009 19:12:02 +0000 (19:12 +0000)]
- Implement support function adding global atoms in win32k.

svn path=/trunk/; revision=41719

11 years ago - Restore a value that is lost in MiniportReset when AddressingReset is TRUE
Cameron Gutman [Tue, 30 Jun 2009 18:44:26 +0000 (18:44 +0000)]
 - Restore a value that is lost in MiniportReset when AddressingReset is TRUE
 - I need to do more investigation on which values need to be restored but I know CurrentLookahead is one of them
 - Add support for protocol-initiated miniport resets

svn path=/trunk/; revision=41718

11 years agothis should fix ATI IXP700 in compat mode
Christoph von Wittich [Tue, 30 Jun 2009 15:57:20 +0000 (15:57 +0000)]
this should fix ATI IXP700 in compat mode
See issue #4591 for more details.

svn path=/trunk/; revision=41717

11 years agoSVN maintenance: Add missing svn:ignore properties to many directories and fix some...
Colin Finck [Tue, 30 Jun 2009 15:39:49 +0000 (15:39 +0000)]
SVN maintenance: Add missing svn:ignore properties to many directories and fix some existing ones

svn path=/trunk/; revision=41716

11 years agoRemove non-existing "windows" module, the "optional" one is still just virtual.
Colin Finck [Tue, 30 Jun 2009 15:09:08 +0000 (15:09 +0000)]
Remove non-existing "windows" module, the "optional" one is still just virtual.
See issue #4645 for more details.

svn path=/trunk/; revision=41715

11 years agoreplace some values by constants
Christoph von Wittich [Tue, 30 Jun 2009 14:21:33 +0000 (14:21 +0000)]
replace some values by constants

svn path=/trunk/; revision=41714

11 years ago- Rewrite VideoPort and Win32k (Eng) event functions to:
Aleksey Bragin [Tue, 30 Jun 2009 13:42:42 +0000 (13:42 +0000)]
- Rewrite VideoPort and Win32k (Eng) event functions to:
 * Use a documented ENG_EVENT structure (thus be compatible with Windows videoprt/win32k) instead of a stupid (PKEVENT) casting everywhere through EngEvent or VideoPort event functions;
 * Implement additional checks for user mapped events in EngDeleteEvent and EngWaitForSingleObject;
 * Implement EngReadStateEvent and EngClearEvent.
 * Provide a better, readable code which matches kernelstyle coding guidelines;
 * Remove (stub out) totally incorrect and buggy map user events support;
- Compile videoprt with ms-extensions flag enabled.

svn path=/trunk/; revision=41713

11 years ago- Remove empty directory (include/reactos/drivers/drivers).
Aleksey Bragin [Tue, 30 Jun 2009 13:10:27 +0000 (13:10 +0000)]
- Remove empty directory (include/reactos/drivers/drivers).

svn path=/trunk/; revision=41712

11 years agoget rid of obsolete SHLocalAlloc/Free functions and export the correct v6 functions...
Christoph von Wittich [Tue, 30 Jun 2009 10:48:41 +0000 (10:48 +0000)]
get rid of obsolete SHLocalAlloc/Free functions and export the correct v6 functions instead
patch by <jerome dot gardou at laposte dot net>

svn path=/trunk/; revision=41711

11 years ago- Move MmIsThisAnNtSystem and MmQueryMemorySize to mmsup.c instead of randomly in...
ReactOS Portable Systems Group [Tue, 30 Jun 2009 10:45:36 +0000 (10:45 +0000)]
- Move MmIsThisAnNtSystem and MmQueryMemorySize to mmsup.c instead of randomly in mminit.c.
- Cleanup some externs that were never referenced in mminit.c.
- Remove MiShutdownMemoryManager since it was dead code.
- There is no need to define the MiKseg0Start/End variables and loop through the memory descriptors to find the last kernel image. We already have this information through LoaderPagesSpanned saved in MmBootImageSize.
  - Removed these variables, code that depended on them, and MiGetLastKernelAddress, and switch to just using MmBootImageSize, which simplifies things a lot.
- Also simplify the way that the initial memory latout is setup. Now the PFN database will always start after MmBootImageSize + KSEG0_BASE, instead of relying on the fact FreeLDR, on certain machines, may have had leftover space in the 6MB allocation that it makes (And worse, assuming FreeLDR on all architectures will allocate 6MB).
  - This standardizes the PFN database address and makes the code portable.
  - Same for the nonpaged pool address.
- Should not call MmInitializeHandBuiltProcess for the idle process -- this will be called for the system process in PsCreateProcess.
  - The only thing we need, as the comment says, is the kernel MADDRESS_SPACE, so just initialize the lock for it.
- Do not zero MmStats since the load-linker takes care of that for us since it's a global.

svn path=/trunk/; revision=41710

11 years ago- Cleanup some debug-only debug prints.
ReactOS Portable Systems Group [Tue, 30 Jun 2009 10:38:51 +0000 (10:38 +0000)]
- Cleanup some debug-only debug prints.
- Make the VA-range-printing debug prints match the same format as those in ReactOS Mm (MiDbgKernelLayout).
  - Add the appropriate number of spaces so that the layout appears continuous, even though it's coming from two source files.
  - This makes it easy to see the VA mappings at boot (but not all of them).

svn path=/trunk/; revision=41709

11 years ago- Rewrite MmAllocateNonCachedMemory and MmFreeNonCachedMemory to use the new function...
ReactOS Portable Systems Group [Tue, 30 Jun 2009 08:55:18 +0000 (08:55 +0000)]
- Rewrite MmAllocateNonCachedMemory and MmFreeNonCachedMemory to use the new functionality present in ARM3.
  - These functions now use the MDL routines to allocate their physical memory, since the constraints and requirements are identical as for a non-cached MDL mapping.
  - As for the virtual address space, it is guaranteed once again by System PTEs!
    - If it's not getting old already, optimizations to the System PTE code will, yet again, yield improvements here as well.
- This is the last large kernel-facing memory allocator that needed updating to use System PTEs instead.
  - Only the pool allocator remains (which, for nonpaged pool, also uses System PTEs, present in the nonpaged pool expansion VA).
    - That effort will take significantly longer.

svn path=/trunk/; revision=41708

11 years ago- Major rewrite of Memory Descriptor List (MDL) implementation (moving it towards...
ReactOS Portable Systems Group [Tue, 30 Jun 2009 08:29:22 +0000 (08:29 +0000)]
- Major rewrite of Memory Descriptor List (MDL) implementation (moving it towards using System PTEs).
  - MmCreateMdl, MmSizeOfMdl: No Change.
  - MmBuildMdlForNonPagedPool: Do not use MmGetPfnForProcess, just normal PMMPTE manipulation.
    - This seems to cause issues in certain scenarios, because in ReactOS, nonpaged pool, a resident and guaranteed resources, does not always have its PDEs mapped!
    - By calling MmGetPfnForProcess, this wound up in the annals of ReactOS mm code, which lazy-remapped the PDE. We detected this issue specifically in the cache manager, and fixed it there. It should not appear anywhere else.
  - MmAllocatePagesForMdl, MmAllocatePagesForMdlEx, MmFreePagesFromMdl:
    - The *Ex function is now implemented.
    - Allocating pages now uses MiAllocatePagesForMdl, which is based on the older MmAllocPagesSpecifyRange.
      - The code is cleaner, better commented, and better handles partial MDLs.
      - Cache flags are still ignored (so the Ex functionality isn't really there).
  - MmMapLockedPages, MmMapLockedPagesSpecifyCache, MmUnmapLockedPages:
    - These functions now use System PTEs for the mappings, instead of the hacked-up "MDL Mapping Space".
      - This frees up 256MB of Kernel Virtual Address Space.
      - Takes advantage of all System PTE functionality.
      - Once again, optimizations in the System PTE code will be felt here.
    - For user-space mappings however, the old code is still kept and used.
      - MiMapLockedPagesInUserSpace and MiUnMapLockedPagesInUserSpace are now in virtual.c and provide this.
  - MmProbeAndLockPages, MmUnlockPages:
    - The pages are actually probed now, in SEH. This did not seem to happen before (did someone misread the function's name?)
    - Probe for write is only done for write access to user pages (as documented).
    - We do not probe/check for write access for kernel requests (force Operation to be IoReadAccess).
    - Proper locking is used now: Address Space lock for user mappings, PFN lock for kernel mappings.
    - Faulting in pages (to make them available before locking) is now done outside the address space/PFN lock.
      - You don't want to be holding a spinlock/mutex while doing disk I/O!
    - For write/modify access, if the PTE is not writable, fail the request since the PTE protection overrides.
      - However, if the PTE is writable but also copy on write, then we'll fault the page in for write access, which is a legitimate operation for certain user-mode scenarios.
      - The old version always provided the CopyOnWrite behavior, even for non-CopyOnWrite pages!
    - Reference and lock every valid page that has a PFN entry (non-I/O Pages).
      - The older code did not seem to lock pages that had to be faulted in (weren't already valid).
    - Cleanup the cleanup code (no pun intended). Because we now mark the pages as locked early-on, and because of changes in MmUnlockPages, we can simply use MmUnlockPages in case of error, since it will be able to fully back-out and references/locks that we did.
      - Previous code attempted to do this on its own, in a pretty inconsistent manner, which would leave page leaks (both in references and lock count).
    - In MmUnlockPages, not as many changes, but we now:
      - Still make sure that an I/O Mapping MDL doesn't have valid PFN database pages (non-I/O).
        - An MDL can cover pages that are both I/O mapped and RAM mapped, so we have to unlock/dereference the latter instead of skipping them as the old code did.
      - Use the PFN lock when checking pages and unlocking/dereferencing them.
  - Overall, non-complete MDLs are now marked by having a -1 PFN, and the MDL code has been updated to early-break out of page-scanning loops and/or ignore such pages, which can happen in a sparse MDL.
  - Implementation has been tested on VMWare and QEMU for a variety of tasks and was found to be reliable and stable.

svn path=/trunk/; revision=41707

11 years ago - Memtrack enhancements
Cameron Gutman [Tue, 30 Jun 2009 02:30:36 +0000 (02:30 +0000)]
 - Memtrack enhancements
 - It now warns us when it detects an entry that wasn't freed by a memtrack-enabled function
 - It also provides some info when it detects a double free
 - Removed some extra tag tracking junk

svn path=/trunk/; revision=41705

11 years ago- revert selecting color and inactive menu state, because it doesn't work that way
Matthias Kupfer [Tue, 30 Jun 2009 00:44:59 +0000 (00:44 +0000)]
- revert selecting color and inactive menu state, because it doesn't work that way
- needs further invastigation

svn path=/trunk/; revision=41704

11 years agoAndrew Steinborn (
Colin Finck [Mon, 29 Jun 2009 22:21:11 +0000 (22:21 +0000)]
Andrew Steinborn (
- Update Firefox link to 3.0.11
  Will also be merged to the 0.3.10 release once I clean up the Downloader list there.

See issue #4642 for more details.

svn path=/trunk/; revision=41702

11 years agofix formatting
Christoph von Wittich [Mon, 29 Jun 2009 21:10:40 +0000 (21:10 +0000)]
fix formatting

svn path=/trunk/; revision=41700

11 years ago - Allocate IP_PACKET on the stack
Cameron Gutman [Mon, 29 Jun 2009 20:18:32 +0000 (20:18 +0000)]
 - Allocate IP_PACKET on the stack
 - Reduces non-paged memory consumption

svn path=/trunk/; revision=41698

11 years ago- continue "marletting"
Matthias Kupfer [Mon, 29 Jun 2009 20:18:21 +0000 (20:18 +0000)]
- continue "marletting"
- scrollbar size grip with marlett
- untested for DFCS_SIZEGRIPRIGHT, but should work too

svn path=/trunk/; revision=41697

11 years agomore header cleanup
Christoph von Wittich [Mon, 29 Jun 2009 19:50:12 +0000 (19:50 +0000)]
more header cleanup

svn path=/trunk/; revision=41696

11 years agofix build
Christoph von Wittich [Mon, 29 Jun 2009 18:47:29 +0000 (18:47 +0000)]
fix build

svn path=/trunk/; revision=41695

11 years agoSVN maintenance: Remove some svn:keywords properties
Colin Finck [Mon, 29 Jun 2009 18:24:35 +0000 (18:24 +0000)]
SVN maintenance: Remove some svn:keywords properties

svn path=/trunk/; revision=41694

11 years agoinclude winreg.h
Christoph von Wittich [Mon, 29 Jun 2009 18:23:48 +0000 (18:23 +0000)]
include winreg.h

svn path=/trunk/; revision=41693

11 years agosync test.h with wine 1.1.24
Christoph von Wittich [Mon, 29 Jun 2009 17:57:47 +0000 (17:57 +0000)]
sync test.h with wine 1.1.24

svn path=/trunk/; revision=41691

11 years agodefine WINE_UNICODE_API msvc compatible
Christoph von Wittich [Mon, 29 Jun 2009 17:53:26 +0000 (17:53 +0000)]
define WINE_UNICODE_API msvc compatible

svn path=/trunk/; revision=41690

11 years agosome header cleanup
Christoph von Wittich [Mon, 29 Jun 2009 17:38:57 +0000 (17:38 +0000)]
some header cleanup

svn path=/trunk/; revision=41689

11 years agoCBS_DISABLENOSCROLL ist quite useless
Matthias Kupfer [Mon, 29 Jun 2009 17:24:42 +0000 (17:24 +0000)]
CBS_DISABLENOSCROLL ist quite useless

svn path=/trunk/; revision=41688

11 years ago- Fix an incorrect (should be 1024) ASSERT by removing it entirely (no real point...
ReactOS Portable Systems Group [Mon, 29 Jun 2009 17:17:22 +0000 (17:17 +0000)]
- Fix an incorrect (should be 1024) ASSERT by removing it entirely (no real point to having it).
  - Fixes issues on systems where it turns out the PDE-alignment actually goes beyond 4 million bytes (since 4MB is a little bit more, and is the maximum alignment-based boost you can get).

svn path=/trunk/; revision=41687

11 years agofix scrollbar button issue and make it look like windows
Matthias Kupfer [Mon, 29 Jun 2009 16:47:56 +0000 (16:47 +0000)]
fix scrollbar button issue and make it look like windows

svn path=/trunk/; revision=41686

11 years agosync wincrypt.h with wine 1.1.24
Christoph von Wittich [Mon, 29 Jun 2009 16:26:46 +0000 (16:26 +0000)]
sync wincrypt.h with wine 1.1.24

svn path=/trunk/; revision=41685

11 years ago-revert IXP700 change as it doesn't seem to fix the issue (AHCI only?)
Christoph von Wittich [Mon, 29 Jun 2009 14:32:37 +0000 (14:32 +0000)]
-revert IXP700 change as it doesn't seem to fix the issue (AHCI only?)
-fix support for ICH7,ICH7M,ICH8,ICH8M,ICH9,ICH9R,ICH9M and ICH10 in compat mode

svn path=/trunk/; revision=41684

11 years ago- minor improvements in drawing
Matthias Kupfer [Mon, 29 Jun 2009 11:23:10 +0000 (11:23 +0000)]
- minor improvements in drawing
- remarks for problems and further changes

svn path=/trunk/; revision=41682

11 years ago- Fix build: use gpsi->dwInstalledEventHooks instead of gpsi->SrvEventActivity
James Tabor [Mon, 29 Jun 2009 06:07:15 +0000 (06:07 +0000)]
- Fix build: use gpsi->dwInstalledEventHooks instead of gpsi->SrvEventActivity

svn path=/trunk/; revision=41680

11 years ago- Remove ntuser syscolor functions from win32k (NtUserCallTwoParam)
Timo Kreuzer [Mon, 29 Jun 2009 03:36:31 +0000 (03:36 +0000)]
- Remove ntuser syscolor functions from win32k (NtUserCallTwoParam)
- Remove syscolor pen support from win32k
- use gpsi->dwInstalledEventHooks instead of gpsi->SrvEventActivity
- remove reactos specific fields from SERVERINFO

svn path=/trunk/; revision=41679

11 years agoGet rid of the SysColorPen stuff in user32, it's a wine concept. Use DC pen instead.
Timo Kreuzer [Mon, 29 Jun 2009 02:49:57 +0000 (02:49 +0000)]
Get rid of the SysColorPen stuff in user32, it's a wine concept. Use DC pen instead.

svn path=/trunk/; revision=41678

11 years ago- Remove alternative definition of KSDATAFORMAT which was introduced in 41468 and...
Johannes Anderwald [Sun, 28 Jun 2009 23:16:41 +0000 (23:16 +0000)]
- Remove alternative definition of KSDATAFORMAT which was introduced in 41468 and also exists in MS header
- Fixes breakage of AC97 in real hw
- MS should start fixing their headers

svn path=/trunk/; revision=41677

11 years agoadd SIIMIO flag for IXP700 like done for Silicon Image controllers
Christoph von Wittich [Sun, 28 Jun 2009 21:02:44 +0000 (21:02 +0000)]
add SIIMIO flag for IXP700 like done for Silicon Image controllers

svn path=/trunk/; revision=41676

11 years ago- Prevent PEVENT type redifinition (which is fine with MSVC but not with GCC).
Aleksey Bragin [Sun, 28 Jun 2009 20:52:37 +0000 (20:52 +0000)]
- Prevent PEVENT type redifinition (which is fine with MSVC but not with GCC).

svn path=/trunk/; revision=41675

11 years ago- Fix broken check for KSDATARANGE_AUDIO
Johannes Anderwald [Sun, 28 Jun 2009 20:06:45 +0000 (20:06 +0000)]
- Fix broken check for KSDATARANGE_AUDIO
- Zero struct

svn path=/trunk/; revision=41674

11 years ago- Add ENG_EVENT structure definition (from MSDN) to ntddvdeo.h.
Aleksey Bragin [Sun, 28 Jun 2009 18:58:45 +0000 (18:58 +0000)]
- Add ENG_EVENT structure definition (from MSDN) to ntddvdeo.h.
- Fix PEVENT definition in video.h: it's not some mystic VIDEO_PORT_EVENT which is not defined anywhere, it's a documented structure, which has to be compatible with the structure used in win32k EngEvent* functions too.

svn path=/trunk/; revision=41673

11 years agoadd svchost.exe to install package
Matthias Kupfer [Sun, 28 Jun 2009 18:23:05 +0000 (18:23 +0000)]
add svchost.exe to install package

svn path=/trunk/; revision=41672

11 years agoSync wordpad and winhlp32 with wine 1.1.24.
Daniel Reimer [Sun, 28 Jun 2009 17:27:56 +0000 (17:27 +0000)]
Sync wordpad and winhlp32 with wine 1.1.24.

svn path=/trunk/; revision=41671

11 years ago- Give the "windows" module a more meaningful name.
Colin Finck [Sun, 28 Jun 2009 14:41:02 +0000 (14:41 +0000)]
- Give the "windows" module a more meaningful name.
  It's now called "optional" as it started to contain other stuff apart from Windows native libraries.
- Add an optional file reference to the Systema font for Japanese text. The Japanese ROS GUI is already using it.
  This is probably just an intermediate solution as the font is Japanese-only (no Chinese or Korean support) and might not fit that well for dialogs, but it should serve us well for some time.

svn path=/trunk/; revision=41666

11 years agomodified base/applications/taskmgr/affinity.c
KJK::Hyperion [Sun, 28 Jun 2009 14:22:09 +0000 (14:22 +0000)]
modified   base/applications/taskmgr/affinity.c
modified   base/applications/taskmgr/debug.c
modified   base/applications/taskmgr/endproc.c
modified   base/applications/taskmgr/priority.c
   Arch Blackmann has never heard of exotic features of the C language such as "subroutines"

modified   base/applications/taskmgr/dbgchnl.c
modified   base/applications/taskmgr/procpage.c
modified   base/applications/taskmgr/procpage.h
   Did you know that Task Manager killed the wrong process when using the context menu? Fixed by using a sophisticated "subroutine" that reads the process entry index from the currently selected list item's client data, replacing the copy-pasted code that used the index of the list entry as the process entry index (which only worked before due to no sorting)
   Save the sort column and order

modified   base/applications/taskmgr/taskmgr.c
   Sort by image name by default

svn path=/trunk/; revision=41664

11 years ago- Fix build
Johannes Anderwald [Sun, 28 Jun 2009 14:12:58 +0000 (14:12 +0000)]
- Fix build

svn path=/trunk/; revision=41663

11 years ago- Start implementing the stream class driver
Johannes Anderwald [Sun, 28 Jun 2009 13:58:47 +0000 (13:58 +0000)]
- Start implementing the stream class driver
- Implemented StreamClassRegisterAdapter, StreamClassReenumerateStreams, StreamClassDebugAssert, StreamClassDebugPrint, StreamClassGetDmaBuffer
- Drivers using stream class driver should now be able to initialize

svn path=/trunk/; revision=41662

11 years agofix formatting
Christoph von Wittich [Sun, 28 Jun 2009 13:52:27 +0000 (13:52 +0000)]
fix formatting

svn path=/trunk/; revision=41661

11 years ago- Change icon for msiexec to Tango icon
Dmitry Chapyshev [Sun, 28 Jun 2009 09:21:47 +0000 (09:21 +0000)]
- Change icon for msiexec to Tango icon

svn path=/trunk/; revision=41660

11 years ago- Create mmsup.c in ReactOS memory manager directory. It hosts misc support functions:
ReactOS Portable Systems Group [Sun, 28 Jun 2009 07:52:30 +0000 (07:52 +0000)]
- Create mmsup.c in ReactOS memory manager directory. It hosts misc support functions:
  - Copy kmap.c here, since it's the very definition of "misc support function"
  - Copy some exported functions in mm.c which were listed as "misc functions"
    - Warn that current implementation of MmIsNonPagedSystemAddressValid will kill kittens.
- Rename mm.c to mmfault.c, since other than the misc functions now in mmsup.c, it was all routines to handle page/access faults.
  - Warn that MmIsAddressValid, as currently implemented, kills puppies.
  - Move WriteWatch functions to virtual.c since they're part of the Virtual API system call set already hosted there.
  - Move the global variables that people had been throwing in here to mminit.c, which is slightly more appropriate.
- Move wset.c's MmTrimUserMemory to balance.c, since that's where all other similar functions are located.
  - Incidentally, kill wset.c, as this was the only function present.
- No functional changes, just refactoring and cleanup (other than warning the critter murder the two broken functions will achieve if called).

svn path=/trunk/; revision=41659

11 years ago- Move all the functions from drvlck.c and verifier.c to ARM3's drvmgmt.c:
ReactOS Portable Systems Group [Sun, 28 Jun 2009 07:32:52 +0000 (07:32 +0000)]
- Move all the functions from drvlck.c and verifier.c to ARM3's drvmgmt.c:
  - "Managing driver managing" (by David Welch) is no more... the routines have been properly renamed and cleaned up.
  - Also moved Driver Verifier helper routines in here, and fixed a couple of bugs:
    - Do not allow hooking of the kernel or HAL image (tested on Windows Server 2003)
    - Cleanup some useless variable redefinitions and code complexity.
  - Documented what some of the Mm Lock/Unlock Pageable Section/Driver functions should do, for later if needed.
  - Made aliasses so the typo "Pagable" functions redirect to the correct "Pageable" functions.
  - No functional change -- the Verifier functions were unused, and the drvlock.c functions were unimplemented (and still are).
  - Also move one more *Pageable* function from wset.c to ARM3's drvmgmt.c -- it seemed to have been a lost orphan (Also unimplemented).

svn path=/trunk/; revision=41658

11 years ago- Reimplement MmAllocateContiguousMemory, MmAllocateContiguousMemorySpecifyCache...
ReactOS Portable Systems Group [Sun, 28 Jun 2009 05:43:12 +0000 (05:43 +0000)]
- Reimplement MmAllocateContiguousMemory, MmAllocateContiguousMemorySpecifyCache, MmFreeContiguousMemory, MmFreeContiguousMemorySpecifyCache:
  - Use a smarter algorithm (as described here: to first try to satisfy the allocation by a simple nonpaged pool allocation (for cached requests only).
    - This range is then checked for physical continuity, since it's not guaranteed for non-initial-pool allocations (and right now in ReactOS, it never is).
  - As a fallback, Windows NT then attempts to scan free nonpaged pool pages. This is not yet implemented since the ReactOS nonpaged pool is not usually contiguous (to the level that NT's is).
    - When the ARM pool is implemented and replaces nonpaged pool, this code path will have to be implemented.
  - As a last resort, the actual PFN database is scanned for contiguous free pages.
    - ReactOS used MmGetContiguousPages for this, which blindly scanned the PFN database. New MiFindContinuousPages will scan the physical memory descriptor block recently implemented, which avoids going over pages we already know are going to be unusable.
    - The ReactOS function also held the PFN lock for the entire duration of the scan, which is significant on systems with large memory. Instead, we make an initial unsafe scan first, and only lock when we think we've found a correct range (and we'll then reconfirm the ranges).
    - Finally, the older function actually did a double-scan to try to avoid using memory ranges under 16MB, which was useless on today's systems and also rather inefficient.
    - Other than that, the actual setup of the PFN entry is copy-pasted from the old ReactOS function, so nothing's changed there -- the page still looks the same, but the selection algorithm is faster and more accurate.
  - Once the pages are found, we piggyback on the new I/O mapping mechanism (which uses System PTEs) instead of doing it all over by hand as before.
  - Since the underlying support is still System PTEs, once again, optimizations to that component will yield significant improvements here too.

svn path=/trunk/; revision=41657

11 years ago- Add more hooks, where wine has them placed. Fixed user32 hooks for win32k.
James Tabor [Sun, 28 Jun 2009 03:02:15 +0000 (03:02 +0000)]
- Add more hooks, where wine has them placed. Fixed user32 hooks for win32k.

svn path=/trunk/; revision=41656

11 years agounbreak build of rostests
Timo Kreuzer [Sun, 28 Jun 2009 00:05:51 +0000 (00:05 +0000)]
unbreak build of rostests

svn path=/trunk/; revision=41655

11 years agofix advapi32 crypt winetests
Christoph von Wittich [Sat, 27 Jun 2009 23:55:29 +0000 (23:55 +0000)]
fix advapi32 crypt winetests
patch sent to wine

svn path=/trunk/; revision=41654

11 years ago[FORMATTING] Fix indentation, no code change
Timo Kreuzer [Sat, 27 Jun 2009 23:54:02 +0000 (23:54 +0000)]
[FORMATTING] Fix indentation, no code change

svn path=/trunk/; revision=41653

11 years agoUpdate SERVERINFO, PFNCLIENT, PFNCLIENTWORKER to Windows 7 version, add OEMBITMAPINFO...
Timo Kreuzer [Sat, 27 Jun 2009 23:33:57 +0000 (23:33 +0000)]
Add -fms-extensions compilerflag to user32, win32k, csrss, win32csr.

svn path=/trunk/; revision=41652

11 years agoDon't save/change/restore the DC pen in IntDrawScrollInterior, where it's not used...
Timo Kreuzer [Sat, 27 Jun 2009 23:12:22 +0000 (23:12 +0000)]
Don't save/change/restore the DC pen in IntDrawScrollInterior, where it's not used at all.

svn path=/trunk/; revision=41651

11 years ago- Copying from destination to destination isn't very smart.
ReactOS Portable Systems Group [Sat, 27 Jun 2009 22:51:23 +0000 (22:51 +0000)]
- Copying from destination to destination isn't very smart.
  - Fix bug when creating the physical memory descriptor block.

svn path=/trunk/; revision=41650

11 years ago- Actually it seems MmGetPhysicalMemoryRanges uses the MmPhysicalMemoryBlock, so...
ReactOS Portable Systems Group [Sat, 27 Jun 2009 22:39:03 +0000 (22:39 +0000)]
- Actually it seems MmGetPhysicalMemoryRanges uses the MmPhysicalMemoryBlock, so go ahead and implement that function.
  - Thanks to Matthieu Suiche (
  - Move physical.c into ARM3 and call it dynamic.c since these functions are for Dynamic Memory (Hotplug) for Server 2003.
  - Remove the old copyright header, as copy-pasting 5 DDK function definitions and rewriting them to say UNIMPLEMENTED isn't much of a copyright.

svn path=/trunk/; revision=41649

11 years ago- Call MmArmInitSystem for a second time, this time in Phase 1.
ReactOS Portable Systems Group [Sat, 27 Jun 2009 22:16:47 +0000 (22:16 +0000)]
- Call MmArmInitSystem for a second time, this time in Phase 1.
  - This will call MmInitializeMemoryLimits (now implemented) which will go ahead and create the MmPhysicalMemoryBlock.
    - This block contains the physical memory "runs" that are valid on the system, allowing the PFN database to differentiate between valid and non-valid RAM (instead of marking things as "BIOS").
  - Also this will come in handy later for various utilities.

svn path=/trunk/; revision=41648

11 years agoTaskmgr didn't build without compilation units,
Sylvain Petreolle [Sat, 27 Jun 2009 22:05:53 +0000 (22:05 +0000)]
Taskmgr didn't build without compilation units,
moving PerfDataGet to perfdata functions fixes it.

svn path=/trunk/; revision=41647

11 years ago- Fix callback set and changed data. Process hooks if we are hooked.
James Tabor [Sat, 27 Jun 2009 20:52:33 +0000 (20:52 +0000)]
- Fix callback set and changed data. Process hooks if we are hooked.

svn path=/trunk/; revision=41646

11 years agoAllow sorting the list of processes in Task Manager by any column. Patch by Maxime...
KJK::Hyperion [Sat, 27 Jun 2009 19:16:29 +0000 (19:16 +0000)]
Allow sorting the list of processes in Task Manager by any column. Patch by Maxime Vernier <> with fixes by Sylvain Petreolle <> and KJK::Hyperion <>
See issue #4608 for more details.

svn path=/trunk/; revision=41645

11 years ago- Add some defines in preparation for _WINE.
Stefan Ginsberg [Sat, 27 Jun 2009 19:06:00 +0000 (19:06 +0000)]
- Add some defines in preparation for _WINE.
- Add missing ExtDeviceMode and PrivateExtractIconsA/W to PSDK and remove from Wine-only headers, as these are defined in the official PSDK.

svn path=/trunk/; revision=41644

11 years agofix two kernel32 locale winetests
Christoph von Wittich [Sat, 27 Jun 2009 18:46:10 +0000 (18:46 +0000)]
fix two kernel32 locale winetests

svn path=/trunk/; revision=41643

11 years ago- Implement the rest of the HCBT_ support.
James Tabor [Sat, 27 Jun 2009 18:36:29 +0000 (18:36 +0000)]
- Implement the rest of the HCBT_ support.

svn path=/trunk/; revision=41642

Sylvain Petreolle [Sat, 27 Jun 2009 14:41:56 +0000 (14:41 +0000)]

svn path=/trunk/; revision=41641

11 years ago- KeDetachProcess & KeUnstackDetachProcess: Fix a typo when swapping back to the...
Stefan Ginsberg [Sat, 27 Jun 2009 11:07:58 +0000 (11:07 +0000)]
- KeDetachProcess & KeUnstackDetachProcess: Fix a typo when swapping back to the original process that would switch _from_ the original process to itself. We now properly swap from the _current_ process.

svn path=/trunk/; revision=41640

11 years ago- This patch is lets you visually dump the entire ReactOS PFN database, useful for...
ReactOS Portable Systems Group [Sat, 27 Jun 2009 09:54:56 +0000 (09:54 +0000)]
- This patch is lets you visually dump the entire ReactOS PFN database, useful for debugging. Surprising nobody had done in this in the past, since it wasn't too hard (but it took a bit long to figure out how to get it in there).
  - That's what she said.

svn path=/trunk/; revision=41639

11 years ago - Always call the completion handler so we don't leak packet descriptors
Cameron Gutman [Sat, 27 Jun 2009 08:48:58 +0000 (08:48 +0000)]
 - Always call the completion handler so we don't leak packet descriptors
 - Don't remove the NCE if we fail because it may not be ours
 - Mark the IRPs pending before we insert them into our queue
 - Check that the addresses match so we don't receive somebody else's packets
 - Part 1 of 2

svn path=/trunk/; revision=41638

11 years ago- Remove leftover performance tracing code.
ReactOS Portable Systems Group [Sat, 27 Jun 2009 08:43:56 +0000 (08:43 +0000)]
- Remove leftover performance tracing code.

svn path=/trunk/; revision=41637

11 years ago- Reimplement kernel stack allocation (MmCreateKernelStack, MmDeleteKernelStack,...
ReactOS Portable Systems Group [Sat, 27 Jun 2009 08:41:45 +0000 (08:41 +0000)]
- Reimplement kernel stack allocation (MmCreateKernelStack, MmDeleteKernelStack, MmGrowKernelStack, MmGrowKernelStackEx):
  - Use System PTEs.
  - Allocate 12KB stacks with a 4KB guard page, and expand them up to 60KB as required.
    - Previous implementation always allocated 60KB, without any guard page.
  - The result is that on a minimal ReactOS install, simply booting up now requires an average of 0.5MB less of physical memory than before.
  - And once again, optimizations to the system PTE allocation code should significantly improve performance.
  - Should also analyze benefits of using a dead stack slist as done on Windows. (Assembla Ticket #39).

svn path=/trunk/; revision=41636

11 years agotabs -> spaces
Christoph von Wittich [Sat, 27 Jun 2009 07:38:02 +0000 (07:38 +0000)]
tabs -> spaces
use more consistent indentation

svn path=/trunk/; revision=41635

11 years ago- Allocate enough space for the ARM3 PFN database, and fixup the calculation of the...
ReactOS Portable Systems Group [Sat, 27 Jun 2009 07:14:52 +0000 (07:14 +0000)]
- Allocate enough space for the ARM3 PFN database, and fixup the calculation of the initial nonpaged pool.
- The ARM3 PFN database is more of a "shadow" database not to interfere with the real ReactOS PFN database. It starts at 0xB0000000, which is where the initial nonpaged pool started (which now starts somewhere after the ARM3 PFN database).
- No new behavior has been introduced other than additional physical memory consumption for the PFN DB pages, and updated memory layout in the ARM3 world.

svn path=/trunk/; revision=41634

11 years ago - Use the timeout that the caller gives us if it is nonzero so we don't block foreve...
Cameron Gutman [Sat, 27 Jun 2009 07:03:45 +0000 (07:03 +0000)]
 - Use the timeout that the caller gives us if it is nonzero so we don't block forever if nobody wakes us

svn path=/trunk/; revision=41633

11 years ago - The timeout value passed to tsleep is in milliseconds and so_linger is in seconds...
Cameron Gutman [Sat, 27 Jun 2009 06:59:22 +0000 (06:59 +0000)]
 - The timeout value passed to tsleep is in milliseconds and so_linger is in seconds so convert to milliseconds

svn path=/trunk/; revision=41632

11 years ago- Blow away the bottom 2GB of virtual address space in the ARM^3 initializer. Previou...
ReactOS Portable Systems Group [Sat, 27 Jun 2009 05:32:53 +0000 (05:32 +0000)]
- Blow away the bottom 2GB of virtual address space in the ARM^3 initializer. Previously this was kind of done with MmUnmapPageTable in MmInit1, but this code (And the function, which had only been used for this purpose, are gone)
- Also set the Page Directory for the system/idle process in a slightly more correct way, instead of depending on the CR3 value. Do this in ARM^3 now, and remove the older code (and the MmGetPageDirectory function, which was only used by this).

svn path=/trunk/; revision=41631

11 years ago - Don't leave the listen IRP in the queue when cancelling the listen request
Cameron Gutman [Sat, 27 Jun 2009 03:23:10 +0000 (03:23 +0000)]
 - Don't leave the listen IRP in the queue when cancelling the listen request
 - Kill all the requests before closing the socket
 - Notify oskittcp when we are cancelling requests so it can properly close the socket

svn path=/trunk/; revision=41630

11 years ago - Acquire the cancel spin lock before calling IoSetCancelRoutine
Cameron Gutman [Sat, 27 Jun 2009 03:14:06 +0000 (03:14 +0000)]
 - Acquire the cancel spin lock before calling IoSetCancelRoutine
 - Remove some extra junk

svn path=/trunk/; revision=41629

11 years ago- Rewrite MmMapIoSpace and MmUnmapIoSpace to use System PTEs instead.
ReactOS Portable Systems Group [Sat, 27 Jun 2009 03:03:24 +0000 (03:03 +0000)]
- Rewrite MmMapIoSpace and MmUnmapIoSpace to use System PTEs instead.
- Much faster and cleaner (will be even faster when System PTE allocation is optimized).
- Better handling of esoteric caching options, especially relevant for ARM.
  - Handled through the MiPlatformCacheAttributes, which should be defined differently for each platform (TODO).
    - Handles both I/O (device) and RAM physical memory.
- Correct flushing of CPU caches (not a big deal on x86, but matters on ARM).

svn path=/trunk/; revision=41628