ChangeLog-0.3.9

This is the changelog for ReactOS™ version 0.3.9 (released 26 April, 2009), an open-source operating system designed to be binary executable – and device driver-compatible with Microsoft™ Windows NT™ and subsequent Microsoft operating systems such as Windows 2000™ and Windows XP™. ReactOS is written by the ReactOS development team, and the last previous version of ReactOS was version 0.3.8 (released 4 February, 2009).

IO

If a driver has no Tag specified it should be defaulted to the max ULONG value, so it gets loaded after all drivers with correct tags. This fixes a problem of null.sys and beep.sys loading up to TagCount (20 for Base group) times during each boot. (Aleksey Bragin)

KD

Synchronize debug messages output to the serial port. Now each line of a debug log is printed synchronously, as it is NT. In future, this should be converted to a generic spinlock for all registered KD handlers (Aleksey Bragin)

KDBG

Load debug symbols if compiled with DBG, but don't load if booting with less than 96Mb of RAM. (Aleksey Bragin)

KE

Fix queue index (actually do what comment in the code says). Spotted by Alex (Aleksey Bragin)

FTFD

HID

Move part of the 1st stage pnp hacks to kbdclass driver. Previously, the driver (i8042prt) relied on kbdclass's normal reinit routine being called BEFORE a registered boot reinit routine, which is certainly wrong on a real NT system. Now, the correct order is ensured, and it is not relying on a broken reinit calling order in ReactOS anymore (Aleksey Bragin)

SYSAUDIO

Implement an object dispatcher like in portcls which will be used to forward requests Johannes Anderwald

Check if device supports a specified format. When the device doesnt support a format, query its datarange and create a format which it supports and create a kmixer pin which is used to convert the format Johannes Anderwald

Fix an incorrect assumption that endpoint descriptors must immediately follow an interface descriptor (there may be generic descriptors in between too, as it is for e.g. USB HID devices). (Aleksey Bragin, Michael Lotz)

Don't try to be smarter than Windows and don't copy background/foreground color from the original DC. Spotted and confirmed by Evgeniy Boltik. As a result issues in bug 4143 are fixed, as well as other possible problems. (Aleksey Bragin, Evgeniy Boltik, bug #4143)

Remove a header structure from memory regions allocated with EngAllocUserMem. Modern versions of Windows (at least XP and higher) don't do this and instead save this information elsewhere. Confirmed by Alexandre Julliard's test case for calling WriteFile with the DIB section bits as buffer (5 less failures now) and by arguing with Evgeniy Boltik. (Aleksey Bragin)

Services

TelnetD

Initial work to support optional logging to a syslog server (Steven Edwards)

Umpnpmgr

Use rundll32.exe and CreateProcessAsUserW to call ClientSideInstallW for installing new devices and supply all required information over a named pipe.The named pipe communication was monitored under Windows XP SP2, so that the protocol under ReactOS is mostly compatible (Colin Finck)

Give umpnpmgr the SE_ASSIGNPRIMARYTOKEN privilege to use CreateProcessAsUserW (Colin Finck)

Open the token of the userinit process with TOKEN_ASSIGN_PRIMARY | TOKEN_DUPLICATE | TOKEN_QUERY, we don't get TOKEN_ALL_ACCESS and used to fail here without noticing it (Colin Finck)

When running a non-executable file, run the handler program in the same console if it's a console program; use NULL as the lpVerb to get the default action rather than assuming that it's "open"; allow passing parameters besides just the file name. (Jeffrey Morlan)

Make START command able to open non-executable files or directories/URLs by using ShelllExecute. (Jeffrey Morlan, Bug #4055)

Implement all remaining switches for the START command. (Jeffrey Morlan)

NEWDEV

SHELL32

Remove _SHExpandEnvironmentStrings and replace calls to it by usual ExpandEnvironmentStringsW calls.That function didn't really do what it should as it replaced some variables by faulty generated values instead of their actual values. (Colin Finck)

Remove the now unused _SHOpenProfilesKey and _SHGetProfilesValue functions (Colin Finck)