Difference between revisions of "ChangeLog-0.3.8"

From ReactOS Wiki
Jump to: navigation, search
(Win32™ Libraries)
m (Control panel applets)
Line 235: Line 235:
  
 
== Control panel applets ==
 
== Control panel applets ==
 +
=== APPWIZ ===
 +
* Check for a null pointer when creating a link to a directory or a file without extension ([[Kamil Hornicek]])
 +
 +
=== INTL ===
 +
* Pass the parent to PropertySheetW ([[Johannes Anderwald]])
 +
 
=== SYSDM ===
 
=== SYSDM ===
 
* Fix heap corruption and memory leak ([[Daniel Zimmermann]])
 
* Fix heap corruption and memory leak ([[Daniel Zimmermann]])
 
* Convert recovery option dialog to unicode ([[Johannes Anderwald]])
 
* Convert recovery option dialog to unicode ([[Johannes Anderwald]])
 
* Simply & optimize LoadRecoveryOptions function ([[Johannes Anderwald]])
 
* Simply & optimize LoadRecoveryOptions function ([[Johannes Anderwald]])
 
=== INTL ===
 
* Pass the parent to PropertySheetW ([[Johannes Anderwald]])
 
  
 
== Win32™ Applications ==
 
== Win32™ Applications ==

Revision as of 13:02, 1 February 2009

This is a work in progress!!!!

USE REAL NAMES HERE

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).

General

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)
  • All modules migrated to PSEH v2. All flavors of Wine exception handling macros reimplemented with PSEH v2 (KJK::Hyperion)
  • Miscellaneous fixes in PSDK/DDK headers for Visual C++ support (KJK::Hyperion)
  • Fixes for gcc 4.3.2 support (KJK::Hyperion, Dmitry Gorbachev, Maciej Bialas, Bug #3922)
  • Fixed _bittestandcomplement, _bittestandreset, and _bittestandset intrinsics (Dmitry Gorbachev, Bug #3921)

Translations

  • 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, #4088)
  • Added/Updated Norwegian translations (Lars Martin Hambro, Bugs #3942, #4037)
  • Added/Updated German translation of Hardware Wizard, System Setup DLL (Daniel Reimer)
  • Added Armenian translation of Notepad (Andranik Haroyan)
  • Added Thai translation of Calculator (Sumath Aowsakulsutthi)
  • Updated Italian translation of Calculator (Carlo Bramix, Bug #4078)

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)

RBUILD

  • 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 faster, minimal, comprehensive incremental builds at the price of slower full builds (KJK::Hyperion)
  • Correctly support C++ precompiled headers (KJK::Hyperion)
  • Echo "[HOST-CC]", "[HOST-LD]" and "[HOST-AR]" for host build tools to distinguish them from target tools (KJK::Hyperion)
  • Fix msvc project generation for kernel mode drivers without a driver entry (Johannes Anderwald)

RSYM

  • Don't overrun a heap block when there are discarded relocations (KJK::Hyperion)

WIDL

Core

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)

CM

DBGK

  • 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)

EX

  • 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)

FSRTL

IO

  • 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)

KD

KDBG

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

KE

MM

  • 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)

OB

PS

SMSS

Hardware Abstraction Layer (HAL)

Run Time Library (RTL)

Kernel Mode Drivers

ACPI

FASTFAT

  • 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)

KS

  • Implement KsCreateAllocator, KsRegisterWorker, KsUnregisterWorker, KsRegisterCountedWorker, KsDecrementCountedWorker, KsIncrementCountedWorker, KsQueueWorkItem (Johannes Anderwald)
  • Implement KsCreateDevice, KsAddDevice, KsInitializeDriver (Johannes Anderwald)
  • Add KsDefaultForwardIrp stub (Johannes Anderwald)

NPFS

  • 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)

