From ReactOS Wiki
Revision as of 22:58, 28 January 2009 by Kjkhyperion (talk | contribs) (Static Libraries)
Jump to: navigation, search

This is a work in progress!!!!


Remember the format for changelogs! * Description (Developer names, bug #x)

Always write developer names in brackets

FYI, 0.3.7 was branched at r37062

This is the changelog for ReactOS™ version 0.3.8 (released whenever), 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.7 (released 4 November, 2008).


Generic 0.3.8 Changes

  • Cleaned up the PSDK/DDK header set, fixing numerous types and definitions. Remove all usage of the GCC system_header 'extension' (Stefan Ginsberg)
  • Install more Administrative Tools (Mario Kacmar, Bug 4052)
  • Set -Wno-non-virtual-dtor compiler flag globally (KJK::Hyperion)
  • Decorate C runtime functions and global variables as dllimport when necessary (KJK::Hyperion)
  • Link DLLs to NTDLL instead of MSVCRT unless absolutely necessary (KJK::Hyperion)
  • Fixed several compilation warnings (KJK::Hyperion, Bugs #3922, #3608)
  • Fixed several 64-bit portability issues in PSDK headers (KJK::Hyperion)
  • Use int instead of long in PSDK headers when compiling Wine code (KJK::Hyperion)
  • Create a separate import library ("ntsys") to import just system services from ntdll (KJK::Hyperion)


  • Added/Updated Slovak translations (Mario Kacmar, Bugs #3834, #3866, #3890, #3934, #3955, #3983, #4005, #4035, #4071)
  • Added/Updated Czech translations (Radek Liska, Bugs #4014, #4033)
  • Added/Updated Spanish translations (Javier Remacha, Bugs #3830, #4047)
  • Added/Updated Ukrainian translations (Artem Reznikov, Bugs #3833, #3852)
  • Added/Updated Italian translations (Paolo Devoti, Bugs #3839, #4061)
  • Added/Updated Korean translations (Seungju Kim, Bugs #3851, #3915)
  • Added/Updated Polish translations (Maciej Bialas, Bug #3871)
  • Added/Updated Greek translations (Apostolos Alexiadis, Bugs #3881, #4030, #4063)
  • Added/Updated Norwegian translations (Lars Martin Hambro, Bugs #3942, #4037)
  • Added/Updated German Translation of hdwwiz, syssetup (Daniel Reimer)

Host Tools

  • Fix compiler warnings treated as errors when using GCC 4.3.2 (Dmitry Gorbachev, bug #3849)
  • Rearrange "host/typedefs.h" to make it look more logical, fix a wrong definition of INT_PTR and UINT_PTR in this file (Colin Finck)


  • Don't decide whether to preprocess .spec files based on Kernel-Mode vs. User-Mode, but on the file extension. Preprocessed files use the .pspec extension now (Colin Finck, KJK::Hyperion)
  • Removed some checks for uppercased file extensions (Colin Finck)
  • Reenable testing on undefined properties, they are treated as being empty now (Colin Finck)
  • Parallel build fixes related to .spec/.pspec and the generation of .exp object files (KJK::Hyperion)
  • Automatically choose a C runtime library for each module and provide a standard way to override the default (KJK::Hyperion)
  • Force each module to choose between a statically linked or a dynamically linked C runtime library, for future compatibility with Visual C++ (KJK::Hyperion)
  • Create a separate import library ("ntsys") to import just system services from ntdll (KJK::Hyperion)
  • Echo "[CPP]" for invocations of the C preprocessor (KJK::Hyperion)
  • Fixed setting project-global compiler flags (KJK::Hyperion)
  • New project-global attribute allowwarnings, to fail on compilation warnings for either all modules or no modules (KJK::Hyperion)
  • Refactored makefile rules to be more maintainable (KJK::Hyperion)
  • Makefile rules extracted from hard-coded strings in rbuild code to an include .mak file, to be more maintainable (KJK::Hyperion)
  • Reimplemented pre-rbuild feature of full dependencies, for fast and reliable incremental builds at the price of slower full builds (KJK::Hyperion)


  • Don't assume that host void* is the same size as target void* (Jeffrey Morlan)


Bootloader (FreeLoader)

Kernel and Executive (NTOSKRNL)

  • Fixed SMP build compilation and enable it by default. It does not boot due to massive lack of SMP support in critical areas (Stefan Ginsberg)
  • Retrieve the count of handles for a process without the occasional crash or race condition (KJK::Hyperion, Bug #4050)



  • Fix various bugs and some missing handling of failure cases in the DBGK implementation. This makes Ollydbg able to attach, detach, suspend and resume processes under debug without causing weird kernel crashes (Stefan Ginsberg)


  • Fixed implementation of PsCreateProcessNotifyRoutine (Michael Martin)
  • Fixed dereferencing of wrong object in NtCreateProfile, pProcess not Process. (Michael Martin)
  • Fix an array overrun in NtQuerySystemInformation and NtSetSystemInformation (KJK::Hyperion, CID 527 and CID 528)



  • NtWrite/ReadFile: Fix a bug where RequestorMode would always be set to KernelMode, which would cause user-mode APCs to be called directly from kernel (Stefan Ginsberg)



- Fix KDBGs usage of PsLookupThread/ProcessByThread/ProcessId, which leaked references every time we attached to a process/thread (Stefan Ginsberg)



  • Implement VirtualMemoryInformationClass of MemorySectionName for NtQueryVirtualMemory. (Michael Martin)
  • Use volatile with PagesLocked and MdlAddress in MiDoMappedCopy, to prevent bugcheck when code in SEH failed. (Michael Martin, Bug #3674)
  • MmMapViewOfSection: Fix a missing unlock of the kernel address space in some failure cases (Stefan Ginsberg)




Hardware Abstraction Layer (HAL)

Run Time Library (RTL)

Kernel Mode Drivers



  • When allocating a cluster, decrement the AvailableClusters count to keep reported free space consistent (Jeffrey Morlan)
  • Fixed bug where extending the size of an already non-empty file would crash if disk space runs out; also optimized that code so it doesn't always have to traverse the entire file (Jeffrey Morlan)


  • Re-implemented read/write for message type mode. (Michael Martin)
  • Fixed bug in NpfsRead that was causing thread to not wake from wait. (Michael Martin)
  • Fixed problems with not being able to terminate threads that used pipe functions. (Michael Martin)
  • Modified NpfsSetPipeInformation to not allow changing read mode to message mode for byte stream type pipes. (Michael Martin)
  • Modified NpfsCreatePipe so that clients for NamedPipes always start off in byte stream mode. (Michael Martin)
  • Implemented NpfsPeekPipe. (Michael Martin)


  • Add missing assignments to all CallingProcess variables in int10.c. (Michael Martin, Bug #2286)
  • Fixed memory corruption in VideoPortInt10 implementation. (Michael Martin, Bug #2286)
  • Fixed bug in VideoPortGetAccessRanges, causing the device to not be found on the bus. (Michael Martin, Bug #2286)

NT System Library (NTDLL)

Static Libraries


Keyboard Layouts

  • Add Czech QWERTZ keyboard layout (Radek Liska, bug #4031)


Win32™ Personality

User mode subsystem server (CSRSS)

Kernel-mode subsystem server (Win32K)



  • Fixed bug that caused failure to assign ip address if address was received from server. (Michael Martin, Bug #3962)

Control panel applets

Win32™ Applications


  • Add Slovak koruna to Calculator (Mario Kacmar, bug #3867)
  • Add categories Angle and Time and Czech koruna to Calculator (Radek Liska, bug #4064)

Command Prompt

  • Fix parsing of batch files lacking '\n' character on the last line (Jeffrey Morlan)
  • Fix bug where DIR /D wouldn't always show all files (Jeffrey Morlan)
  • Implement proper support for multi-line IF blocks, IF /I option, IF CMDEXTVERSION, and generic comparisons (EQU etc); fix IF ERRORLEVEL to do >= check rather than == (Jeffrey Morlan)
  • Give an error message when trying to MKDIR a directory that already exists; add support for making multiple directories with one MKDIR command (Jeffrey Morlan, bug #3961)
  • Allow the DIR command to be interrupted via Ctrl-C even while in the middle of a directory. (Jeffrey Morlan, bug #3967)
  • Allow arguments to MOVE to contain slashes (Víctor Martínez Calvo, bug #4013)
  • For MOVE command: only check for options at the beginning of the command line; give error message if too many parameters are given; if no destination is given, default to current directory; fix crash that occurred with certain source filenames; fix memory leaks (Jeffrey Morlan)
  • Add support for removing multiple directories with one RMDIR command (Jeffrey Morlan)


  • Fix the display of Line and Column in the Status Bar and add language resources for this (Carlo Bramini, bug #3702)


  • Fix winning infinitely bug by dealing cards again (Lucas Suggs, bug #3288)
  • Fix status bar overlay problems (Gregor Schneider, bug #3336, bug #3820)


  • Fix Switch-To Button, enable only if one selected application (Mario Kacmar, bug #4028)

Win32™ Libraries


  • Fix potential accesses to uninitialized variables detected by Visual C++ (KJK::Hyperion)


  • Reimplemented BuildCommDCB and BuildCommDCBAndTimeouts. New implementation passes the Wine regression tests (KJK::Hyperion)
  • Thanks to PSEHv2, OutputDebugString now correctly sends the output to the user-mode debugger, if one is attached (KJK::Hyperion)


  • Add parameter checks to strftime (Daniel Zimmermann, bug #3910)
  • Add support for floating point operations in sprintf (Gregor Schneider, bug #1533, bug #3727, bug #3878)
  • Update and fix undname, makepath, locale and several mbstring functions for increased compatibility (Gregor Schneider)


Regression tests


  • Wrote a new tool for running automatic regression tests, superseding our previous syssetup/cmd/dbgprint hack (Colin Finck)


  • Add some tests for WC_NO_BEST_FIT_CHARS, which pass under Windows XP SP3 (Colin Finck)
Versions / Official Changelogs / Community Changelogs
0.0.x Series 0.0.8 | 0.0.9 | 0.0.10 | 0.0.11 | 0.0.12 | 0.0.13 | 0.0.14 | 0.0.15 | 0.0.16 | 0.0.17 | 0.0.18 | 0.0.19 | 0.0.20 | 0.0.21
0.1.x Series 0.1.0 | 0.1.1 | 0.1.2 | 0.1.3 | 0.1.4 | 0.1.5
0.2.x Series 0.2.0 | 0.2.1 | 0.2.2 | 0.2.3 | 0.2.4 | 0.2.5 | 0.2.6 | 0.2.7 | 0.2.8 | 0.2.9
0.3.x Series 0.3.0 | 0.3.1 | 0.3.2 | 0.3.3 | 0.3.4 | 0.3.5 | 0.3.6 | 0.3.7 | 0.3.8 | 0.3.9 | 0.3.10 | 0.3.11 | 0.3.12 | 0.3.13 | 0.3.14 | 0.3.15 | 0.3.16 | 0.3.17
0.4.x Series 0.4.0 | 0.4.1 | 0.4.2 | 0.4.3 | 0.4.4 | 0.4.5 | 0.4.6 | 0.4.7 | 0.4.8 | 0.4.9 | 0.4.10 | 0.4.11 | 0.4.12 | 0.4.13