Difference between revisions of "ChangeLog-0.3.15"

From ReactOS Wiki
Jump to: navigation, search
Line 206: Line 206:
  
 
== Libraries ==
 
== Libraries ==
 +
=== ADVAPI32 ===
 +
* Unused, unimplemented, and Vista+ functions are no longer exported.
 +
 
=== KERNEL32 ===
 
=== KERNEL32 ===
 
* IntReadConsoleOutputCharacter has been fixed to copy the correct number of characters.
 
* IntReadConsoleOutputCharacter has been fixed to copy the correct number of characters.
Line 227: Line 230:
 
=== NETSHELL ===
 
=== NETSHELL ===
 
NETSHELL has been converted into C++ to improve readability.
 
NETSHELL has been converted into C++ to improve readability.
 +
 +
=== NTDLL ===
 +
Functions Implemented
 +
* LdrInitializeThunk (x64)
 +
* KiUserApcDispatcher (x64)
 +
 
=== RTL ===
 
=== RTL ===
* RtlSetCurrentDirectory_U is now implemented, also fixing reference counting in RtlpDosPathNameToRelativeNtPathName_Ustr.
+
* Reference counting in RtlpDosPathNameToRelativeNtPathName_Ustr has been fixed.
* RtlSetThreadIsCritical has been implemented.
+
* Some misuse of critical section debug flags in WINE code has been worked around.
 +
* 64bit version of HEAP_COMMON_ENTRY has been fixed so that each used field is at its correct position.
 +
Functions Implemented
 +
* RtlSetCurrentDirectory_U
 +
* RtlSetThreadIsCritical
 +
* RtlInitializeContext (x64)
 
=== SMLIB ===
 
=== SMLIB ===
 
* NT compatible SmConnectToSm and SmExecPgm functions have been implemented.
 
* NT compatible SmConnectToSm and SmExecPgm functions have been implemented.
Line 245: Line 259:
 
* A variety of page table initialization functions have been improved.
 
* A variety of page table initialization functions have been improved.
 
Implemented Functions
 
Implemented Functions
* MiBuildPfnDatabase
+
* MiBuildPfnDatabase (x64)
* MiAddDescriptorToDatabase
+
* MiAddDescriptorToDatabase (x64)
* MiBuildPfnDatabaseFromPageTables
+
* MiBuildPfnDatabaseFromPageTables (x64)
* MiSetupPfnForPageTable
+
* MiSetupPfnForPageTable (x64)
 +
* MmCreateProcessAddressSpace (x64)
  
 
== Network Stack ==
 
== Network Stack ==
Line 257: Line 272:
 
* Log files opened via the event log service are should only be closed when its owning service has stopped.
 
* Log files opened via the event log service are should only be closed when its owning service has stopped.
 
* Attempting to open a non-existent backup log file now fails while attempting to open an existing backup log file will only allow for reads.
 
* Attempting to open a non-existent backup log file now fails while attempting to open an existing backup log file will only allow for reads.
 +
* LogfInitializeNew and LogfInitializeExisting now return NTSTATUS instead of BOOL.
  
 
== Shell ==
 
== Shell ==
Line 262: Line 278:
 
=== FreeLoader ===
 
=== FreeLoader ===
 
* A wrong buffer size calculation that could cause memory corruption was fixed.
 
* A wrong buffer size calculation that could cause memory corruption was fixed.
 +
* The low 1MB of memory is no longer mapped into kernel space.
 
== BASE ==
 
== BASE ==
 
=== APPLICATIONS ===
 
=== APPLICATIONS ===

Revision as of 15:33, 17 April 2013

This is the changelog for ReactOS™ version 0.3.15 (released CLASSIFIED), 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.14.

General

Contributors

Core Developers

  • Giannis Adamopoulos
  • Johannes Anderwald
  • Aleksey Bragin
  • Dmitry Chapyshev
  • Thomas Faber
  • Benedikt Freisen
  • Jérôme Gardou
  • Dmitry Gorbachev
  • Cameron Gutman
  • Rafał Harabień
  • Kamil Horníček
  • Gabriel Ilardi
  • Alex Ionescu
  • Amine Khaldi
  • Eric Kohl
  • Timo Kreuzer
  • Matthias Kupfer
  • Michael Martin
  • Roel Messiant
  • Ged Murphy
  • Sylvain Petreolle
  • ReactOS Portable Systems Group
  • Daniel Reimer
  • Gregor Schneider
  • Pierre Schweitzer
  • James Tabor
  • Christoph von Wittich
  • Art Yerkes

