From ReactOS Wiki
Revision as of 21:07, 23 February 2007 by Z98 (talk | contribs)
Jump to: navigation, search


Developers: If you are looking for the appropriate SVN Logs for 0.3.1, you can download them here:

Also please use your real names on this changelog!

For patches, please use this format: Patch from (writer) for Bug #x: details about the patch

This is the changelog for ReactOS™ version 0.3.1, 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.0 (released 27 August, 2006).

Highlights of this Release


Full Changelog


Generic 0.3.1 Changes

  • Unicode corrections (Johannes Anderwald)
  • Start removing bitsteam font from ReactOS. Only console apps are using bitstream font but that will change once a few other issues are resolved. The rest of ROS is using dejavu, a unicode font (Magnus Olsen)
  • Enable pnpmgr in livecd (Hervé Poussineau)
  • mkhive: use cmlib instead of duplicating code (Hervé Poussineau)
  • VMWare properly detected (Alex Ionescu)

Check these, Colin

  • Handle leaks fixed in ExDestroyHandleEntry (Alex Ionescu)
  • Bugs fixed in SMSS and CSRSS (Alex Ionescu)
  • New icon/cursor selection code, cursors and radio button drawing code (Ged Murphy)



  • Added and updated French Translation for Control Panel, Devmgmt, Downloader, ibrowser, Notepad, Reporterror, Rundll32, Solitaire, Syssetup, Timedate.cpl and Userinit (Pierre Schweitzer)
  • Added French Translation to Ipconfig (Sylvain Petreolle)
  • Thai keyboard layout added (Dmitry G. Gorbachev)
  • Dutch Translations for Explorer, ibrowser, Mmsys.cpl, Reporterror and Welcome from i386DX (commited by Magnus Olsen)
  • Patches from Signouret Jerome for Bugs #1312 and #1370: French Translations for FreeLoader's fdebug and WineMine (commited by Magnus Olsen)
  • Patch from Sylvain Petreolle for Bug #1539: French Translation for Newdev.dll (commited by Magnus Olsen)
  • Patches from Heis Spiter for Bugs #1883 and #1884: Updated French Translation for Reporterror and Rundll32 (commited by Magnus Olsen)
  • Patches from Paolo Devoti for Bugs #1921 to #1935 and #1974 to #1976: Italian Translations for Cacls, Control Panel, Devmgmt, Downloader, Expand, Format, ImageSoft, Regsvr32, Reporterror, Rundll32, Sndvol32, Taskmgr, Userinit, Vmwinst, Winlogon and WordPad (commited by Johannes Anderwald)
  • Patch from Kamil Hornicek for Bug #1959: Czech translation for Control Panel
  • Swedish translation of getfirefox by Andreas Bjerkeholt (commited by (Magnus Olsen))
  • Patch from Sylvain Petreolle for Bug #1539: Recommit french translations (commited by Magnus Olsen)
  • Patches from Apostolos Alexiadis for Bugs #1429, #1509 and #1630: Greek Translations for Calc, Expand, Explorer, Hdwwiz, Oleaut32.dll, Rundll32, Userinit (commited by Magnus Olsen)
  • Patches from Apostolos Alexiadis for Bugs #1631 and #1831: Greek Keyboard layout rewrite. Punctuation stuff and other similar issues fixed (commited by Magnus Olsen)
  • Patches from Artyom Reznikov for Bugs #1279, #1624 and #1635: Added and updated Ukrainian Translations for Appwiz, Comdlg32.dll, Desk.cpl, Explorer, GetFirefox, Hdwwiz, Intl.cpl, Mmsys.cpl, Notepad, Regedit, Taskmgr, Timedate.cpl, User32.dll, Welcome and Wininit.dll (commited by Magnus Olsen)
  • Patches from Lars Martin Hambro for Bugs #1606, #1607, #1637, #1641 to #1644, #1674 to #1687, #1695, #1696, #1698 and #1700: Norwegian Translations for Cacls, Calc, Cmd, Expand, Explorer, Format, GetFirefox, ibrowser, Imagesoft, Msconfig, Notepad, Ntvdm, "reactos.exe" (Setup tool under Windows), Regedit's Column List Box, Regsvr32, Reporterror, Rundll32, sm, Taskmgr, Userinit, Welcome, WineFile, WineMine, Winlogon and WordPad (commited by Magnus Olsen)
  • Patch from Fork for Bug #1633: Norwegian Translation for Syssetup.dll, Winmm.dll, User32.dll and Userenv.dll (commited by Magnus Olsen)
  • Patch from Simon Hanae for Bug #1795 and #1876: Japanese keyboard driver added (commited by Magnus Olsen)
  • Updated Italian translation of Calc by Gabriel Ilardi (commited by Magnus Olsen)
  • Patch from arzi for Bug #1367: Finnish Translation for Control and "reactos.exe" (Setup tool under Windows) (commited by Magnus Olsen)
  • Patch from Emil Kaczmarek for Bug #1315: Polish Translation for WineMine (commited by Magnus Olsen)

