From ReactOS Wiki
Revision as of 03:14, 21 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!

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



issues fixed! (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)
  • Bug : 1953 : Patch by (Dmitry G. Gorbachev), 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 w3seek :Bug #: 1667  : NTOSKRNL: Fix GCC4 warning and return correct error code in NtSignalAndWaitForSingleObject

Run Time Library (RTL)

bugfix : patch from w3seek bug 1620 : RTL: Fix a locking bug in the vectored exception handling bugfix : patch from w3seek : Bug#: 1671  : RTL: Fix checking the SACL data area in the Win64 version of RtlSelfRelativeToAbsoluteSD2

Kernel Mode Drivers


Win32™ Personality

Kernel-mode subsystem server (Win32K)

  • New keyboard driver and layout structure implemented (James Tabor)
  • Have IntSystemParametersInfo send WM_SETTINGCHANGE when needed (Timo Kreuzer)
  • Bug : 843: Patch from (Timo Kreuzer) which removed focus from windows
  • NtUserSetFocus accepts Null window (Timo Kreuzer)
  • same strechblt code for 8,16,32, it does not using putpixel anylonger for 8bpp and 32bpp, and small cleanup (Magnus Olsen)
  • Last part of the new strectsblt remove all mul and div from the loop (speed incress). (Magnus Olsen)
  • commit freetype cache glyth patch, orginal author of this patch is royce3, modify by tinus so it work again with trunk, ThePhysicist (timo dot kreuzer at web dot de) did fix the last bugs in it. at last long leave freetype glyth patch, now we got faster text output in reactos. and I where up to 38fps in winquake with this patch (debugbuild + serial debug on). This is very fast. I wonder what speed it give in release build or qemu now. See bug 511 for more details. (Magnus Olsen)
  • Implemented NtUserDrawCaption (Saveliy Tretiakov)
  • Implemented NtGdiGetPath, NtGdiPathToRegion, NtGdiFlattenPath, NtGdiCloseFigure, NtGdiStrokePath, NtGdiStrokeAndFillPath (Saveliy Tretiakov)
  • Implemented NtGdiPolyDraw (Saveliy Tretiakov)
  • remove fireball hack in changedisplay(), do not hard code the display number,

with this patch we are now extract the display number from the desktop and use it patch was written by me and Johannes Anderwald. I was to lazy finish it so Johannes Anderwald did finish it thanks janderwald. (Magnus Olsen)

  • Bug 1507 patch from Thomas Weidenmueller: 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
  • Fixing strechblt dib16 and dib32 can be compile with -O2 (gcc) reporeted by jimtalor, it did not work on real hardware with -O2 when it was run with winqauke with some setting see bug 1520 (Magnus Olsen)
  • Patch from Thomas Weidenmueller: Patch to fix a couple of argument probing bugs in NtQuerySymbolicLinkObject and NtCreateSymbolicLinkObject:
  • Fixing two fail from wine gdi32 test, When HDC is NULL to NtGdiCreateDIBitmap we need create a hdc and delete the hdc when we are done. (Magnus Olsen)
  • Implement SPI_GETFLATMENU and SPI_SETFLATMENU after jimtabor request not tested if it work Magnus Olsen)
  • Implement 1. SPI_GETWHEELSCROLLLINES I am but unsure if win32k need more changes it seam like it is only a counter that should be set/get a value and user apps take care of the rest. Implement it for jimtabor did request it. Implement 2. SPI_GETWHEELSCROLLCHARS I am but unsure if win32k need more changes it seam like it is only a counter that should be set/get a value and user apps take care of the rest. (Magnus Olsen)
  • Clean up NtGdiDdCreateDirectDrawObject and confirm it working. 1. Fix create hdc when it is NULL (Magnus Olsen)

rewrote NtGdiDdQueryDirectDrawObject for I must have been drunk when I wrote it frist time. Now we manger getting gdientry2 working more or less here is a log how far I have come I have not implement create surface for the drv yet. But it showing lest how far dxhaltest comes. as u all can see it is not far before we getting dx hal working out of the box from win32k and gdi32. I will thank all people that have been invlove in this, DrFred to helping debug betwin ddraw.dll gdi32.dll with his sniffer apps, Alex for GdiEntry2, and some other help, W3seek, Filip, GvG help me to understand how our win32k how it works and some other info. to make so far posible, it is now posible to load a graphic driver directx hal support in ros. But I do not known how well it works yet, after it is the frist public version that working so far.

ddraw.c:60) NtGdiDdCreateDirectDrawObject ddraw.c:140) DirectDraw return handler 0x3b6001e4 ddraw.c:170) NtGdiDdQueryDirectDrawObject ddraw.c:247) Found DirectDraw CallBack for 2D and 3D Hal ddraw.c:170) NtGdiDdQueryDirectDrawObject ddraw.c:247) Found DirectDraw CallBack for 2D and 3D Hal ddraw.c:432) NtGdiDdCanCreateSurface ddraw.c:348) NtGdiDdCreateSurface (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)
  • Added CPU detection (Colin Finck)
  • Colin Finck (mail at colinfinck dot de) patch to sysdm (id=1161) fixing truncate of string and making allot better layout of the system info. See issue #1858 for more details. (commited by Magnus Olsen)