PORTCLS

  • Implement PcGetDeviceProperty, PcGetTimeInterval, PcNewResourceSublist, PcRegisterIoTimeout, PcUnregisterIoTimeout, PcNewServiceGroup, PcRegisterSubdevice, PcRegisterAdapterPowerManagement, PcNewDmaChannel, PcForwardIrpSynchronous, PcNewPort, PcDmaMasterDescription, PcDmaSlaveDescription, PcRegisterPhysicalConnection, PcRegisterPhysicalConnectionFromExternal, PcRegisterPhysicalConnectionToExternal, PcRequestNewPowerState (Johannes Anderwald)
  • Implement PcNewRegistryKey for DeviceRegistryKey, DriverRegistryKey, HwProfileRegistryKey (Johannes Anderwald)
  • Implement portcls port drivers such as IPortWavePci, IPortWaveCyclic, IPortTopology and IPortMidi (Johannes Anderwald)
  • Implement portcls helper object such as IServiceGroup, IRegistryKey, IInterruptSync, IDmaChannel, IDmaChannelSlave (Johannes Anderwald)
  • Implement IPortClsVersion interface and make all port drivers use them (Johannes Anderwald)
  • Implement IDrmPort, IDrmPort2 interface and make all port drivers use them (Johannes Anderwald)
  • Partly implement PcCreateSubdeviceDescriptor (Johannes Anderwald)
  • Implement ISubdevice interface for IPortTopology, IPortWaveCyclic, IPortWavePci (Johannes Anderwald)
  • Add IIrpTarget, IKsWorkSink, IKsShellTransport, IIrpStream, IIrpStreamVirtual IIrpStreamPhysical, IPortFilterWaveCyclic, IPortPinWaveCyclic interface (Johannes Anderwald)
  • Use FILE_DEVICE_KS when creating new device object (Johannes Anderwald)
  • Pass correct flags when creating the fdo (Johannes Anderwald)
  • If there is no interrupt yet connected, call the synchronized routine holding the internal spinlock (Johannes Anderwald)
  • Don't disconnect the interrupt on cleanup, IInterruptSync_Disconnect exist for that purpose (Johannes Anderwald)
  • Move all calls to ExAllocatePoolWithTag to a function AllocateItem which is also responsible for zeroing memory (Johannes Anderwald)
  • Store PhysicalDeviceObject in device extension (Johannes Anderwald)
  • Check for valid DeviceExtensionSize (Johannes Anderwald)
  • Set DO_DIRECT_IO flag (Johannes Anderwald)
  • Clear DO_DEVICE_INITIALIZING flag (Johannes Anderwald)
  • Initialize the dpc for calling Miniport object, as it might create an interrupt object which immediately fires an interrupt (Johannes Anderwald)
  • If the caller doesnt provide an IAdapterPowerManagement interface, clear the existing reference (Johannes Anderwald)
  • Pass the pdo to IoOpenDeviceRegistryKey (Johannes Anderwald)
  • Move all guids and IIDs to own file and initialize them (Johannes Anderwald)
  • Store DeviceObject before calling IMiniportWaveCyclic, IMiniportTopology, IMiniportMidi as the driver might immediately call port functions (Johannes Anderwald)
  • Pass the PhysicalDeviceObject to IoGetDmaAdapter (Johannes Anderwald)
  • Handle IRP_MN_QUERY_INTERFACE (Johannes Anderwald)
  • Implement IPortEvents interface to IPortWavePci (Johannes Anderwald)
  • Register all device interfaces identified in the subdevice descriptor (Johannes Anderwald)
  • Create a subdevice descriptor for IPortWavePci, IPortWaveCyclic and IPortTopology and handle the respective ISubDevice::GetDescriptor (Johannes Anderwald)
  • Always request PCFILTER_DESCRIPTOR regardless of presence IPinCount interface (Johannes Anderwald)
  • Check if IMiniportWavePci omits a IServiceGroup (Johannes Anderwald)
  • no DriverEntry in here -> entrypoint="0" (Christoph von Wittich)
  • Fix parameter for KeWaitForSingleObject (Christoph von Wittich)
  • Rename device context struct (Christoph von Wittich)


SYSAUDIO

WDMAUD

VIDEOPRT

  • 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

CRT

MINGW

PSEH

  • Reimplemented as PSEH v2. Now allows a much more readable syntax that's almost completely compatible with native SEH constructs. Also handles exceptions thrown during unwinding in a way that's compatible with native SEH (KJK::Hyperion)

Keyboard Layouts

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

USETUP

Win32™ Personality

User mode subsystem server (CSRSS)

Kernel-mode subsystem server (Win32K)

Services

DHCP

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

Control panel applets

APPWIZ

  • Check for a null pointer when creating a link to a directory or a file without extension (Kamil Hornicek)

INTL

SYSDM

Win32™ Applications

Calc

  • 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)
  • Fixed REN command (Víctor Martínez Calvo, bug #3902)

Ipconfig


Notepad

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

SC

Solitaire

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

Taskmgr

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

Win32™ Libraries

ADVAPI32

  • Fix potential accesses to uninitialized variables detected by Visual C++ (KJK::Hyperion)
  • Fix return value of GetTraceLoggerHandle (Dmitry Gorbachev, Bug #3827)

COMCAT

GLU32

KERNEL32

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

MSVCRT

  • 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)

NETCFGX

  • Dont display NCRP_QUERY_PROPERTY_UI when the notification object has already been created (Johannes Anderwald)

NETSHELL

OLE32

OLEAUT32

RPCRT4

SETUPAPI

SHELL32

USER32

  • Choose the correct version of DEVMODE in EnumDisplaySettingsExA (Kamil Hornicek)

Regression tests

Rosautotest

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

Wcstombs-tests

  • 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 | 0.4.14