Patch Submitters

  • Carlo Bramini
  • Vincenzo Cotugno
  • Elton Chung
  • Peter Hater
  • Alex Henrie
  • Katayama Hirofumi
  • Edijs Kolesnikovics
  • Marcel Leyendeckers
  • numitus (domovoi94 at gmail dot com) r57058
  • Victor Martinez
  • Guido Pola
  • Ben Pye
  • Rodion overclocker@list.ru r56097
  • Lee Schroeder
  • Samuel Serapion
  • vort r58083
  • Alexander Yastrebov

Support Staff

  • Colin Finck
  • Ziliang Guo
  • Olaf Siejka

Generic 0.3.15 Changes

  • Headers have been cleaned up to reduce the number of dependencies dragged in by code.
  • Annotations for use with Visual Studio's static analyzer have been added to many modules.
  • Improvements to the various SDKs to increase compatibility and add new new data structures and interfaces for developing drivers, applications, and native applications.
  • A variety of bugs found by Visual Studio 2012's static code analyzer was fixed.
  • The project has switched over entirely to using CMake and rbuild support has been dropped. Continued work has been done to improve the build process.
  • Continued work to make ReactOS 64bit ready.

Installer

  • Removable media is now selectable as an installation target.
  • Unpartitioned space calculation now works if the first partition starts below the disk's track size.
  • ATL is now registered before anything else.

Wine Syncs

  • ADVPACK (1.5.19)
  • AMSTREAM (1.3.37)
  • ATL (1.5.19)
  • ATL100 (1.5.19)
  • AVIFIL32 (1.3.37)
  • BCRYPT (1.3.37)
  • CABINET (1.5.19)
  • COMCTL32 (1.5.26)
  • CREDUI (1.3.37)
  • CRYPT32 (1.3.37)
  • CRYPTDLG (1.3.37)
  • CRYPTNET (1.3.37)
  • CRYPTUI (1.3.37)
  • DBGHELP (1.3.37)
  • DWMAPI (1.3.37)
  • FUSION (1.5.4)
  • GDIPLUS (1.5.4)
  • HLINK (1.5.4)
  • HNETCFG (1.3.37)
  • HTTPAPI (1.3.37)
  • IMAADP32.ACM (1.3.37)
  • IMAGEHLP (1.3.37)
  • IMM32 (1.5.19)
  • INETCOMM (1.3.37)
  • INETMIB1 (1.3.37)
  • INSENG (1.3.37)
  • ITSS (1.5.4)
  • KERNEL32: FormatMessage() (1.5.4)
  • MCIAVI32 (1.3.37)
  • MCICDA (1.3.37)
  • MCISEQ (1.3.37)
  • MCIWAVE (1.5.4)
  • MCOQTZ32 (1.5.4)
  • MLANG (1.3.37)
  • MSADP32.ACM (1.3.37)
  • MSCMS (1.5.4)
  • MSCOREE (1.5.4)
  • MSCTF (1.3.37)
  • MSFTEDIT (1.3.37)
  • MSG711.ACM (1.3.37)
  • MSI (1.5.19)
  • MSIMTF (1.3.37)
  • MSISIP (1.3.37)
  • MSSIGN32 (1.5.4)
  • MSTASK (1.3.37)
  • MSXML (1.5.12)
  • MSXML2 (1.5.12)
  • MSXML3 (1.5.12)
  • MSXML4 (1.5.12)
  • MSXML6 (1.5.12)
  • NDDEAPI (1.3.37)
  • NTPRINT (1.3.37)
  • OBJSEL (1.3.37)
  • ODBCCP32 (1.3.37)
  • OLE32 (1.5.19)
  • OLEAUT32 (1.5.19)
  • PRINTUI (1.3.37)
  • PSTOREC (1.5.4)
  • QUERY (1.3.37)
  • RASAPI32 (1.3.37)
  • RICHED20 (1.5.19)
  • RSAENH (1.5.4)
  • SHLWAPI (1.5.13)
  • SPOOLSS (1.5.4)
  • STDOLE2.TLB (1.3.37)
  • STDOLE32.TLB (1.3.37)
  • STI (1.5.4)
  • SXS (1.5.4)
  • TOOLS/UNICODE (1.3.37)
  • TRAFFIC (1.5.4)
  • URL (1.5.4)
  • USER32 (1.5.10)
  • USP10 (1.5.24)
  • WIDL (1.5.11)
  • WINDOWSCODECS (1.5.19)
  • WINEMP3.ACM (1.3.37)
  • WINHTTP (1.5.4)
  • WININET (1.5.4)
  • WINTRUST (1.5.4)
  • WS2_32: async.c (1.5.4)
  • WTSAPI32 (1.3.37)
  • WUAPI (1.5.4)
  • XCOPY (1.3.37)
  • XMLLITE (1.5.19)