ReactOS Core

Kernel and Executive (NTOSKRNL)

  • Implemented ObReferenceProcessHandleTable (Alex Ionescu)
  • Implemented ObDereferenceProcessHandleTable (Alex Ionescu)
  • Implemented ObpReferenceProcessObjectByHandle (Alex Ionescu)
  • Simplified ObDuplicateObject (Alex Ionescu)
  • Patch from (Dmitry G. Gorbachev) for Bug #1953: fixes invalid sync after loading BLUE.SYS
  • Various warnings fixed (Thomas Weidenmueller)
  • Cleanup of locking and lookup macros (Alex Ionescu)
  • Adjustments in SeAccessCheck, returning STATUS_SUCCESS (Alex Ionescu)
  • Various optimizations of lookup context and lock (Alex Ionescu)
  • Patch from (Thomas Weidenmuller) for Bug #1667: NTOSKRNL: Fix GCC4 warning and return correct error code in NtSignalAndWaitForSingleObject
  • Fix incorrect loop of race conditions in the rundown protection implementation, requiring the value to have been changed and inactive before slow path is taken (Alex Ionescu)
  • Fix locking bugs in guarded mutex implementation where operations were not reattempted (Alex Ionescu)
  • Fix inverted result bug in KeTrytoAcquireGuardedMutex (Alex Ionescu)
  • Fix KiMask32Array, value off and caused errors in priority/affinity masks (Alex Ionescu)
  • Patch from (Art Yerkes) for memory management page referencing.

Run Time Library (RTL)

  • Patch from (Thomas Weidenmuller) for Bug #1620: Fix a locking bug in the vectored exception handling
  • Patch from (Thomas Weidenmuller) for Bug #1671: Fix checking the SACL data area in the Win64 version of RtlSelfRelativeToAbsoluteSD2

Kernel Mode Drivers


Win32™ Personality