Win32™ Applications




  • 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" (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, Follow bugs did I notice in our modf 1. bug did not clear the st reg before it was use, 2. bug did not load the reg right, 3. bug did not handler all case (Magnus Olsen)
  • reporting djgpp fgets to fgetws, with wine test the old version did fail on reading string, it did to far. now we do not have a any bug in fgetws, acoding wine test, I ran the test in win2k and reactos to be 100% sure it was not wine test fualt. (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 follow _wtol, _wtoi, _i64tow, _ui64tow, _ltow, _ultow, _ui64toa, _itow, _ltow, ultow with wine from wine cvs 2006-05-21 for we did fail on wine test on all 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, I was looking for this bug before it was reported. it make most of msvcrt string test work, only one fail left to fix. (Magnus Olsen)
  • replace djgpp hell bugs fcvtbuf with project with small modification's to match ReactOS arch. Floating point to string conversion routines Copyright (C) 2002 Michael Ringgaard. All rights reserved. Make wine test for fcvt shut up we are failing 64 of wine test in msvrt printf, but we pass all fcvt test. before we did fail 75 test in wine test of msvrt printf test. Before we did fail almost all test case for fcvt in wine test (commited by ({{Magnus Olsen]])
  • replacing _swab with wine cvs 2006-05-11 version, this will take care of our problem with overlapped memory problem with swab, and this make also two more wine test pass in wine msvcrt test. 100% pass okay now with wine msvcrt string test. (Magnus Olsen)
  • making one more wine msvcrt printf test pass now it is 62 fails instead of 63 fails (Magnus Olsen)
  • starteted implement float into sprintf, snprintf and alot other printf api. this is more like a start how to implement it. This commit is more market for me. so I do not forget where string functions of *printf api (the main api functions) are. One more thing if u change on sprintf.c same change must be done in swprintf.c or changes into swprintf.c same changes must be done in swprintf.c, other wise the efect of bugfix or change will not be excutected in reactos, for u do not know if program pic the ansi or unicode version. (Magnus Olsen)
  • swprintf/sprintf almost last commit for full support of %e %E %f %g %G, left todo is write the numberf function (Magnus Olsen)
  • small rewrite by me, pass wine test and no bugs in ungetc accroing wine test of msvcrt. (Magnus Olsen)
  • fix so fread return right value of bytes/chars it reads make one more wine test pass in msvcrt file(Magnus Olsen)
  • remove stub for _wenviron we already have it implement in crt.a (Magnus Olsen)
  • redirect __p__mbctype to _mbctype, I copy the idea from wine, for they are doing same (Magnus Olsen)
  • redirect __p__tzname to _tzname, I copy the idea from wine, for they are doing same (Magnus Olsen)
  • fixing 24 bugs in *printf string version. we are failing 34 test in wine_test msvcrt printf (Magnus Olsen)
  • fixing one more of wine msvcrt printf test (Magnus Olsen)
  • fixing 2 more fualt in msvcrt *printf api (Magnus Olsen)
  • implement datatype I32 for *printf string version we have a *printf for files as well now 29 fails in wine test msvcrt printf (Magnus Olsen)
  • fixing two more bugs in *printf strings version. this make we pass one more of wine test (Magnus Olsen)
  • fixing some bugs for %c in the string version of printf (Magnus Olsen)
  • using uppercaps for %p instead lowercaps when it format the string, that make passing one more of wine test 27 fails now (Magnus Olsen)
  • Implement %Fp now we have 25 fails with wine test for string version of *printf api (Magnus Olsen)

DirectX Libraries


  • Implemented NtGdiPolyDraw, based on Wine's Implementation (Saveliy Tretiakov)
  • fixed a bug in DdDeleteDirectDrawObject Zero the DirectDraw handler, if it is successfull memory is freed (Magnus Olsen)
  • start implement of gdientry2, for moment it return incorrect info. and does not fill some stuff right. we are return alot of kernel pointer and does not setup alot stuff right, see it as start ground. I do not want lose this start code again. it will be add in modifcate alot.


  • Fix some window focus issues (Timo Kreuzer)
  • bug 1486: patch from Thomas Weidenmueller USER32: Convert WM_MDICREATE messages from/to unicode
  • Fixing two user mode crash for menu. Do not try reading from NULL pointer and compare the value.

This let me come bit futer with user32_winetest.exe, but we still have some user mode crash with menu. (greatlord)

3rd Party Software

  • Update Zlib from 1.1.4 to 1.2.3 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 reason to the speed increase of Freetype (Magnus Olsen)


  • Improved Compatibility with Intel Macs (Michael Steil)
  • commit the patch from bug 1874 even it does not use the RDMSR and WRMSR measure methood, we need use the RDMSR and WRMSR for dual core and CPU support it see Intel documentations AP-485, who u should do it. The patch is from HTO Bugfix 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 known which method we should use. HTO patch should be use when it is false. other wise we should use the RDMSR and WRMSR measure method See issue #1874 for more details. (Magnus Olsen)