Known Issues

Core Functionality

Audio/Video Stack

VIDEOPRT

  • The DEVICEMAP\VIDEO key is now created with a proper length by taking into account the NULL terminator, an issue originally exposed in ARWINSS.

Client/Server Runtime

CSRSS

SMSS

A new session manager subsystem has been implemented that will be used in conjunction with an upcoming rewrite of the Console/Server Runtime Subsystem. Currently it still works with the old CSRSS and co-exists with the old SMSS.

  • A new header that precisely documents the packet structure and protocols used for communication between SMSS and CSRSS has been added. The definitions match NT5.2.
  • All required registry configuration parsing functions have been implemented in the new SMSS.
  • Initialization of many internal data structures have been implemented for the new SMSS, ensuring it will present a properly configured and set up system when it takes over from the old SMSS.
  • The new SMSS is now responsible for the initial system configuration, including setting up the environment, pagefile, and registry.
  • The new SMSS is able to detect clean versus unclean boot/shutdown.
  • The new SMSS can now launch 'native' applications.
  • SmpSaveRegistryValue now properly deals with empty lists and correctly compares strings for equality.

Filesystems

FASTFAT

  • An error in VfatCreateFile that caused access denied to always be returned when opening a volume has been fixed.

HAL

  • PCI device names are no longer truncated in debug output.
  • IrqlToSoftVector() is now implemented and used in HalRequestSoftwareInterrupt, ensuring the correct interrupt is triggered on AMD64.
  • The IRQL in HalpAllocateSystemInterrupt is now correctly set to the lowest vector.

Hardware Management

Kernel

  • Interlocked operations are now used for reference counting device objects.
  • KeUpdateSystemTime has been refactored, making it 64bit portable and resolving potential concurrency issues.
  • The kernel no longer returns kernel handles to user mode code, which user mode code would be unable to use anyway, fixing usage of RtlQueryRegistryValues from user mode when the SUBKEY or TOPKEY flags are used.
  • Stack alignment has been fixed in KiSwitchToBootStack for 64bit mode.
  • KeContextToTrapFrame and KeTrapFrameToContext now correctly handle ExceptionFrame being NULL.
  • User mode exception dispatching has been implemented for 64bit mode.

Functions Implemented

  • KiSwapContextInternal (x64)
  • KeInitializeInterrupt (x64)
  • KeConnectInterrupt (x64)
  • KeSynchronizeExecution (x64)
  • KiDpcInterruptHandler (x64)
  • KiIdleLoop (x64)
  • KiInitializeUserApc (x64)
  • KiSwapProcess (x64)
  • KiSystemCallHandler (x64)
  • KiInitializeContextThread (x64)
  • KiSwapContextResume (x64)
  • KiRetireDpcList (x64)
  • KiInterruptDispatch (x64)
  • KiSystemCallEntry64 (x64)
  • KiZwSystemService (x64)

Libraries

ADVAPI32

  • Unused, unimplemented, and Vista+ functions are no longer exported.