Kernel-mode subsystem server (Win32K)

  • Fix BSOD in IntPrepareDriver (Bug #1321) (Hervé Poussineau)
  • New keyboard driver and layout structure implemented (James Tabor)
  • Have IntSystemParametersInfo send WM_SETTINGCHANGE when needed (Timo Kreuzer)
  • Patch from (Timo Kreuzer) for Bug #843: Removed focus from windows, workaround
  • NtUserSetFocus accepts Null window (Timo Kreuzer)
  • Same StretchBlt code for 8, 16, 32 bpp DIBs. It does not use putpixel anymore for 8bpp and 32bpp. Minor cleanups (Magnus Olsen)
  • Last part of the new strectsblt. Remove all mul and div from the loop (speed increase). (Magnus Olsen)
  • Commit FreeType cache glyth patch by royce3. Modified by tinus to work with trunk, final fixes made by Timo Kreuzer. Text output receives speed increase from this fix. See Bug #511 for more details. (Magnus Olsen)
  • Implemented NtUserDrawCaption, NtGdiGetPath, NtGdiPathToRegion, NtGdiFlattenPath, NtGdiCloseFigure, NtGdiStrokePath, NtGdiStrokeAndFillPath, NtGdiPolyDraw (Saveliy Tretiakov)
  • Remove hack from Aleksey in changedisplay(), which hard coded the display number. With this patch we are now extract the display number from the desktop and use it. (Johannes Anderwald) and (Magnus Olsen)
  • Patch from Thomas Weidenmueller for Bug #1507: This patch fixes more issues with NtUserFindWindowEx. (one example of bugs have been fixed with this patch is the tray icon) (commited by Magnus Olsen)
  • Fix strechblt dib16 and dib32, can be compiled with -O2 (gcc). See Bug #1520 for details (Magnus Olsen)
  • Patch from Thomas Weidenmueller: Patch to fix a couple of argument probing bugs in NtQuerySymbolicLinkObject and NtCreateSymbolicLinkObject
  • Fix two failures from wine gdi32 test. When HDC is NULL to NtGdiCreateDIBitmap we to need create a hdc and delete the hdc when we are done. (Magnus Olsen)
  • Implement SPI_GETFLATMENU and SPI_SETFLATMENU , not fully tested (Magnus Olsen)
  • Implement SPI_GETWHEELSCROLLLINES and SPI_GETWHEELSCROLLCHARS. Further additions to Win32k may be necessary to fully implement the two (Magnus Olsen)
  • Clean up NtGdiDdCreateDirectDrawObject and test. Fix create hdc when it is NULL (Magnus Olsen)
  • Rewrote NtGdiDdQueryDirectDrawObject. gdientry2 now working more or less. Create surface not yet fully implemented. A few more steps before dx hal working out of the box from win32k and gdi32. Thanks to DrFred for helping debugging between ddraw.dll and gdi32.dll with his sniffer apps, Alex for GdiEntry2, W3seek, Filip, GvG for helping me understand how our win32k works and some other info. It is now possible to load a graphic driver directx hal support in ROS. But I do not know how well it works yet (Magnus Olsen)


Control Panel Applets

  • Added currency controls with format information (Eric Kohl)
  • Hit-testing added for caption buttons in Display properties - Appearance tab(Eric Kohl)


  • Sysdm has been overhauled and now looks more like XP's (Ged Murphy)
  • Patch from Colin Finck for Bug #1858: Added CPU detection and make a better layout of the system info. (commited by Magnus Olsen)

Win32™ Applications


  • Andrey Janzen (virus126 at gmail dot com) patch fixing copy\paste bug in calc (commited by Saveliy Tretiakov)
  • Fixed Bug #2019. 5.01 can be typed in calc now. It used to remove the zero so the result was 5.1. (Magnus Olsen)
  • Fix compiling error in calc.c (Magnus Olsen)



  • Added the Download! Utility for downloading various free software (Maarten Bosma)


  • Explorer does not leak icons and bitmaps anymore (see Bug #1554) (Timo Kreuzer)



  • Read the shell name from HKCU, if it does not exist fall back to HKLM, if this does not exist use "explorer.exe" and "cmd.exe" (ie allows to specify a custom shell) (Hervé Poussineau)


Win32™ Libraries



  • Implemented TOOLTIPS_NotifyFormat, now returns the type of the string (Timo Kreuzer)


  • Fix the calc bug, modf is compelete wrong, replace it with DJGPP C version of modf with small changes from me so it compile in ReactOS. Old modf did not clear the st reg before it was used, did not load the reg right, did not handler all cases (Magnus Olsen)
  • Reporting djgpp fgets to fgetws, with wine test the old version failed on reading the string. Now we do not have a any bug in fgetws, according wine test. Test run in win2k and Reactos to be 100% sure it was not a Wine test problem. (Magnus Olsen)
  • Fixing a ultoa bug, replacing both version with wine, copy the code from wine 0.9.0; I did add a NULL check for the string so it can not bsod. wine ntdll string only report one error, left to fix, I run wine test on windows 2000 and reactos to compare the result. Fireball report wine_ntdll_test string crach on windows xp, but it does not crash in windows 2000. (Magnus Olsen)
  • Fixing a i64ltoa bug, replacing both version with wine, copy the code from wine cvs 2005-05-21, bug report by wine test (Magnus Olsen)
  • Replace the following _wtol, _wtoi, _i64tow, _ui64tow, _ltow, _ultow, _ui64toa, _itow, _ltow, ultow with Wine from Wine CVS 2006-05-21 because we failed on Wine test on all of these. In Windows 2000 wine test ntdll string did not fail. (Magnus Olsen)
  • Import cprintf from Wine CVS 2006-05-23 as Bug #1529 suggested. It makes most of msvcrt string test work, only one failure left to fix. (Magnus Olsen)
  • Replace djgpp hell bugs fcvtbuf with project with small modifications to match ReactOS arch. Floating point to string conversion routines Copyright (C) 2002 Michael Ringgaard. All rights reserved. (commited by (Magnus Olsen)
  • Replace _swab with Wine CVS 2006-05-11 version, this will take care of our problem with overlapped memory with swab, and this also provides two more Wine msvcrt tests. 100% pass with Wine msvcrt string test. (Magnus Olsen)
  • One more Wine msvcrt printf test pass, now it is 62 fails instead of 63 fails (Magnus Olsen)
  • Start implementing float into sprintf, snprintf and other printf APIs. These commits are markers for further implementation, such as for *printf api (the main api functions). Changes made to sprintf.c must be mirrored into swprintf.c or changes into swprintf.c must be mirrored into swprintf.c, other wise the effect of the bugfix or change will not be executed in Reactos, as whether ANSII or unicode versions are being used. (Magnus Olsen)
  • swprintf/sprintf commits for full support of %e %E %f %g %G, numberf function remains to be done (Magnus Olsen)
  • Small rewrite to pass wine test, no bugs in ungetc according to Wine test of msvcrt. (Magnus Olsen)
  • Fix so fread return right value of bytes/chars it reads, passing one more wine test in msvcrt file(Magnus Olsen)
  • Remove stub for _wenviron, already implemented in crt.a (Magnus Olsen)
  • Redirect __p__mbctype to _mbctype, idea copied from Wine (Magnus Olsen)
  • Redirect __p__tzname to _tzname, idea copied from Wine (Magnus Olsen)
  • Fix 24 bugs in *printf string version. Now failing 34 test in wine_test msvcrt printf (Magnus Olsen)
  • Fix one more Wine msvcrt printf test (Magnus Olsen)
  • Fix 2 more errors in msvcrt *printf API (Magnus Olsen)
  • Implement datatype I32 for *printf string version. We have a *printf for files as well. Now failing 29 Wine tests in msvcrt printf (Magnus Olsen)
  • Fix two more bugs in *printf strings version. One more Wine test passed (Magnus Olsen)
  • Fix some bugs for %c in the string version of printf (Magnus Olsen)
  • Use uppercaps for %p instead of lowercaps when it formats the string. Now failing 27 Wine tests (Magnus Olsen)
  • Implement %Fp. Now failing 25 Wine test for string version of *printf API (Magnus Olsen)




DirectX Libraries


  • Implemented NtGdiPolyDraw, based on Wine's Implementation (Saveliy Tretiakov)
  • Fix a bug in DdDeleteDirectDrawObject, zero the DirectDraw handler. If it is successful memory is freed (Magnus Olsen)
  • Start implementation of gdientry2, for the moment it returns incorrect info and does not fill some stuff right (Magnus Olsen)


  • Fix some window focus issues (Timo Kreuzer)
  • Patch from Thomas Weidenmueller for Bug #1486: Convert WM_MDICREATE messages from/to unicode
  • Fix two user mode crash for menu. Do not try reading from NULL pointer and compare the value. This increases success in user32_winetest.exe, but other user mode crashes with menu remain. (Magnus Olsen)

3rd Party Software

  • Update Zlib from 1.1.4 to 1.2.3 to fix some memory leaks (Magnus Olsen)
  • Updated DejaVu Font to Version 2.13 (Magnus Olsen)
  • Updated Buslogic Driver to Version (see Bug #1891) (Christoph von Wittich)
  • Freetype, small speed increase, remove Freetype ROS glue C version of memcpy, memcmp, isalnum, labs and replace it from reactos string.a. We got asm version of most of them, so that is the reason to the speed increase of Freetype (Magnus Olsen)


  • Improved Compatibility with Intel Macs (Michael Steil)
  • Patch from Colin Finck for Bug #1856: Adds the "ProcessorNameString" value to the "CentralProcessor" registry key (commited by Magnus Olsen)
  • Patch from Dmitry G. Gorbachev and Magnus Olsen for Bug #1874: Patch does not use the RDMSR and WRMSR measure method, which we need for dual core and the CPU supports it. See Intel documentations AP-485. The patch is from Dmitry G. Gorbachev, detections of RTSC support for single and dual core by me, adding check if the CPU support RDMSR and WRMSR and send a true or false value to GetCpuSpeed, so we know which method we should use. Dmitry's patch should be used when it is false, otherwise we should use the RDMSR and WRMSR measure method. See Bug #1874 for more details. (Magnus Olsen)