KERNEL32

  • IntReadConsoleOutputCharacter has been fixed to copy the correct number of characters.
  • ReadProcessMemory/WriteProcessMemory no longer attempt to write to an argument that could potentially be a NULL pointer.
  • WriteProcessMemory now returns STATUS_ACCESS_VIOLATION instead of just BOOL due to third party code relying on this behavior.
  • InitCommandLines has been rewritten.
  • GetProcessAffinityMask now uses BaseStaticServerData from CSRSS instead of querying for system information each time.
  • GetProcessShutdownParameters/SetProcessShutdownParameters now correctly use the LPC status code from CSRSS instead of the LPC API status code.
  • GetProcessWorkingSetSizeEx/SetProcessWorkingSetSizeEx has been implemented and is now used by GetProcessWorkingSetSize/SetProcessWorkingSetSize.
  • GetExitCodeProcess now checks for VDM processes to get the appropriate exit code.
  • GetStartupInfoA is now thread safe and no longer assumes all ANSI to Unicode conversions will succeed.
  • GetStartupInfoW now correctly supplies ShellInfo data and crashes if given a NULL input.
  • ExitProcess now uses SEH and the PEB lock.
  • TerminateProcess now correctly sets the ERROR_INVALID_HANDLE error code.
  • FatalAppExitA no longer always assumes success.
  • FatalAppExitW now raises a hard error.
  • FatalExit now displays a debugger input interface on checked build just like Windows.
  • SetPriorityClass now tries to acquire the real time privilege as needed and handles failures to do so.
  • GetProcessVersion has been rewritten.
  • lpfnGlobalRegisterWaitForInputIdle has been renamed to UserWaitForInputIdleRoutine.

NETSHELL

NETSHELL has been converted into C++ to improve readability.

NTDLL

Functions Implemented

  • LdrInitializeThunk (x64)
  • KiUserApcDispatcher (x64)

RTL

  • Reference counting in RtlpDosPathNameToRelativeNtPathName_Ustr has been fixed.
  • Some misuse of critical section debug flags in WINE code has been worked around.
  • 64bit version of HEAP_COMMON_ENTRY has been fixed so that each used field is at its correct position.

Functions Implemented

  • RtlSetCurrentDirectory_U
  • RtlSetThreadIsCritical
  • RtlInitializeContext (x64)

SMLIB

  • NT compatible SmConnectToSm and SmExecPgm functions have been implemented.

USER32

  • A resource leak involving fonts when switching between applications has been dealt with.

UXTHEME

uxtheme has now been forked from Wine and is solely maintained by this project.

  • Loading of MENUEX resources has been fixed.

Memory Management

  • The memory manager allocates a full 64KB memory block and returns it to the requesting code instead of merely aligning it to a 64KB boundary and returning a block of memory sized to the original request. A hack has been added so that even though the full 64KB allocation still occurs, the allocating code is only informed about the block of memory that matches its requested size.
  • The memory manager now correctly deals with file access rights when mapping sections.
  • MmFindGapBottomUp and MmFindGapTopDown have been reimplemented to properly create memory areas in the right places.
  • MI_REAL_SYSTEM_RANGE_START has been defined to be the canonical system space base address and MmSystemRangeStart switched to a broken value to match behavior on Windows for 32bit mode. MmSystemRangeStart has the correct value for 64bit mode.
  • A variety of page table initialization functions have been improved.

Implemented Functions

  • MiBuildPfnDatabase (x64)
  • MiAddDescriptorToDatabase (x64)
  • MiBuildPfnDatabaseFromPageTables (x64)
  • MiSetupPfnForPageTable (x64)
  • MmCreateProcessAddressSpace (x64)

Network Stack

WINSOCK32

  • Invalid AQ_WIN16 comparisons fix was imported from Wine.

Services

  • Log files opened via the event log service are should only be closed when its owning service has stopped.
  • Attempting to open a non-existent backup log file now fails while attempting to open an existing backup log file will only allow for reads.
  • LogfInitializeNew and LogfInitializeExisting now return NTSTATUS instead of BOOL.

Shell

Startup/Shutdown

FreeLoader

  • A wrong buffer size calculation that could cause memory corruption was fixed.
  • The low 1MB of memory is no longer mapped into kernel space.

BASE

APPLICATIONS

ATACTL

CALC

CHARMAP

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