Difference between revisions of "ChangeLog-0.3.13"

From ReactOS Wiki
Jump to: navigation, search
m
 
(14 intermediate revisions by 4 users not shown)
Line 1: Line 1:
This is the changelog for ReactOS™ [[0.3.13|version 0.3.13]] (released XXXXXXX), 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 [[ChangeLog-0.3.12|version 0.3.12]] (released 20 October 2010).
+
This is the changelog for ReactOS™ [[0.3.13|version 0.3.13]] (released 22 March 2011), 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 [[ChangeLog-0.3.12|version 0.3.12]] (released 20 October 2010).
  
= General =
+
== General ==
== Contributors ==
+
=== Contributors ===
=== Core developers ===
+
==== Core developers ====
 
* Giannis Adamopoulos
 
* Giannis Adamopoulos
 
* Johannes Anderwald
 
* Johannes Anderwald
Line 27: Line 27:
 
* Art Yerkes
 
* Art Yerkes
  
=== Patch submitters ===
+
==== Patch submitters ====
 
* Damir Aliev
 
* Damir Aliev
 
* Oleg Baikalow
 
* Oleg Baikalow
Line 42: Line 42:
 
* Víctor Martínez
 
* Víctor Martínez
  
=== Localization ===
+
==== Localization ====
 
* spb-ivan92 ({{Bug|5685}})
 
* spb-ivan92 ({{Bug|5685}})
 
* wojtekkozlo664 AT op DOT pl ({{Bug|5740}})
 
* wojtekkozlo664 AT op DOT pl ({{Bug|5740}})
Line 48: Line 48:
 
* Andres Traks
 
* Andres Traks
  
=== Support staff ===
+
==== Support staff ====
* Colin Finck: Release Enginner.
+
* Colin Finck: Release Enginner, Build Tools Maintainer
 
* Danny Gotte: Web Developer.
 
* Danny Gotte: Web Developer.
 
* Ziliang Guo: Release Engineer, Web Content Maintainer.
 
* Ziliang Guo: Release Engineer, Web Content Maintainer.
  
== Generic 0.3.13 changes ==
+
=== Generic 0.3.13 changes ===
=== Applications ===
+
* A wide range of updates were made to the various development kits in ReactOS to support the new drivers and APIs that have been implemented and added.
 +
==== Applications ====
 
* Conversion of empty argument lists in C functions to (void) is currently underway.
 
* Conversion of empty argument lists in C functions to (void) is currently underway.
 
* Calc: Initialize next field for security hardening.
 
* Calc: Initialize next field for security hardening.
 
* CharMap: Text copy field is now a richedit control.
 
* CharMap: Text copy field is now a richedit control.
 +
* Cmd: When building the commandline for CreateProcess, the full name that SearchForExecutable returns is used.
 
* DosKey: Conversion from TCHAR to WCHAR underway, MSVC complication fixes.
 
* DosKey: Conversion from TCHAR to WCHAR underway, MSVC complication fixes.
 
* Findstr: Ported from FreeDOS project.
 
* Findstr: Ported from FreeDOS project.
 
* FTP: Major effort to clean up function prototypes and definitions.
 
* FTP: Major effort to clean up function prototypes and definitions.
* Notepad: Harden against possible buffer overflow bugs.
+
* Notepad: Hardened against possible buffer overflow bugs and fixed rendering of status bar after changing line wrap.
 
* Nslookup: String operations have been modified to ensure null terminator is never lost.
 
* Nslookup: String operations have been modified to ensure null terminator is never lost.
 
* Paint: Generalize changes related to mirroring rectangular selections to free form selections, solve problem regarding selection contents update.
 
* Paint: Generalize changes related to mirroring rectangular selections to free form selections, solve problem regarding selection contents update.
Line 72: Line 74:
 
* Xcopy: MSVC fixes.
 
* Xcopy: MSVC fixes.
  
=== Control Panel Applets ===
+
==== Control Panel Applets ====
=== Installer ===
+
==== Installer ====
=== Services ===
+
* Correctly calculate the size several buffers used during the installer to avoid overreads and the like for strings.
 +
==== Services ====
 
Service startup and shutdown code is now synchronized using critical sections.  The end result is that all services are now started one by one instead of in parallel.  Additional checks have been added to ensure services do not try to use invalid resources.  Attempting to start a service multiple times is also now prevented.
 
Service startup and shutdown code is now synchronized using critical sections.  The end result is that all services are now started one by one instead of in parallel.  Additional checks have been added to ensure services do not try to use invalid resources.  Attempting to start a service multiple times is also now prevented.
 
* EventLog: Renaming of variables to better match their usage patterns.
 
* EventLog: Renaming of variables to better match their usage patterns.
 
* LsaSrv: Service initialization has been stubbed and function calling conventions have been changed to stdcall.
 
* LsaSrv: Service initialization has been stubbed and function calling conventions have been changed to stdcall.
 
* UmPnpMgr: Remote Procedure Call endpoints now use XP/Vista compatible pipe names.
 
* UmPnpMgr: Remote Procedure Call endpoints now use XP/Vista compatible pipe names.
== Tests ==
+
=== Tests ===
== Translations ==
+
=== Translations ===
  
 
'''Bulgarian'''
 
'''Bulgarian'''
Line 148: Line 151:
 
* ping
 
* ping
  
== Wine syncs ==
+
=== Wine syncs ===
 
Libraries synced
 
Libraries synced
 
* atl
 
* atl
Line 176: Line 179:
 
* xcopy
 
* xcopy
  
== Third party libraries ==
+
=== Third party libraries ===
 
* DejaVu Fonts Documentation updated to 2.31
 
* DejaVu Fonts Documentation updated to 2.31
 
* RedHat Liberation Fonts updated to 1.06
 
* RedHat Liberation Fonts updated to 1.06
Line 182: Line 185:
 
* bzip2 updated to 2.06
 
* bzip2 updated to 2.06
  
= Core Functionality =
+
=== Build Tools ===
== Audio/Video Stack ==
+
NCI tool has been removed.
 +
 
 +
== Core Functionality ==
 +
=== Audio/Video Stack ===
 
* I/O completion routines have been added for audio.
 
* I/O completion routines have been added for audio.
 
* Event handle leaks in audio stack have been resolved.
 
* Event handle leaks in audio stack have been resolved.
  
=== Kernel Streaming ===
+
==== Kernel Streaming ====
 
Pin/Node allocator creation requests are now compatible with Windows XP and the ReactOS KS code is able to create audio pins on XP.  Playback however is not yet working.
 
Pin/Node allocator creation requests are now compatible with Windows XP and the ReactOS KS code is able to create audio pins on XP.  Playback however is not yet working.
 
* Correct error code is now returned for various property access failures.
 
* Correct error code is now returned for various property access failures.
Line 193: Line 199:
 
* Device enumeration implemented.
 
* Device enumeration implemented.
  
=== PORTCLS ===
+
==== PORTCLS ====
 
Filter/pin/node handling has been improved, with a new common dispatcher for property requests and fixes for a variety of memory and resource leaks.  Buffering of audio has also been improved, along with interrupt handling for completed buffer operations.  Sound recording using ReactOS portcls on Windows XP is also working.
 
Filter/pin/node handling has been improved, with a new common dispatcher for property requests and fixes for a variety of memory and resource leaks.  Buffering of audio has also been improved, along with interrupt handling for completed buffer operations.  Sound recording using ReactOS portcls on Windows XP is also working.
  
== Filesystems ==
+
=== Filesystems ===
=== FsRtl ===
+
==== FsRtl ====
 
* Data stream context implemented.  Data stream context hold additional information about data being read off disks and are often used by anti-virus programs to scan file open operations.
 
* Data stream context implemented.  Data stream context hold additional information about data being read off disks and are often used by anti-virus programs to scan file open operations.
=== FASTFAT ===
+
* Preliminary work has started on supporting wildcard expansions through using expressions to search a directory.
 +
==== FASTFAT ====
 
* Multiple incorrect buffer usages dealt with in filename handling.
 
* Multiple incorrect buffer usages dealt with in filename handling.
 
* Duplicate code for opening volumes has been removed.
 
* Duplicate code for opening volumes has been removed.
=== FASTFAT_NEW ===
+
==== FASTFAT_NEW ====
 
* Creation of files improved.
 
* Creation of files improved.
=== NPFS ===
+
==== NPFS ====
 
* Support for relative path names for pipes added.
 
* Support for relative path names for pipes added.
 
* Waiting on a pipe in the root directory has been fixed.
 
* Waiting on a pipe in the root directory has been fixed.
Line 210: Line 217:
 
* Multiple entries can now be returned in a single request and returning values correctly deal with buffers that are too small.
 
* Multiple entries can now be returned in a single request and returning values correctly deal with buffers that are too small.
  
== Kernel ==
+
=== Hardware Management ===
 +
==== Legacy HAL ====
 +
* Interrupt pins are checked to make sure they are not 0 or 255, which fixes an assert with ATI Rage graphics cards.
 +
* A broken loop that resulted in multiple COM ports being registered for the KDCOM driver has been fixed.
 +
* HalStopProfileInterrupt has been implemented.
 +
* Port numbers and ranges have been fixed in HalpDefaultIoSpace.
 +
==== Plug n Play ====
 +
* When translating an interrupt resource, the vector the HAL returns is now checked to ensure it is valid.
 +
 
 +
=== Kernel ===
 
* Plug n Play notification now gracefully handles interfaces that have not yet been registered yet.
 
* Plug n Play notification now gracefully handles interfaces that have not yet been registered yet.
 
* Support for Advanced RISC Computer format names has been implemented in the kernel.  Boot paths were provided by the bootloader to the kernel are in ARC format.  Previously the kernel needed to translate them.  Now the kernel is able to understand ARC formatted paths and use them natively.
 
* Support for Advanced RISC Computer format names has been implemented in the kernel.  Boot paths were provided by the bootloader to the kernel are in ARC format.  Previously the kernel needed to translate them.  Now the kernel is able to understand ARC formatted paths and use them natively.
Line 220: Line 236:
 
* Alternative workaround for the Pentium lock errata has been added.  Instead of relying on the page fault handler, the IDT page is marked as Write-Through if the bug is present.
 
* Alternative workaround for the Pentium lock errata has been added.  Instead of relying on the page fault handler, the IDT page is marked as Write-Through if the bug is present.
 
* When loading drivers at startup, the loader block is made available to the drivers.
 
* When loading drivers at startup, the loader block is made available to the drivers.
 +
* A process is now checked to make sure it is not being terminated to eliminate the possibility of trying to destroy a process' resources twice.
 +
* Resources are now cleaned up after failing to create a thread.
 +
* Fixes have been made to the loading of system DLLs and their resources.
 +
* TrapFrame segment selectors are now initialized in KiEnterTrap as the C trap handlers depends on valid values.
 +
==== I/O ====
 +
* Resource assignment has had conflict checks added to it.
 +
* Packet type calculation has been fixed according to the PS/2++ specification.
  
== Memory Management ==
+
=== Memory Management ===
 
* ARM3 Paged Pool manager is now the default.
 
* ARM3 Paged Pool manager is now the default.
 
* Various 64bit portability fixes and extensions.
 
* Various 64bit portability fixes and extensions.
Line 232: Line 255:
 
* Stage 0 of memory manager initialization is now completely handled by ARM3.
 
* Stage 0 of memory manager initialization is now completely handled by ARM3.
 
* Regression that resulted in the leaking of PTEs and addresses has been dealt with.
 
* Regression that resulted in the leaking of PTEs and addresses has been dealt with.
=== Common Cache ===
+
* A variety of edge cases in NtQueryVirtualMemory has been dealt with, including attempts to query illegal addresses or non-existent address spaces.
The initial implementation of a new Common Cache has been integrated into ReactOS.  Its functionality and usefulness is still limited, but sets the stage for removal of the old, buggy Cc and in the future will allow greater compatibility with Installable Filesystem Drivers.  The current implementation is capable of demand paging, though its data structures remain segregated from the main memory manager due to incompatibilities and the MM's reliance on the old Cc design.
+
* Support for user mode virtual address descriptor faults have been added.
=== Heap Manager ===
+
* An arry has been added that holds the conversion between memory manager/page table entry protection values to Win32 protection flags.
 +
==== Common Cache ====
 +
The initial implementation of a new Common Cache has been integrated into ReactOS.  Its functionality and usefulness is still limited, but sets the stage for removal of the old, buggy Cc and in the future will allow greater compatibility with Installable Filesystem Drivers.  The current implementation is capable of demand paging, though its data structures remain segregated from the main memory manager due to incompatibilities and the MM's reliance on the old Cc design.  Using the new Cc during installation also nearly succeeds and a workable filesystem is written to disk, but booting is still not working.
 +
==== Heap Manager ====
 
The ReactOS heap manager was originally derived from Wine, which was itself based on the Windows 95 heap manager's design, hence its architecture was more suited to a DOS environment than NT.  This release sees the implementation of a rewritten heap manager based on Windows 2003/Vista, which support for considerably more functionality in determining how memory allocations are made.  In addition, a second new heap manager was added, one specifically designed to help detect overflows and the like from memory that it allocates.  This debug heap manager can turned on or off at an application level and promises to help considerably in detecting mistakes in memory operations.
 
The ReactOS heap manager was originally derived from Wine, which was itself based on the Windows 95 heap manager's design, hence its architecture was more suited to a DOS environment than NT.  This release sees the implementation of a rewritten heap manager based on Windows 2003/Vista, which support for considerably more functionality in determining how memory allocations are made.  In addition, a second new heap manager was added, one specifically designed to help detect overflows and the like from memory that it allocates.  This debug heap manager can turned on or off at an application level and promises to help considerably in detecting mistakes in memory operations.
  
== Network Stack ==
+
=== Network Stack ===
=== MSAFD ===
+
==== MSAFD ====
 
* Various memory bugs fixed.
 
* Various memory bugs fixed.
=== Network Driver Interface Specification ===
+
==== Network Driver Interface Specification ====
 
* Failure cases now have their locks properly released.
 
* Failure cases now have their locks properly released.
 
* Work has been done to better match NDIS 5.1 characteristics.
 
* Work has been done to better match NDIS 5.1 characteristics.
=== Transport Device Interface ===
+
==== Transport Device Interface ====
 
* TDI function exports have been updated based off of Windows Driver Kit 7.
 
* TDI function exports have been updated based off of Windows Driver Kit 7.
  
== Startup/Shutdown ==
+
=== Shell ===
=== FreeLoader ===
+
==== Explorer ====
 +
* Various visual problems in the taskbar has been fixed.
 +
* Various out of bounds array accesses have been fixed.
 +
==== Explorer New ====
 +
* Displaying of seconds in the tray now added.
 +
* Querying of version information has been implemented.
 +
* Opening context menu through right-click has been implemented.
 +
* Resizing of work area has been implemented.
 +
 
 +
=== Startup/Shutdown ===
 +
==== FreeLoader ====
 
* Checksum calculation of CDs has been fixed.
 
* Checksum calculation of CDs has been fixed.
 
* The majority of trap and bluescreen code has been converted from assembly to C, with the remaining assembly converted to Intel syntax.
 
* The majority of trap and bluescreen code has been converted from assembly to C, with the remaining assembly converted to Intel syntax.
Line 255: Line 291:
 
* Bluescreen converted to black on ARM.
 
* Bluescreen converted to black on ARM.
 
* Preliminary work on fixing NTFS driver used by freeloader.
 
* Preliminary work on fixing NTFS driver used by freeloader.
 +
==== Winlogon ====
 +
* Notifications from win32k to sound system beep are now received.
  
== Storage Stack ==
+
=== Storage Stack ===
=== CD-ROM ===
+
Preliminary work has been done to deal with GUID Partition Tables, which are needed to support booting from EFI systems.  While some of the data structures for GPT have been implemented, more work will need to be done before ReactOS can truly boot off of GPT disks.
 +
==== CD-ROM ====
 
* The Windows XP DDK CD-ROM driver example has been imported into ReactOS.
 
* The Windows XP DDK CD-ROM driver example has been imported into ReactOS.
 
* Various updates have been made to make the driver more compatible with Windows 2003.
 
* Various updates have been made to make the driver more compatible with Windows 2003.
=== ClassPnP ===
+
==== ClassPnP ====
 
* The Windows XP DDK ClassPnP driver example has been imported into ReactOS.
 
* The Windows XP DDK ClassPnP driver example has been imported into ReactOS.
=== SCSIPORT ===
+
==== SCSIPORT ====
 
* Interrupt information is not duplicated for two different interrupts to the same device.
 
* Interrupt information is not duplicated for two different interrupts to the same device.
 
* Partial implementation of two DMA channels.
 
* Partial implementation of two DMA channels.
=== UniATA ===
+
==== UniATA ====
 
* Support added for differing number of devices attached to different channels.
 
* Support added for differing number of devices attached to different channels.
 
* AHCI support code updated but not yet ready for usage.
 
* AHCI support code updated but not yet ready for usage.
  
= Drivers =
+
== Drivers ==
== MMEBUDDY ==
+
* NMI driver is now enabled in boot/livecd.
 +
=== MMEBUDDY ===
 
MME Buddy is a driver helper library for sound support.
 
MME Buddy is a driver helper library for sound support.
 
* MIDM_OPEN, MIDM_CLOSE, MIDM_START, MIDM_STOP, MODM_OPEN, MODM_CLOSE messages implemented.
 
* MIDM_OPEN, MIDM_CLOSE, MIDM_START, MIDM_STOP, MODM_OPEN, MODM_CLOSE messages implemented.
Line 277: Line 317:
 
* Wave pause, restart, and resetting implemented.
 
* Wave pause, restart, and resetting implemented.
  
== MMixer ==
+
=== MMixer ===
 
* Topology enumeration has been rewritten to correctly take into account sum/mux nodes, avoid assigning nodes to multiple mixer lines, and avoid creating cycles of nodes.
 
* Topology enumeration has been rewritten to correctly take into account sum/mux nodes, avoid assigning nodes to multiple mixer lines, and avoid creating cycles of nodes.
 
* Support routines for node state changes added.
 
* Support routines for node state changes added.
Line 283: Line 323:
 
* Enumeration and usage of MIDI devices has been implemented.
 
* Enumeration and usage of MIDI devices has been implemented.
  
== PCI ==
+
=== PCI ===
 
* Locks are released during error cases.
 
* Locks are released during error cases.
 
* Initialization of driver has seen multiple fixes.
 
* Initialization of driver has seen multiple fixes.
 
* Continued development of PCI bridge support.
 
* Continued development of PCI bridge support.
  
== USB ==
+
=== USB ===
 
* A bug that resulted in only half of the keyboard data being copied has been fixed.
 
* A bug that resulted in only half of the keyboard data being copied has been fixed.
=== EHCI ===
+
==== EHCI ====
 
* Resetting of the port no longer resets the device as well.
 
* Resetting of the port no longer resets the device as well.
 
* Various fixes to initialization and configuration of devices by the EHCI driver.
 
* Various fixes to initialization and configuration of devices by the EHCI driver.
 
* Various fixes to how data is transferred between the USB device and the driver.
 
* Various fixes to how data is transferred between the USB device and the driver.
  
== WDMAUD ==
+
=== WDMAUD ===
 
* The provided waveformat now has its size checked to make sure it is at least the size of a WAVEFORMAT struct.
 
* The provided waveformat now has its size checked to make sure it is at least the size of a WAVEFORMAT struct.
 
* Additional information needed for playback are now computed from the provided waveformat.
 
* Additional information needed for playback are now computed from the provided waveformat.
Line 302: Line 342:
 
* MIDI devices can now be detected by WDMUAD and listed.
 
* MIDI devices can now be detected by WDMUAD and listed.
  
== Video ==
+
=== Video ===
=== VGA_NEW ===
+
==== VBEMP ====
 +
* Rounding error has been fixed when calculating display size.
 +
 
 +
==== VGA_NEW ====
 +
* The miniport driver for the new VGA driver has been added.
 
* Various fixes to avoid buffer misuse.
 
* Various fixes to avoid buffer misuse.
 +
* Palette is currently limited to 16 colors as 256 color palette is disabled.
  
=== VIDEOPRT ===
+
==== VIDEOPRT ====
 
* Various fixes to use of synchronization.
 
* Various fixes to use of synchronization.
 +
* Event implementation is now shared with Win32k.
  
=== VMX_SVGA ===
+
==== VMX_SVGA ====
 
* Buffer calculation fixed for strings.
 
* Buffer calculation fixed for strings.
  
Line 317: Line 363:
 
* Enumeration of registry values now correctly handles cases where the return buffer is too small.
 
* Enumeration of registry values now correctly handles cases where the return buffer is too small.
 
* Managing accounts through the Local Security Authority has been implemented.
 
* Managing accounts through the Local Security Authority has been implemented.
 +
 +
== CFGMGR32 ==
 +
* Forwarders added for functions exported by setupapi.dll.
 +
 +
== COMCTL32 ==
 +
* Work has been done to try to fix bitmap resources that resulted in broken icons.
  
 
== DDRAW ==
 
== DDRAW ==
Line 325: Line 377:
 
* Code for creating compatible bitmaps (DDBs) from DIB color data has been rewritten.
 
* Code for creating compatible bitmaps (DDBs) from DIB color data has been rewritten.
 
* Variety of fixes to bitmap transforms and other operations.
 
* Variety of fixes to bitmap transforms and other operations.
 +
 +
== IPHLPAPI ==
 +
* Name server enumeration functions have been rewritten.
 +
* Static DNS entries are checked before dynamic DNS entries.
  
 
== KERNEL32 ==
 
== KERNEL32 ==
Line 346: Line 402:
 
* Processes being debugged now have debug heap flags applied.
 
* Processes being debugged now have debug heap flags applied.
 
* Various additional fixes to image loading.
 
* Various additional fixes to image loading.
 +
* Querying of objects will return the required buffer size if the provided buffer is too small.
 +
 +
== OLEACC ==
 +
* An actual DLL entrypoint is used to record the instance handle needed to access various resources.
  
 
== OPENGL32 ==
 
== OPENGL32 ==
Line 363: Line 423:
 
* A variety of fixes to memory functions dealing with correctly tracking used and free blocks in the heap along with updates to take better advantage of the new heap manager's functionality.
 
* A variety of fixes to memory functions dealing with correctly tracking used and free blocks in the heap along with updates to take better advantage of the new heap manager's functionality.
 
* Process parameter block is now correctly zeroed out when its memory is allocated using the new memory manager.
 
* Process parameter block is now correctly zeroed out when its memory is allocated using the new memory manager.
 +
* Locking of boot status data has been modified.
 +
 +
== SECUR32 ==
 +
* PACKAGEINFO struct is now initialized regardless of whether there are packages in order to compensate for behavior in Wine's rpcrt4.
  
 
== SETUPAPI ==
 
== SETUPAPI ==
Line 371: Line 435:
 
* More code enabled thanks to IOCTL_DISK_GET_LENGTH_INFO being implemented.
 
* More code enabled thanks to IOCTL_DISK_GET_LENGTH_INFO being implemented.
 
* Drawing shortcuts now use a different raster operation than previously.
 
* Drawing shortcuts now use a different raster operation than previously.
 +
 +
== URLCACHE ==
 +
* URLCACHE is no longer initialized for a system process.
  
 
== USER32 ==
 
== USER32 ==
 
* A variety of undocumented definitions have been gathered into a single place.
 
* A variety of undocumented definitions have been gathered into a single place.
 +
* Initial implementation of client thread information has begun to support QS flags and signaling synchronization messages.
 +
* Major work has been done to deal with global hooks and the various message passing functions used by them.
 +
* A large number of winetests related to window regions and parents have been fixed.
 +
 +
== WININET ==
 +
* Error setting now correctly uses the winsock specific function instead of errno.
  
 
= Client/Server Runtime =
 
= Client/Server Runtime =
 
== CSRSS ==
 
== CSRSS ==
 
* Attempts to reserve memory ranges now uses the correct flags for the new memory manager.
 
* Attempts to reserve memory ranges now uses the correct flags for the new memory manager.
 +
* CSRSS suffers from an interesting problem in its initialization phase wherein it tries to map address 0xA0000.  The problem was this area of memory may already have been allocated and reserved by the SMSS for the CSRSS.  The current solution is to release all memory that was allocated beforehand to ensure 0xA0000 is free.
 +
* A new function GetTempFile() that returns an identifier used for creating temporary files has been added.
  
 
== Kernel-mode subsystem server (Win32K) ==
 
== Kernel-mode subsystem server (Win32K) ==
 +
Work continues to fill in missing drawing functionality in Win32k and fix existing implementations.  These range from tweaking calculations used in drawing bitmaps to implementing entirely new data structures that were previously missing in ReactOS.  The integration of the yarotows branch especially has brought about several new APIs and data structures associated with display drivers.  Additions include the physical and logical device objects and their associated APIs and a new locking mechanism for devices.  With yarotows now merged in, ReactOS is capable of supporting dynamic mode changes without the need to reboot.
 
* UserSetCursorPos now passes all Winetests.
 
* UserSetCursorPos now passes all Winetests.
 
* Support functions for setting and getting the default layout in a process have been added.
 
* Support functions for setting and getting the default layout in a process have been added.
Line 394: Line 470:
 
* Mouse and keyboard input no longer results in every message queue being woken, only the thread that the input is intended for is woken.
 
* Mouse and keyboard input no longer results in every message queue being woken, only the thread that the input is intended for is woken.
 
* Various optimizations to how messages are passed to processes, reducing duplication of information and unnecessary operations.
 
* Various optimizations to how messages are passed to processes, reducing duplication of information and unnecessary operations.
 
+
* Exclusive Device Context locks are no longer held when calling Nt/Gre functions. In the case of bitmaps, an InterlockedCompareExchange is used to check and exchange bitmap device context.
== BASE ==
+
* Get/PeekMessage tests are now fixed after the correct message posting functions are being called.
 
+
* A variety of places have had their exception handling improved and simplified to increase performance.
=== SETUP ===
+
* Issues with drawing icons, such as them being pink in color, have been dealt with through fixes to the GDI and bitmap code.
* Update Ukrainian translation by Igor Paliychuk. ([[Amine Khaldi]]; {{bug|5536}})
+
* A new window structure is now used and old Window Object has been deprecated.
* 5540 5604 5614 5617 for more details. ([[Amine Khaldi]]; {{bug|5536}})
+
* ANSI to unicode and unicode to ANSI conversions between various message passing functions is undergoing work to fix issues uncovered by global hook development.
* Update Estonian translation by anthrax11. ([[Amine Khaldi]]; {{bug|5625}})
+
* The desktop window object currently has a hack to mark it as the desktop object for the time being.
* Fix a really mean bug: wcslen() returns the size in characters whereas MaximumLength has to be in bytes. ([[Pierre Schweitzer]])
 
* Now, this sets MaximumLength to its appropriate size and prevents some memory issues (and buffers having odd size, which is weird for an unicode string...). ([[Pierre Schweitzer]])
 
* Get rid of indirection ([[Johannes Anderwald]]; {{bug|5190}})
 
* Fix a buffer overflow (overread) when adding a locale key to the registry. The history of this bug is funny: ([[Aleksey Bragin]]; {{bug|5810}})
 
* 1. Eric wrote the code, which sets a key of REG_SZ type, as 4 widechars plus terminating zero, but passes 8 as the bytesize of the buffer. It's not fully correct (a terminating zero is absent from the bytesize of the buffer, but MSDN doesn't specify if it should be added or not, and hardcoding "8" is not the best idea too) but not dramatic. That was revision 9596, 7 years ago. ([[Aleksey Bragin]]; {{bug|5810}})
 
* 2. Lentin notices something is not right in this code, and decides to "fix" it by multiplying that same hardcoded value by.... guess what? sizeof(PWCHAR)! That is, size of a pointer, which on an x86 would be 4 bytes. Massive out of bounds access obviously happens. That was revision 31642, 3 years ago. ([[Aleksey Bragin]]; {{bug|5810}})
 
* 3. Very soon Colin reshuffles and improves the code based on patch #2635, however the problem still goes unnoticed (r31655+). ([[Aleksey Bragin]]; {{bug|5810}})
 
 
 
=== SHELL ===
 
* Carlo Bramix: MultiByteToWideChar() has just 6 and not 8 parameters, probably it's a forgetten copy/past from WideCharToMultiByte(). ([[Aleksey Bragin]]; {{bug|5678}})
 
* Carlo Bramix: ConvertULargeInteger() should have its parameter 'Len' declared as UINT rather than 'INT'. This fixes a signed/unsigned mismatch warning. ([[Aleksey Bragin]]; {{bug|5678}})
 
 
 
==== EXPLORER ====
 
* Track the only Global Hook ReactOS has. ([[James Tabor]])
 
* Revert last change. ([[James Tabor]])
 
* Fix some visual problems in the toolbar ([[Giannis Adamopoulos]])
 
* Fix array access out of bounds. ([[Pierre Schweitzer]]; {{bug|5990}})
 
* Make fix of r51022 compiler independant, on Johannes' suggestion. ([[Pierre Schweitzer]])
 
 
 
==== EXPLORER-NEW ====
 
* Fix another "sizeof" usage mistake ([[Cameron Gutman]])
 
* CID 1631 ([[Cameron Gutman]])
 
* Allow displaying seconds in tray upon registry setting (Edijs)
 
 
 
=== SYSTEM ===
 
 
 
==== RUNONCE ====
 
* Fixed a typo in french translation ([[Pierre Schweitzer]])
 
 
 
==== SMSS ====
 
* Remove the ROS_DOESNT_SUCK hack, and correctly started subsystem processes with the first MB reserved. ([[sir_richard]])
 
 
 
==== WINLOGON ====
 
* Add msg constants (by smiley) ([[Johannes Anderwald]])
 
* Implement receiving notifications from win32k to play sounds of MessageBeep ([[Giannis Adamopoulos]])
 
* Remove a documented definition from undocuser.h ([[Giannis Adamopoulos]])
 
* Fix a typo. ([[Amine Khaldi]])
 
 
 
===== DISK =====
 
* Reflect changes in Class2. ([[Pierre Schweitzer]])
 
* Also added support for IOCTL_DISK_GET_DRIVE_GEOMETRY_EX. ([[Pierre Schweitzer]])
 
* Hackplemented support for IOCTL_DISK_GET_PARTITION_INFO_EX. It will work fine for MBR partitions but will fake returns for GPT partitions. ([[Pierre Schweitzer]])
 
* Implemented support for IOCTL_DISK_GET_LENGTH_INFO ([[Pierre Schweitzer]])
 
 
 
===== RTL =====
 
* Change RtlLockBootStatusData prototype according to http://cookp.com/%2F/thread/1111206/how%20can%20i%20detect%20last%20boot%20success ([[Eric Kohl]])
 
* Carlo Bramini <carlo DOT bramix AT libero DOT it> ([[Matthias Kupfer]]; {{bug|5635}})
 
* Fix for render status bar after changing line wrap and flicker issue. ([[Matthias Kupfer]]; {{bug|5635}})
 
* for details. ([[Matthias Kupfer]]; {{bug|5635}})
 
 
 
 
 
== DLL ==
 
 
 
=== CPL ===
 
 
 
=== DIRECTX ===
 
 
 
==== DDRAW ====
 
* Jerome Gardou: Almost all of the ddraw->refcount winetests pass. One remains, due to the fact that IdirectDrawSurface::SetPalette is unimplemented. IDirectDraw::Createpalette is implemented too, but needs testing. There are no parameter checks. ([[Aleksey Bragin]]; {{bug|4909}})
 
* Comments from me: The patch is not build-tested, however I did my best to merge it to existing ddraw and I prefer the actual code to be in the repository rather than hanging in bugzilla for years (last comment to the patch is dated 29.10.2009). ([[Aleksey Bragin]]; {{bug|4909}})
 
 
 
==== WINE ====
 
* Add iscntrlW() definition ([[Cameron Gutman]])
 
* Fix non-x86 versions of Wine's push/pop exception frame macro. ([[sir_richard]])
 
 
 
===== WINED3D =====
 
* Update wined3d, ddraw, d3d8 and d3d9 to Wine 1.3.4. ([[Kamil Hornicek]])
 
* Our CRT causes duplicate definitions, when trying to use it as fallback for missing msvcrt imports. Work around this limitation by adding powf and sqrtf wrappers for amd64 builds ([[Timo Kreuzer]])
 
 
 
=== WIN32 ===
 
* Rafal Harabien: ([[Giannis Adamopoulos]]; {{bug|5580}})
 
* Always call IntKeyboardInput and co_MsqPostKeyboardMessage while holding the user lock ([[Giannis Adamopoulos]]; {{bug|5580}})
 
* Simplify cleaning up sent messages ([[Giannis Adamopoulos]]; {{bug|5580}})
 
 
 
==== AVIFIL32 ====
 
* Split utf8 resources into theit own file (MSVC compatibility) ([[Timo Kreuzer]])
 
 
 
==== CFGMGR32 ====
 
* Add missing functions. ([[Eric Kohl]])
 
* Add forwarders to functions that are exported by setupapi.dll. ([[Eric Kohl]])
 
* Mark deprecated functions. ([[Eric Kohl]])
 
 
 
==== COMCTL32 ====
 
* Fix bitmap resources. They were not very valid. Windows didn't even load them. Probably created with some linux tool *cough* ([[Timo Kreuzer]])
 
* Fixes part of the broken icons. Not the pink ones though. ([[Timo Kreuzer]])
 
* Revert 45676 ([[Johannes Anderwald]])
 
* It appears that the definitions for IID_IUnknown differ for kernel mode COM and user mode COM ([[Johannes Anderwald]])
 
* Sync with wine 1.3.14 ([[Amine Khaldi]])
 
* Fix include order of resources. ([[Timo Kreuzer]])
 
* remove comctl_Cn.rc, it contains and outdated simplified chineese translation, that wine has in comctl_Zh.rc ([[Timo Kreuzer]])
 
 
 
==== DEVMGR ====
 
* DisplayDevicePropertyText: Use full DWORD value, not just one byte of it (CID 1803). ([[Roel Messiant]])
 
 
 
==== FUSION ====
 
* sync to wine 1.3.10 ([[Christoph von Wittich]])
 
* use crt="msvcrt" instead of <library>msvcrt</library> ([[Christoph von Wittich]])
 
 
 
==== IMAGEHLP ====
 
* partial winesync ([[Christoph von Wittich]])
 
 
 
==== IPHLPAPI ====
 
* Rewrite name server enumeration routines ([[Johannes Anderwald]])
 
* Check if static dns entries are present before checking for dynamic dns entries ([[Johannes Anderwald]])
 
* Fixes static dns entries ([[Johannes Anderwald]])
 
* Remove conditional redefine of DPRINT. Wine debug channels at this point, and we have NDEBUG. ([[Roel Messiant]])
 
* Use TRACE instead of DbgPrint. Gets rid of the "Status 2" spam when no static nameserver is in the registry. ([[Roel Messiant]])
 
 
 
 
 
==== MPRAPI ====
 
* Sync to Wine-1.3.8 ([[Aleksey Bragin]]; {{bug|5718}})
 
 
 
==== OLEACC ====
 
* Use an actual entrypoint. Needed to record the instance handle, used by various function that access resources of the module. Should fix oleacc:main winetest. ([[Roel Messiant]])
 
 
 
==== RPCRT4 ====
 
* Add a missing format type to unmarshall_discriminant(). ([[Eric Kohl]])
 
 
 
==== SECUR32 ====
 
* Don't leave packageinfo uninitialized. Even though it's not the way it should work, wine's rpcrt4 doesn't really expect that function to return no packages at all. Should prevent freeing an unitialized pointer. ([[Aleksey Bragin]]; {{bug|5778}})
 
 
 
==== SHLWAPI ====
 
* Explicitly add msvcrt before ntdll to use it's *sprintf functions. Fixes bug 5557 ([[Timo Kreuzer]])
 
 
 
==== WINHTTP ====
 
* Sync to WINE 1.3.4 ([[Cameron Gutman]])
 
* Sync the inet_ntop.c change from wininet ([[Cameron Gutman]])
 
* Update the diff ([[Cameron Gutman]])
 
* Update rapps database ([[Daniel Reimer]])
 
* Sync to Wine 1.3.9 ([[Cameron Gutman]])
 
 
 
==== WININET ====
 
* Add a ROS-specific change that was missed during the last winesync to fix winsock error handling ([[Cameron Gutman]])
 
* Remove the CP_UNIXCP definition ([[Cameron Gutman]])
 
* Use WSASetLastError instead of errno in inet_ntop.c ([[Cameron Gutman]])
 
* Thanks to IRC:igorko for pointing out the bug ([[Cameron Gutman]])
 
* Sync wininet to WINE 1.3.4 ([[Cameron Gutman]])
 
* Regenerate wininet_ros.diff so that it actually applies against current WINE head ([[Cameron Gutman]])
 
* Add a forgotten change to the diff ([[Cameron Gutman]])
 
* Sync to Wine 1.3.9 ([[Cameron Gutman]])
 
* Revert part of r47411. The revision was a wine sync, but no wine code was reverted, only the use of zlib is disabled. Fixes downloading audiograbber with rapps. ([[Timo Kreuzer]]; {{bug|5663}})
 
 
 
==== WINMM ====
 
* MCI_Close: Use UINT instead of UINT16 for the device id (CID 1804). ([[Roel Messiant]])
 
 
 
==== NMIDEBUG ====
 
 
 
== DRIVERS ==
 
 
 
=== BASE ===
 
* Fix and cleanup some code, and enable NMI support on the boot/install CD as well. ([[sir_richard]])
 
 
 
=== INPUT ===
 
* Fix potential buffer overflow ([[Johannes Anderwald]])
 
* Calculate packet type according to PS/2++ spec (CID 1810). ([[Roel Messiant]])
 
* Fix technical detail in comment to match spec. ([[Roel Messiant]])
 
 
 
== HAL ==
 
* Fix amd64 build ([[Timo Kreuzer]])
 
* Big rapps Update ([[Daniel Reimer]])
 
* Implement HalStopProfileInterrupt and add required RTC register and flag definitions. ([[Eric Kohl]])
 
* Fix build failure from r48863. ([[Eric Kohl]])
 
* Check that the interrupt line is not 255 ([[Cameron Gutman]])
 
* Check that the interrupt pin is not 0 ([[Cameron Gutman]])
 
* Fixes a failed assertion that Caemyr experienced with an ATI Rage graphics card ([[Cameron Gutman]])
 
* HalpEnableInterruptHandler: Set the IDT_LATCHED flag if the caller requested a latched interrupt ([[Cameron Gutman]])
 
* Fix a broken loop that resulted in us registering the resources of multiple COM ports as our KD port ([[Cameron Gutman]])
 
* Fixes bug #5530 ([[Cameron Gutman]])
 
* Add INIT_FUNCTION where needed. Will save 860KB later. ([[sir_richard]])
 
* Disable INIT_FUNCTION to see whether it's responsible for Qemu broken status. Some are complaining of unworking trunk since r49463. ([[Pierre Schweitzer]])
 
* This will be reverted after tests. ([[Pierre Schweitzer]])
 
* Make directory/buildfiles for OMAP3-specific HAL. Shared between ZOOM2 and Beagle for now. ([[sir_richard]])
 
* Convert while (TRUE); to ASSERT(FALSE); on unimplemented pathes. ([[Timo Kreuzer]])
 
* Fix Port numbers and ranges in HalpDefaultIoSpace (divide by 0x100) (Rafal; {{bug|5925}})
 
* By me: (Rafal; {{bug|5925}})
 
* Fix DMA 1 port range and fix comment (Rafal; {{bug|5925}})
 
 
 
=== DDK ===
 
* Add missing classpnp.h ([[Amine Khaldi]])
 
* classpnp.h: Add FUNCTIONAL_DEVICE_EXTENSION, SET_FLAG, CLEAR_FLAG and TEST_FLAG ([[Amine Khaldi]])
 
* Add some more missing definitions. ([[Amine Khaldi]])
 
* Fix a typo and introduce some minor formatting changes. ([[Amine Khaldi]])
 
* Add missing min and max macros. ([[Amine Khaldi]])
 
* Add misisng MmLockPagableCodeSection. ([[sir_richard]])
 
* Fix ClassDebugPrint prototype. ([[Amine Khaldi]])
 
* Fix RtlStringCbPrintf prototypes. ([[Amine Khaldi]])
 
* Add dmusprop header ([[Johannes Anderwald]])
 
* Add IMP_PowerNotify macro to portcls.h ([[Johannes Anderwald]])
 
* Add IID_IMusicTechnology guid to portcls.h ([[Johannes Anderwald]])
 
* Add GTI_XXX macros to portcls.h ([[Johannes Anderwald]])
 
* Remove broken definitions of KSPROPSETID_Synth, KSPROPSETID_Synth_Dls. They are defined in dmusprop.h ([[Johannes Anderwald]])
 
* Add KSDATARANGE_MUSIC to ksmedia.h ([[Johannes Anderwald]])
 
* Add KSMUSIC_TECHNOLOGY, KSDATAFORMAT_SUBTYPE_MIDI_BUS, KSAUDFNAME_MIDI, KSNODETYPE_SYNTHESIZER to ksmedia.h ([[Johannes Anderwald]])
 
* FsRtlRemoveBaseMcbEntry() return is VOID ([[Pierre Schweitzer]])
 
* Oleg Baikalow: Fix NDIS macros. ([[Aleksey Bragin]])
 
* Fix ioaccess.h svn properties. Spotted by Jonathan Yong. ([[Amine Khaldi]])
 
 
 
=== NDK ===
 
* Fixed build ([[Pierre Schweitzer]])
 
* Add MMVAD_SHORT. ([[sir_richard]])
 
* Fix definition of ARM PTE/PDE structure. ([[sir_richard]])
 
* Add IMAGE_FILE_MACHINE_NATIVE ([[Timo Kreuzer]])
 
* Add RTL_TRACE_BLOCK structure definition. ([[Aleksey Bragin]])
 
* pHalAllocateMapRegisters type functions are to return NTSTATUS and not BOOLEAN ([[Pierre Schweitzer]])
 
 
 
=== PSDK ===
 
* Add some missing structures in ioevent.h ([[Amine Khaldi]])
 
* Add some missing IOCTL_* definitions. ([[Amine Khaldi]])
 
* Add missing ntddmmc.h definitions. ([[Amine Khaldi]])
 
* Add CDROM_TOC_SESSION_DATA structure. ([[Amine Khaldi]])
 
* Add missing header's header. ([[Amine Khaldi]])
 
* Fixed build ([[Pierre Schweitzer]])
 
* Add missing SEC_XXX definitions for Server 2003 (Vista ones still missing). ([[sir_richard]])
 
* Add more track popup menu types. ([[James Tabor]])
 
* Add INET_E_USE_DEFAULT_SETTING definition ([[Cameron Gutman]])
 
* Add ICONINFOEX* definitions and GetIconInfoEx* declarations from Wine. ([[Aleksey Bragin]])
 
* Add NOMIRRORBITMAP definition. ([[Aleksey Bragin]])
 
* Add DecryptFileA/W prototype. ([[Eric Kohl]])
 
* add TrustedDomainAuthInformationInternal and TrustedDomainFullInformationInternalFix to _TRUSTED_INFORMATION_CLASS. ([[Jérôme Gardou]])
 
* Fixes build ([[Jérôme Gardou]])
 
* Partly sync windef.h with mingw-w64 and add specstrings.h ([[Timo Kreuzer]])
 
* Partly sync windef.h with mingw-w64 and add specstrings.h ([[Timo Kreuzer]])
 
* reverts the previous revert, fixed definition of NULL to __null in stddef.h ([[Timo Kreuzer]])
 
* Don't define __in and __null on c++ build. as long as we keep using host headers, this won't work ([[Timo Kreuzer]])
 
* Comment out specstrings.h inclusion in windef.h as per Timo's request. ([[Sylvain Petreolle]])
 
* Fixes build. ([[Sylvain Petreolle]])
 
* Add missing DbgRaiseAssertionFailure inline to winnt.h header. ([[sir_richard]])
 
* Oleg Baikalow: Add missing definitions to ipexport.h. ([[Aleksey Bragin]])
 
* Oleg Baikalow: Don't call TDIEntityID structure and type with the same name. ([[Aleksey Bragin]])
 
* Bug 5756: TRANSLATION: multiple modules: Bulgarian by CCTAHEB ([[Daniel Reimer]])
 
* Bug 5761: TRANSLATION: Czech translation update by Radek Liska ([[Daniel Reimer]])
 
* Update rapps database. ([[Daniel Reimer]])
 
* Fix for Fox Audio Player. Newest Version and leading to a Setup with libmpg ([[Daniel Reimer]])
 
* Add missing definitions. ([[Aleksey Bragin]])
 
* sync urlmon.idl with wine 1.3.10 ([[Christoph von Wittich]])
 
* Merge from audio branch ([[Johannes Anderwald]])
 
* Remove svn:merge info ([[Johannes Anderwald]])
 
* Improve commctrl.h ([[Amine Khaldi]])
 
* Improve some definitions. ([[Amine Khaldi]])
 
 
 
=== REACTOS ===
 
 
 
==== SUBSYS ====
 
* Should use MEM_COMMIT | MEM_RESERVE, not just MEM_COMMIT when requesting a range of adress space that wasn't already reserved. This works in ReactOS because, well, no reason to explain why, but it wouldn't work on Windows or with a VAD-based kernel. ([[sir_richard]])
 
* Sync reg xcopy winhlp32 wordpad and msiexec with Wine 1.3.5 ([[Daniel Reimer]])
 
* Initialise PPB to zero. (Roel)
 
* The change from NtAllocateVirtualMemory to RtlAllocateHeap causes the memory to (Roel)
 
* be not automatically initialised to zero anymore. (Roel)
 
* Not every field of the PPB (for which the memory is allocated) gets explicitly (Roel)
 
* initialised, meaning this results in them having bogus values. (Roel)
 
* One of the now uninitialised fields is DebugFlags, which results in (Roel)
 
* DbgBreakPoint being called in NtProcessStartup.  Simply ensuring the memory is (Roel)
 
* zeroed makes it all better again. (Roel)
 
* Katayama Hirofumi: ([[Sylvain Petreolle]])
 
* Add / update Japanese translations. ([[Sylvain Petreolle]])
 
* Fix typos in calc en-US resource. ([[Sylvain Petreolle]])
 
* Bug #5673,5674,5675,5676. ([[Sylvain Petreolle]])
 
 
 
==== WIN32K ====
 
* Silence 3 DPRINTs ([[Timo Kreuzer]])
 
* NtGdiGetDIBitsInternal: Copy the requested amount of scanlines into the return buffer, not the whole bitmap. Should fix bug #5766. ([[Roel Messiant]])
 
* Remove co_IntPostOrSendMessage and use co_IntSendMessageNoWait where possible ([[Giannis Adamopoulos]])
 
* Improve "not enough memory" check when creating a bitmap ([[Jérôme Gardou]])
 
* use correct function to set the last error. ([[Jérôme Gardou]])
 
* Make sure to initialize our page operation mutex. ([[Art Yerkes]])
 
* Scan the whole range of the MemoryArea for pages to evict. ([[Art Yerkes]])
 
* This fixes cache section page eviction. ([[Art Yerkes]])
 
* IntCreateWindow: Fill out MaximumLength field of the window name. Fixes potential buffer overflow in at least NtUserDefSetText. ([[Roel Messiant]])
 
* Fix EngGetLastError and EngSetLastError ([[Timo Kreuzer]])
 
* Remove SetLastWin32Error and use EngSetLastError instead ([[Timo Kreuzer]])
 
* Fixes bug 5792 and Get/PeekMessage tests. I noticed co_IntPostOrSendMessage to co_IntSendMessageNoWait changes when it should have been changed to co_IntSendMessage. Same as co_IntSendMessage to co_IntSendMessageNoWait when it should have not changed.... I'm sorting it out. ATM win test locks up and the system shutdown box is not present only the text message. ([[James Tabor]])
 
* Use SendNotifyMessage for broadcasting these messages and SendMessageNoWait when not broadcasting. ([[James Tabor]])
 
* Fix all the user32 wine win test_CreateWindow tests. ([[James Tabor]])
 
* Fix all the user32 wine win test_enum_thread_windows tests. ([[James Tabor]])
 
* Update note after 50205. ([[James Tabor]])
 
* NtUserSetWindowFNID, sets user client side window function Ids, expands to ghost. ([[James Tabor]])
 
* Allocate/free GRE events directly from pool, instead of using Eng APIs. Use documented tag for GRE Events (Dfsm), found in pooltag.txt ([[sir_richard]])
 
* Implement EngMapEvent and EngUnmapEvent. ([[sir_richard]])
 
* Improve LDEVOBJ_bLoadImage, use ExportSectionPointer from the GdiDriverInfo structure instead of calling RtlImageDirectoryEntryToData ([[Timo Kreuzer]])
 
* Implement NtGdiGetBoundsRect and NtGdiSetBoundsRect.  (Samuel)
 
* Access the DC member directly instead of using IntGdiGetDCOrg ([[Timo Kreuzer]])
 
* Remove unused IntGdiGetDCOrg, GdiSetDCOrg, GdiGetDCOrgEx ([[Timo Kreuzer]])
 
* Simplify error checks, by reordering code in NtGdiScaleViewportExtEx ([[Timo Kreuzer]])
 
* Simplify exception handling, use _SEH2_YIELD ([[Timo Kreuzer]])
 
* Change function order ([[Timo Kreuzer]])
 
* Minor code improvements ([[Timo Kreuzer]])
 
* Fix type of DCLEVEL::prgnClip / prgnMeta (PVOID -> PREGION) ([[Timo Kreuzer]])
 
* Move NtGdiGetRandomRgn to dcobjs.c ([[Timo Kreuzer]])
 
* TRANSLATION: Fix browseui bulgarian resource filename. ([[Sylvain Petreolle]])
 
* Fix a bug in FLOATOBJ_DivLong ([[Timo Kreuzer]])
 
* Update rapps database ([[Daniel Reimer]])
 
* Use if, instead of switch to handle flags in XFORMOBJ_bXformFixPoints ([[Timo Kreuzer]])
 
* Define XFORMOBJ to EXFORMOBJ, a stack object that links to the matrix ([[Timo Kreuzer]])
 
* There is no spoon. ([[Timo Kreuzer]])
 
* Improve NtGdiStretchDIBitsInternal, use _SEH2_YIELT instead of saving an NTSTATUS and handle the fast path in place instead of setting a BOOL variable. Fixes warnings about uninitialized variables. ([[Timo Kreuzer]])
 
* In BitmapFormat, allow intermediate bpp values, use ULONG as parameter type, instead of WORD and DWORD ([[Timo Kreuzer]])
 
* In NtGdiCreateBitmap get the real bpp value from the gajBitsPerFormat array ([[Timo Kreuzer]])
 
* Add back check of too large nWidth (needed to make sure, cjWidthBytes didn't overflow) ([[Timo Kreuzer]])
 
* Merge all parameter checks ([[Timo Kreuzer]])
 
* Check cPlanes and cBitsPixel paramters explicitly ([[Timo Kreuzer]])
 
* Use GreCreateBitmapEx ([[Timo Kreuzer]])
 
* Remove BITMAP_GetRealBitsPixel ([[Timo Kreuzer]])
 
* In GreCreateBitmapEx handle allocation failure in the rle hack path and set LastError, when failed to allocate bitmap bits. ([[Timo Kreuzer]])
 
* Cleanup pooltags a little, use official tags where known and applicable. ([[Timo Kreuzer]])
 
* Fix use of XFORMOBJ. Should fix gdi32_winetest clipping regression and release breakage. ([[Timo Kreuzer]])
 
* Win32k implementation of GetCharacterPlacementW, work is dedicated to the late Professor John Collins. ([[James Tabor]])
 
* Implement NtGdiCreateMetafileDC. ([[James Tabor]])
 
* Since most of the gdi work I committed is being reverted or if'ed out of existence, this will be the last. ([[James Tabor]])
 
* Remove debugging code. ([[Timo Kreuzer]])
 
* Don't trat BI_BITFIELDS as compressed format in DIB_CreateDIBSection. Fixes KSStudio. Why it was introduced by r48359? I don't know. It was broken before. I refrain from making any more comments about that piece of ... code. ([[Timo Kreuzer]]; {{bug|5781}})
 
* Don't leak the memory for DIB sections. we set BMF_DONT_FREE in SURFACE_bSetBitmapBits, when the caller provides bits. This needs to be reconsidered. ([[Timo Kreuzer]])
 
* In UserSetCursor, return a pointer to the old cursor, not the handle ([[Timo Kreuzer]]; {{bug|5722}})
 
* really delete the pointer shape when NULL cursor is set, instead of just hiding it. ([[Timo Kreuzer]]; {{bug|5722}})
 
* Move reference handling completely to NtUserSetCursor ([[Timo Kreuzer]]; {{bug|5722}})
 
* In UserChangeDisplaySettings, set NULL cursor before change and restore old cursor after change to make sure we have the right color format. ([[Timo Kreuzer]]; {{bug|5722}})
 
* Reset monitor size after mode switch.  (rafalh; {{bug|5727}})
 
* Go back to hiding the cursor with GreMovePointer, instead of setting NULL bitmaps. While MSDN states that psoColor and psoMask can both be NULL in DrvSetPointerShape, it doesn't explicitly say anything about both being NULL at the same time. VBox driver doesn't expect that and will crash, so most likely windows doesn't do this. ([[Timo Kreuzer]])
 
* Set correct error value on failure in NtUserSetCursor.  (Victor)
 
* Portability bugfixes ([[Thomas Bluemel]])
 
* Create a security descriptor for the desktops rather than passing the ACLs in as a security descriptor ([[Thomas Bluemel]])
 
* Fix draw of cursors in static controls ([[Matthias Kupfer]])
 
* Last part of fix for bug #4874 ([[Matthias Kupfer]])
 
* Implement GetClassLongPtrA/W ([[Thomas Bluemel]])
 
* Fix replaced by more flexible code for arbitrary cursor sizes ([[Matthias Kupfer]])
 
* Fix crash with standalone win test_hind_message test. ([[James Tabor]])
 
* Fix buggy mechanism of pushing and popping free gdi handle slots. The old mechanism unneccessarily locked the entry and it was prone to the ABA problem as it didn't use a sequence number. ([[Timo Kreuzer]])
 
* Fix a bug in calculation of the background color for 32bpp -> 1bpp color translations. ([[Timo Kreuzer]])
 
* Fixes bug 2372 ([[Timo Kreuzer]])
 
* add missing file ([[Timo Kreuzer]])
 
* Add GetTransform declaration. (until we have undocgdi.h). ([[Aleksey Bragin]])
 
* Enable simple FontSmoothing by default. It matters for arwinss, trunk just ignores this value and always smoothes the fonts. ([[Aleksey Bragin]])
 
* Robert Horvath: LocalUnlock has to be different from GlobalUnlock. The subtle difference between LocalUnlock and GlobalUnlock, is, that the former will return FALSE and set ERROR_NOT_LOCKED on LMEM_FIXED allocations. Fixes 1 kernel32:heap failure. ([[Aleksey Bragin]]; {{bug|5869}})
 
* Robert Horvath: Add GlobalFlag entry in hivesys_{arch}.inf with the default value 0x0. ([[Aleksey Bragin]]; {{bug|5870}})
 
* Add a missing ORing of the registry-loaded GlobalFlags value in ExpInitializeExecutive. Thanks to Robert Horvath for spotting the issue. ([[Aleksey Bragin]]; {{bug|5870}})
 
* Merge all amd64 related changes from cmake branch ([[Timo Kreuzer]])
 
* Merge resource file related changes from cmake branch part 1 ([[Timo Kreuzer]])
 
* Merge resource file related changes from cmake branch part 2 ([[Timo Kreuzer]])
 
* fix taskmgr build ([[Timo Kreuzer]])
 
* Fix build of shlwapi ([[Timo Kreuzer]])
 
* Edijs: Properly load window size and position. ([[Aleksey Bragin]]; {{bug|5872}})
 
* Merge CRT changes from cmake branch (mainly MSVC compilation fixes) ([[Timo Kreuzer]])
 
* Handle BITMAPV4HEADER and BITMAPV5HEADER, when creating a DIB palette. Detect PAL_RGB like done with PAL_BGR in PALETTE_AllocPalette (optimization). ([[Timo Kreuzer]])
 
* Fixes pink icons. ([[Timo Kreuzer]])
 
* Remove some artifact from ARM build. ([[Pierre Schweitzer]])
 
* Would it fix build? ([[Pierre Schweitzer]])
 
* Fix initialization of XLATEOBJ, when source and dest format are equal.  (Thomas; {{bug|5828}})
 
* Remove gexloTrivial, it was never used ([[Timo Kreuzer]])
 
* Remove EXLATEOBJ_vInitTrivial and move the code into EXLATEOBJ_vInitialize ([[Timo Kreuzer]])
 
* Properly set XO_TABLE ([[Timo Kreuzer]])
 
* Set ppalDstDc in EXLATEOBJ_vInitXlateFromDCs ([[Timo Kreuzer]])
 
* In IntEngGradientFillRect, take the translate value into account, that we need when drawing happens on an intermediate surface.  (Thomas; {{bug|5805}})
 
* Check if CombinedClip is NULL before accesing it ([[Giannis Adamopoulos]])
 
* Should fix a crash with Download Master ([[Giannis Adamopoulos]])
 
* compile gdidebug code as a seperate file and give it a seperate header ([[Timo Kreuzer]])
 
* Fix a bug in GDIOBJ_LockObj, that would cause a deadlock, when an object was deleted while another thread was waiting to acquire the handle lock. ([[Timo Kreuzer]])
 
* Fix a bug that caused problems when the user clicks in the caption of a window to activate it ([[Giannis Adamopoulos]])
 
* Revert r50121 and r50154 ([[Giannis Adamopoulos]])
 
* Fix combobox to show the drop down window correctly when the parent window is topmost ([[Giannis Adamopoulos]]; {{bug|5705}})
 
* Revert 49767 on Pierre's request, which reverted this: ([[Johannes Anderwald]])
 
* Added real implementation of SetLastError() (instead of forwarding to NTDLL) ([[Johannes Anderwald]])
 
* Implemented BaseSetLastNTError() ([[Johannes Anderwald]])
 
* Renamed Basep8BitStringToCachedUnicodeString() to Basep8BitStringToStaticUnicodeString() and sightly changed its implementation ([[Johannes Anderwald]])
 
* Fixed implementation of LoadLibraryExA() & DisableThreadLibraryCalls() using those changes ([[Johannes Anderwald]])
 
* This is matching w2k3 implementation. This is of course a WIP. ([[Johannes Anderwald]])
 
* Add ros specific member cExclusiveLocks to THREADINFO to track number of acquired locks ([[Timo Kreuzer]])
 
* Add functions/macros to check lock count ([[Timo Kreuzer]])
 
* Move some definitions into gdidebug.h for global use ([[Timo Kreuzer]])
 
* Fix broken GdiDbgHTIntegrityCheck ([[Timo Kreuzer]])
 
* Add pre and post syscall hook functions (unused yet) ([[Timo Kreuzer]])
 
* add tracing of exclusive gdi locks ([[Timo Kreuzer]])
 
* add some asserts ([[Timo Kreuzer]])
 
* NtGdiStretchDIBitsInternal: don't call NtGdiGetDCObject and NtGdiCreateCompatibleDC with a dc locked. These cases are not harmful, but generally Nt* and Gre* should never be called with an exclusive gdi lock held. Also don't return in failure case with the dc still locked. ([[Timo Kreuzer]])
 
* NtGdiSelectBitmap. Don't exclusively lock the old bitmap. This could cause pool corruptions, when the share count reachted 0, the object was deleted and unlocked after that. Use InterlockedCompareExchange to check and exchange the new bitmaps dc. This is commented out, because it causes a lot of drawing problems. Do the referencing manually instead of calling DC_vSelectSurface. Use a shared reference instead of an exclusive lock for the new bitmap. add code for proper handling of DEFAULT_BITMAP, currently hacked due to restrictions in other parts of win32k. Fixes bug 5498 and probably a lot of other problems. ([[Timo Kreuzer]])
 
* Remove unused class list pointer and clear the class registered flag. ([[James Tabor]])
 
* Restore original patch 50154. ([[James Tabor]])
 
* Fix crash with win wine test. Win test works on my tree here and hardware as well. ([[James Tabor]])
 
* add code to register pre/post systemcall hooks. Its #if 0'ed to avoid unneccessary overhead. Can be enabled for debugging puposes. ([[Timo Kreuzer]])
 
* Small readability improvement. ([[Timo Kreuzer]])
 
* Create a new region covering the full desktop in UserRedrawDesktop instead of using Window->hrgnUpdate. Fixes "IntGdiCombineRgn requires hSrc2  != NULL" messages and redrawing issues on mode change. (Rafa≈; {{bug|5949}})
 
* don't transform cordinates twice in GreExtTextOutW (Rafa≈; {{bug|4811}})
 
* Fixes AbiWord toolbar (Rafa≈; {{bug|4811}})
 
* Fix possible lock leak in failure case of NtGdiSetBoundsRect. Fixes a failed assertion spotted by r3ddr4g0n. ([[Timo Kreuzer]])
 
* Fix biCompression filed in the DIBSECTION structure, returned by BITMAP_GetObject. Fixes K-Meleon toobar. Kudos for the fix go to Rafa≈Ç Harabie≈Ñ.  ([[Timo Kreuzer]]; {{bug|5940}})
 
* In BITMAP_CopyBitmap, also "copy" the palette of the source bitmap, instead of assuming the one created by GreCreateBitmapEx matches the bitmap bits we have copied. ([[Timo Kreuzer]]; {{bug|5902}})
 
* Fixes broken colors on the firefox firstrun page ([[Timo Kreuzer]]; {{bug|5902}})
 
* In NtGdiGetDIBitsInternal use a shared lock for the bitmaps and provide background colors when initializing the XLATEOBJ. This fixes mono bitmaps passed to GetDIBits. (no it does not fix pink icons in VLC) ([[Timo Kreuzer]])
 
* In BuildDIBPalette don't handle 15bpp, its not valid. and 16 bpp is 555, this is documented in MSDN. ([[Timo Kreuzer]])
 
* mark surface as not selected in DC_vSelectSurface when its released from a DC ([[Timo Kreuzer]])
 
* NtGdiSelectBitmap:  ([[Timo Kreuzer]])
 
* Don't allow selecting a bitmap into a dc that is already selected! ([[Timo Kreuzer]])
 
* Use DC_vSelectSurface instead of manually selecting ([[Timo Kreuzer]])
 
* set the DC size based on bitmap size ([[Timo Kreuzer]])
 
* remove duplicate prototype ([[Jérôme Gardou]])
 
* use RGB macro where possible ([[Jérôme Gardou]])
 
* we create BGR palette for RGB DIB sections, let's do the other way around ([[Jérôme Gardou]])
 
* simplify overcomplicated IntGetDIBColorTable ([[Jérôme Gardou]])
 
* Add a first implementation of IntRealizePalette ([[Jérôme Gardou]])
 
* No, it's not the VLC icons bugfix ([[Jérôme Gardou]])
 
* addendum to r50928: 24 and 32bpp BI_RGB bitmaps are BGR ([[Timo Kreuzer]])
 
* Fix calculating of ScanLines and source point in NtGdiGetDIBitsInternal for top-down bitmaps to more closely mimic win xp behavior. (Timo - high five for your test app) ([[Kamil Hornicek]]; {{bug|5524}})
 
* Raster operations in user mode are on higher bytes, whereas they are on lower bytes for drivers. Try to clarify this situation. ([[Jérôme Gardou]])
 
* Add sanity check about what was said previously. ([[Jérôme Gardou]])
 
* Implement masking in EngBitBlt ([[Jérôme Gardou]])
 
* Rewrite NtGdiMaskBlt accordingly ([[Jérôme Gardou]])
 
* Realize the palette when selecting it into a device DC. ([[Jérôme Gardou]])
 
* When applying raster operation, do so only on 24 bits, we don't support alpha channel in win32k ([[Jérôme Gardou]])
 
* This fixes VLC pink icons, Timo's MaskBlt tests and probably a lot of other things. ([[Jérôme Gardou]])
 
* Do raster operation on 4 bytes instead of only 3. Fixes ... ([[Timo Kreuzer]])
 
* maybe noone has noticed yet ;-) ([[Timo Kreuzer]])
 
* Silence some DPRINTS ([[Timo Kreuzer]])
 
* Dismiss alpha channel when creating a solid brush. ([[Jérôme Gardou]])
 
* Finally fixes VLC icons and numerous winetests. ([[Jérôme Gardou]])
 
* only lock DC if asked to in NtGdiSetDIBits. ([[Jérôme Gardou]])
 
* in 1bpp bitmaps, 0 means white. Take that into in SetDIBits ([[Jérôme Gardou]])
 
* fix a fixme in XLATEOBJ implementation ([[Jérôme Gardou]])
 
* remove useless field from ROS_DCINFO ([[Jérôme Gardou]])
 
* Fixes fox audio player GUI :-) Enjoy! ([[Jérôme Gardou]])
 
* Revert part of r50941. First its architecturally unclean to lock a DC in a USER function, 2nd its a bug to keep the lock while sending a message. ([[Timo Kreuzer]])
 
* Acquire ownership of monitor region before deleting it. ([[Timo Kreuzer]])
 
* Fix the select of the clip region for a window. Apologies to Rafal Harabien select works like select, also don't ([[James Tabor]])
 
* assume the original author is always right. ([[James Tabor]])
 
* Missed the clearing of the clip region for the window at the end of of its life. The mouse is looking for the window, doing so, scanning through all of them, even the ones that are at deaths door. ([[James Tabor]])
 
* Add A function to dump all locked handles and call it when an assertion about 0 locks fails. ([[Timo Kreuzer]])
 
* add dumping of locked handles to missing places. ([[Timo Kreuzer]])
 
* Silence a DPRINT ([[Timo Kreuzer]])
 
* Unlock the font in PATH_ExtTextOut. Fixes a failed assertion, when running google earth. ([[Timo Kreuzer]])
 
* Fix a crash in WidenPath, tested with Area.exe. ([[James Tabor]])
 
* Fix the RLE hack (partly) ([[Timo Kreuzer]])
 
* Use GreCreateBitmapEx instead of EngCreateBitmap in NtGdiSetDIBitsToDeviceInternal, so that the RLE hack works. Fix initialization of XLATEOBJ. ([[Timo Kreuzer]])
 
* Update all brushes in DC_vPrepareDCsForBlit. This allows us to simplify the code elsewhere. ([[Timo Kreuzer]])
 
* clip the destination rect against the bounds of the destination and source surface. Fixes a crash of gdi32_winetest bitmap that occurs as soon as IntCreateCompatibleBitmap is fixed. Other Eng* code needs to be checked as well. ([[Timo Kreuzer]])
 
* Fix IntCreateCompatibleBitmap, previously when the given DC was a memory DC with a dibsection selected, the function would only work if the dibsection was <= 8 bpp. ([[Timo Kreuzer]])
 
* Fix a warning about an uninitialized variable :D ([[Timo Kreuzer]])
 
* Fix calculation of dest rect in IntSetDIBits ([[Timo Kreuzer]]; {{bug|5886}})
 
* Rewrite NtGdiStretchDIBitsInternal. It now calls NtGdiSetDIBitsToDeviceInternal in case of SRCCOPY and no stretching and NtGdiCreateDIBitmapInternal + IntEngStretchBlt in the default case. This fixes RLE compressed dibs. ([[Timo Kreuzer]]; {{bug|5886}})
 
* The code isn't yet perfect, Windows behaviour is pretty complex, especially in regard to topdown/bottomup DIBs and the whole code needs to be rewritten. It will cause one more failed bitmap test, but another one that was formerly only passing with legacy 9x behaviour now behaves correctly. ([[Timo Kreuzer]]; {{bug|5886}})
 
* Fix an uncovered bug. This should fix coolplayer and winamp type applications. Does not fix drawing issues. ([[James Tabor]])
 
* Move the drag detection routine to kernel space, this will decrease the number of kernel calls that is noticeable with slower systems running an emulator. ([[James Tabor]])
 
* In WH_KEYBOARD hook, lparam isn't a pointer to KBDLLHOOKSTRUCT ([[Giannis Adamopoulos]]; {{bug|5991}})
 
 
 
==== BZIP2 ====
 
 
 
=== 3RDPARTY ===
 
 
 
== LIB ==
 
* update bzip2 library to 2.06 ([[Christoph von Wittich]])
 
 
 
==== FREETYPE ====
 
 
 
===== INCLUDE =====
 
 
 
====== FREETYPE ======
 
 
 
======= CONFIG =======
 
* Instead of having 4 template rbuild configuration files that must be kept in-sync, maybe there should be a generic one that they all inherit from? ([[sir_richard]])
 
* Add new property settings that exist in x86, but not ARM because nobody added them there. For example, nor cc, nor cache were being built on ARM, because NEWCC was undefined (which isn't treated as 0 by rbuild). ([[sir_richard]])
 
* How I long for CMAKE. ([[sir_richard]])
 
 
 
======= DATA =======
 
 
 
======== XML ========
 
 
 
===== ICU =====
 
 
 
====== SOURCE ======
 
 
 
==== ICU4ROS ====
 
* Silence a warning on MSVC ([[Timo Kreuzer]])
 
 
 
==== MINGW ====
 
* Don't compile atonexit.c. atexit is exported from msvcrt. ([[Timo Kreuzer]])
 
* Revert r50267 ([[Timo Kreuzer]])
 
 
 
=== DRIVERS ===
 
 
 
== MEDIA ==
 
* Update RedHat Liberation Fonts to 1.06 ([[Amine Khaldi]]; {{bug|5632}})
 
* Update Tahoma Fonts To Wine HEAD ([[Amine Khaldi]]; {{bug|5632}})
 
* Update DejaVu Fonts Documentation To 2.31 ([[Amine Khaldi]]; {{bug|5632}})
 
* 5633,5634 for more details. ([[Amine Khaldi]]; {{bug|5632}})
 
 
 
=== INF ===
 
* Fix PCI group key ([[Johannes Anderwald]])
 
 
 
== NTOSKRNL ==
 
* use MiFillSystemPageDirectory only for 2 paging levels ([[Timo Kreuzer]])
 
 
 
* Rewrite the resource map code to fix a regression, several failures cases, and a few memory leaks ([[Cameron Gutman]])
 
* Remove an incorrect definition of IopDetectResourceConflict in pnpreport.c (no idea how this didn't trigger an onslaught of warnings) ([[Cameron Gutman]])
 
* Partially implement IoAssignResources so that it creates a non-conflicting resource list from the requirements but it doesn't claim the resources for the device in the registry ([[Cameron Gutman]])
 
* Partially implement IoReportResourceUsage so that it checks the resource list for conflicts but doesn't claim the resources in the registry ([[Cameron Gutman]])
 
* Please test this revision with a variety of hardware and drivers because it activates several code paths in the PnP manager ([[Cameron Gutman]])
 
* If this causes problems, look for "Denying an attempt to claim resources currently in use by another device!" in the debug log and report the bug to me ([[Cameron Gutman]])
 
* Fix a critical bug in the conflict detection code ([[Cameron Gutman]])
 
* Don't unconditionally skip conflict detection for shared resources, instead it should be done on a descriptor-by-descriptor basis (if both descriptors are shared) ([[Cameron Gutman]])
 
* This check wasn't removed when I initially wrote this code and added the proper check below ([[Cameron Gutman]])
 
* Add IoWMIDeviceObjectToProviderId and IoIs32bitProcess stubs for 64bit builds ([[Timo Kreuzer]])
 
 
 
* Don't corrupt the Color value in case we didn't have any page on MmZeroedPageListHead. ([[Timo Kreuzer]])
 
 
 
* Removed a wrong ASSERT in FsRtlIsNameInExpressionPrivate() and replace it by the right one ([[Pierre Schweitzer]])
 
* Mark FsRtlIsDbcsInExpression() as halfplemented ([[Pierre Schweitzer]])
 
* Renamed MmIsFileAPagingFile() to MmIsFileObjectAPagingFile() its appropriated name ([[Pierre Schweitzer]])
 
* Added it to internal headers ([[Pierre Schweitzer]])
 
 
 
* commit base for new vga display miniport driver, is svn copy of framebuf_new as many codes identical ([[evb]])
 
* Will than commit and document differences to make into vga driver ([[evb]])
 
* Add the new vga miniport to build ([[evb]])
 
* Replace the framebuf_new spec rc rbuild with vga_new spec rc rbuild ([[evb]])
 
* Delete pointer.c ([[evb]])
 
* Start make changes, driver.h new fields for VGA, change driver short/long name/tag, add macros and in enable.c remove hw pointer support ([[evb]])
 
* fix now palette.c for vga, by copy logPalVGA/VGALOGPALETTE from NT4 DDK VGA sample drv and turn off codes for allocate 256 color pallette, instead use fix 16 color logPalVGA ([[evb]])
 
* fix header of debug.c ([[evb]])
 
* Finish make enable.c work full on vga, main change force 4BPP (disable other codes), create 4BPP bitmap surfobj, associate and lock ([[evb]])
 
* Easy part done, now hard part ([[evb]])
 
* Mode detect look for 4BPP, planar, graphics < 0x800 mode now ([[evb]])
 
* Add GDIINFO from NT4 VGA DDK sample driver ([[evb]])
 
* Set 4BPP prefer DIB format ([[evb]])
 
* No graphics caps set for VGA driver ([[evb]])
 
* Put static palette/color buffer for when VGA IOCTL send later ([[evb]])
 
* Convert almost done, bInitSURF is last ([[evb]])
 
 
 
==== PNPMGR ====
 
* Check that we got a valid vector back from HAL when translating an interrupt resource ([[Cameron Gutman]])
 
* Add some debugging messages for failure paths in device resource handling code ([[Cameron Gutman]])
 
 
 
== SUBSYSTEMS ==
 
* CSRSS was started with a free address space, and was able to map 0xA0000 into it by luck, because the ReactOS Mm allocator picks address ranges randomly, and it somehow managed to avoid the low 1MB addresses. Were this algorithm to change, or perhaps, were we to implement VADs for VM allocations, the 0xA0000 region might already be allocated (by an early-process-initialization allocation, such as the heap). This is what the flag referenced above was designed for, but it was not used. Using this flag, on the other hand, now makes CSRSS fail, because it attempts to map the RAM into 0xA0000, which fails since you can map a section on top of reserved memory. To work around this Brobdingnagian annoyance, CSRSS simply releases the first MB of memory that SMSS has nicely reserved for it, and then proceeds with the mapping. This fixes the issue of getting 0xA0000 by luck and now guarantees it can be mapped. ([[sir_richard]])
 
* Dereference all threads, when a process is terminated. Fixes ghost processes in taskmgr!  (Rafal; {{bug|1567}})
 
 
 
=== WIN32 ===
 
 
 
==== CSRSS ====
 
 
 
===== WIN32CSR =====
 
* Move PrivateCsrssManualGuiCheck from user32 to win32csr ([[Giannis Adamopoulos]])
 
* Add a new API GetTempFile() that returns an identifier to be used for creating temporary files. ([[Pierre Schweitzer]])
 
* This API should be in basesrv.dll ([[Pierre Schweitzer]])
 
* Silence CsrGetTempFile() debug ([[Pierre Schweitzer]])
 
* Fix zero termination of harderror string parameters, when they are ansi. ([[Timo Kreuzer]]; {{bug|5983}})
 
 
 
== TOOLS ==
 
 
 
=== RBUILD ===
 
* Fix "format not a string literal and no format arguments" build warnings. ([[Eric Kohl]])
 
 
 
== Uncategorized ==
 
 
 
=== 0 ===
 
* Use the full name we get from SearchForExecutable when building the command line for CreateProcess so we get proper name in argv later. ([[Kamil Hornicek]])
 
 
 
=== ASM ===
 
* Merge asm related changes from cmake branch. ([[Timo Kreuzer]])
 
* revert r49824 ([[Timo Kreuzer]])
 
* Add include guards to asm.inc and comment out broken ljmp macro ([[Timo Kreuzer]])
 
* Add syscalls.inc, containing assembler macros to generate syscall stubs (all supported architectures) ([[Timo Kreuzer]])
 
* Change the macros to prefix the labels with Nt or Zw depending on whether we build usermode or kernel mode stubs ([[Timo Kreuzer]])
 
* Create zw.S using the macros ([[Timo Kreuzer]])
 
* try to fix build. ([[Timo Kreuzer]])
 
* How did it work before? Probably by chance. "As usual"(tm) ([[Timo Kreuzer]])
 
 
 
=== CLASSPNP_CDROM_NEW ===
 
* Remove useless files. ([[sir_richard]])
 
 
 
=== EXPLORER_NEW ===
 
* Provide the ability to query version info (needed for task (DavidErceg; {{bug|4386}})
 
* grouping). (DavidErceg; {{bug|4386}})
 
* Open a context menu, when a task is right clicked. (greenie; {{bug|4671}})
 
* Implement resizing the work area. (greenie; {{bug|5846}})
 
 
 
=== INTRIN ===
 
* Implement _mm_sfence, _mm_lfence, __faststorefence (for amd64) ([[Timo Kreuzer]])
 
* Don't use __sync_synchronize() for _ReadWriteBarrier, as it issues an mfence instruction and this is not what we want ([[Timo Kreuzer]])
 
* Remove "BUGBUG" comment, because the fact that _ReadBarrier and _WriteBarrier are full (compiler) barriers isn't critical. ([[Timo Kreuzer]])
 
 
 
=== NCI ===
 
* Ue macros for the other nci generated files, too and delete nci-tool. ([[Timo Kreuzer]])
 
 
 
=== NTOS ===
 
* Lookup the special labels from above when initializing the System DLL. Only lookup INT2E vs SYSENTER on x86, other architectures don't need a stub. ([[sir_richard]])
 
* Bitmap resources start at index 1, not 0. Also make sure we don't go past the maximum IDB_ resource index for no reason, and check the size of the resource instead of assuming it's going to be one page. ([[sir_richard]])
 
* Implement monitor bitmap support for the display dialog (Carlo; {{bug|3158}})
 
* Fix incorrect codepage values (Carlo; {{bug|3158}})
 
* Look for applets in windows dir as well as system dir (Carlo; {{bug|3158}})
 
* Fix bugs in the VAD algorithms, we should be rounding up, not down. ([[sir_richard]])
 
* My attempt at making bugchecks a thing of the past has failed, someone has caught the typo. Bugchecks will now happen in ReactOS again instead of being ignored. Maybe you can "forget" to merge this one with the release branch? ;-) ([[sir_richard]])
 
* Add support for user-mode VAD faults on page tables (just a couple lines of extra code). ([[sir_richard]])
 
* Add support for user-mode VAD demand zero faults. ([[sir_richard]])
 
* Remove broken ASSERT. ([[sir_richard]])
 
* Hackfix a hack. Should get rid of the recent VAD assert in user32/bpp changes. ([[sir_richard]])
 
* Fix copy/paste error. ([[sir_richard]])
 
* Add MmProtectToValue array to convert MM/PTE protection values to Win32 protection flags. ([[sir_richard]])
 
* Handle faults on non-demand-zero PTEs (and/or demand-zero PTEs that are not READWRITE (such as EXECUTE_READWRITE)). ([[sir_richard]])
 
* Fix bugs in MiAllocateContiguousPages. Fixes an ASSERT Caemyr was seeting a lot (the cont-able ASSERT). ([[sir_richard]])
 
* Part 1 of fixes: For some reason beyond me, I had abbreviated ([[Art Yerkes]])
 
* MiCowSectionPage to always assume CoW rather than always not ([[Art Yerkes]])
 
* CoW for cache sections.  ([[Art Yerkes]])
 
* Make sure we're looking for cache type sections rather than ([[Art Yerkes]])
 
* as we were in the branch) data file sections.  More needed. ([[Art Yerkes]])
 
* Seems like cpsr_c doesn't work in this case? Need to investigate. Put an infinite loop in the entrypoint on ARM. ([[sir_richard]])
 
* Roel Messiant: Fix NtQueryObject to return the required buffer size if the buffer provided was too small. Unimplemented paths behaviour is preserved. ([[Aleksey Bragin]])
 
* Check that MaximumSize is valid value if the section is being backed by paging file. ([[Michael Martin]])
 
* Always initialize TrapFrame segment selectors in KiEnterTrap, because further C code relies on at least TrapFrame->SegFs being correct. Running Arwinss on VirtualBox exposed this bug. ([[Aleksey Bragin]])
 
* I wouldn't find solution for this bug without Timo's great help! ([[Aleksey Bragin]])
 
* Remove IMAGE_FILE_MACHINE_NATIVE and IMAGE_FILE_MACHINE_ARCHITECTURE definitions, use only the former ([[Timo Kreuzer]])
 
* Fix incompatibility with newer KiEnterTrap implementation. Should fix spontaneous issues I possibly introduced with my previous commit, and finally fixes that VirtualBox issue. ([[Aleksey Bragin]])
 
* Fix memory region size calculation in MemoryBasicInformation in certain cases. Spotted by Michael Martin. ([[Aleksey Bragin]])
 
* Fix a typo in region size calculation of special memory areas, which unbreaks OllyDbg & co. Thanks Michael Martin for the hint. ([[Aleksey Bragin]]; {{bug|5692}})
 
* Do the required flush when the last reference to a cache stripe is released. ([[Art Yerkes]])
 
* The installer now completes given enough ram in NEWCC=1, and writes an ([[Art Yerkes]])
 
* understandable FS.  There's at least one more problem preventing the  ([[Art Yerkes]])
 
* resulting installation from booting however. ([[Art Yerkes]])
 
* Fix a bug in rmap where we were checking the next (unfortunately named ([[Art Yerkes]])
 
* current) rmap for a segment membership. ([[Art Yerkes]])
 
* Fix a mistake in cache trim. ([[Art Yerkes]])
 
* ifdef detection of DirectMapping in section in NEWCC mode in page out. ([[Art Yerkes]])
 
* Fix copypasta, thanks Victor! ([[Aleksey Bragin]])
 
* Greatly simplify and fix the incorrect and overcomplicated if condition in IoIsOperationSynchronous(), based on MSDN description. Bug spotted, fix tested by Pierre. ([[Aleksey Bragin]])
 
* Temporary bring back the old boot image until I or sir_richard commit a proper fix. ([[Aleksey Bragin]])
 
* Reduce PDE/PTE confusion a little more. ([[Roel Messiant]]; {{bug|5791}})
 
* MiQueryMemoryBasicInformation: Fall back on MEMORY_AREA data in sections until the MM rewrite also covers these.  for more info. ([[Roel Messiant]]; {{bug|5791}})
 
* Remove undocumented defines from winuser.h and include undocuser.h when _WINE is defined. ([[Aleksey Bragin]])
 
* crt header compatibility update: ([[Timo Kreuzer]])
 
* define _USE_MATH_DEFINES for dsound, gdiplus, jscript and some win32k files ([[Timo Kreuzer]])
 
* don't define HAVE_LRINT(F) in libsamplerate ([[Timo Kreuzer]])
 
* Remove M_PI constants from win32k ([[Timo Kreuzer]])
 
* Try to fix a winetst crash. ([[Timo Kreuzer]])
 
 
 
=== NTOS_FSRTL ===
 
* Implement parameters checking in FsRtlIsNameInExpressionPrivate. ([[Aleksey Bragin]])
 
* Add two shortcuts for common wildcard invocations to make the function faster. ([[Aleksey Bragin]])
 
* Second (main part of the function) is still under review. ([[Aleksey Bragin]])
 
* Fix a typo, thanks Herve! ([[Aleksey Bragin]])
 
* Remove unnecessary upcasing, thanks Pierre. ([[Aleksey Bragin]])
 
 
 
=== NTOS_MM ===
 
* N ([[Aleksey Bragin]]; {{bug|3755}})
 
* Initialize Found to FALSE in NtQueryVirtualMemory. I wonder how GCC missed uninitialized var usage? ([[Aleksey Bragin]]; {{bug|3755}})
 
* Implement case when NtQueryVirtualMemory is called with non-existing virtual address. ([[Aleksey Bragin]]; {{bug|3755}})
 
* Handle various special cases in NtQueryVirtualMemory (e.g. querying illegal virtual addresses, shared memory area, etc). Example of an app doing this - OllyDbg. ([[Aleksey Bragin]])
 
* Don't lie about page protection in MiQueryAddressState. Fixes PDFCreator-alike bugs. ([[Aleksey Bragin]]; {{bug|5627}})
 
* Don't access pfn database directly, there is a function for this. Thanks sir_richard. ([[Aleksey Bragin]])
 
* An accompanying change to r50768. Fixes boot. ([[Aleksey Bragin]])
 
 
 
=== NTOSKNRL ===
 
* For both FsRtlIsNameInExpression() & FsRtlIsDbcsInExpression(): ([[Pierre Schweitzer]]; {{bug|5923}})
 
* As both UNICODE_STRING & ANSI_STRING might not be NULL-termined, don't attempt to read null char. ([[Pierre Schweitzer]]; {{bug|5923}})
 
* This fixes potential buffer overruns. ([[Pierre Schweitzer]]; {{bug|5923}})
 
* Then it fixes some (all?) 'TempPte.u.Long != 0' assertion failure. ([[Pierre Schweitzer]]; {{bug|5923}})
 
 
 
=== NTOSKRNL_MM ===
 
* Acquire rundown protection on process to make sure it is not being terminated and before attempting to do anything with the process. Fixed a rare case of PspDeleteProcess being called twice for a process, resulting in bugcheck. ([[Michael Martin]])
 
* Fix the use of an uninitialized variable. ([[Amine Khaldi]])
 
 
 
=== NTOSKRNL_PPC ===
 
* Fix index out of bounds ([[Pierre Schweitzer]])
 
* Add wer.dll from Wine 1.3.7 ([[Dmitry Chapyshev]])
 
* Sync gdiplus with Wine 1.3.7 ([[Dmitry Chapyshev]])
 
* Fix sizeof() wrong usage ([[Pierre Schweitzer]])
 
* Fix the fix, spotted by "ThFabba" on IRC ([[Pierre Schweitzer]])
 
 
 
=== NTOSKRNL_PS ===
 
* PspCreateThread: If thread creation fails, dereference the Process object also to account for the reference taken at the beginning of the function. ([[Michael Martin]])
 
* Remove mistakenly committed ASSERTs that were used during my tests. ([[Michael Martin]])
 
* Revert r48857. The Process object is dereferenced when the Thread object is destroyed, so dont dereference it here. ([[Michael Martin]])
 
 
 
=== PSDK_DDK ===
 
* Add more missing definitions. Fix classpnp.h. ([[sir_richard]])
 
* Last couple of fixes to headers. Classpnp can compile (and link) now. ([[sir_richard]])
 
 
 
=== URLCACHE ===
 
* Do not initialize the URL-Cache for a system process. ([[Eric Kohl]]; {{bug|5372}})
 
* Patch will be submitted to WINE. ([[Eric Kohl]]; {{bug|5372}})
 
 
 
=== USER32_WIN32K ===
 
* Implement MessageBeep and SetLogonNotifyWindow ([[Giannis Adamopoulos]])
 
 
 
=== VBEMP ===
 
* Fix rounding error when calculating display size (neoman; {{bug|5790}})
 
* Loosely based on  (neoman; {{bug|5790}})
 
* Fixes gdi32_winetest:mapping (neoman; {{bug|5790}})
 
 
 
=== VIDEOPRT_WIN32K ===
 
* Synchronize and share PEVENT/ENG_EVENT/VIDEO_PORT_EVENT implementation, as these objects are actually the same (and VideoPrt Event* APIs can be used on GRE Event Objects). Use ENG_EVENT structure from ntddvdeo.h instead of re-creating our own. Drivers using these interfaces will no longer explode. ([[sir_richard]])
 
 
 
=== WIN32KSYS ===
 
* replace nci-generated stubs with a stub file using macros ([[Timo Kreuzer]])
 
 
 
=== WIN32K|USER32 ===
 
* Implement NtUserGetMenuIndex, . ([[James Tabor]]; {{bug|5528}})
 
* Fix build from 49005. ([[James Tabor]])
 
* Move to the new window structure. Window Object served us well. ([[James Tabor]])
 
* Rewrite the Event and Hook procedures.  ([[James Tabor]]; {{bug|5670}})
 
* Add fix for KsStudio for Olaf Siejka and debug prints for WH_KEYBOARD_LL.  ([[James Tabor]]; {{bug|5670}})
 
* Fix for DosBOX.  Added more data copies in user32 hook.c. ([[James Tabor]]; {{bug|5670}})
 
* This hook commit fixes the ros regression testing startup, but consider this a hax fix until more research in Global hooks has completed. More pointed Global hook tests are needed. Misc changes, removed unused storage pointers and reordering. For DosBOX, the mouse low level is now working and the keyboard low level should not be so intermittent as before, now sending messages from system desktop not from thread desktop,  ([[James Tabor]]; {{bug|5670}})
 
* Cleanup and added debug prints. ([[James Tabor]])
 
* Fixed SendNotifyMessage, thanks to Michael Martin callback changes. Fixed DispatchMessage when dealing with thread errors. Fixed all but one of the Get/PeekMessage wine tests. Fixed attaching threads to process information. Plus other fixes. ([[James Tabor]])
 
* Implemented support for QS bits, ReplyMessage (not fully correct), and others. ([[James Tabor]])
 
* Tested everything here, please post regressions so I can add more applications to the test list. This patch is synced with 49720 and 49772. After that there are graphic issues. ([[James Tabor]])
 
* Credits goes to wine for helping with diagnosing issues in the ReactOS message system. ([[James Tabor]])
 
* Remove the old send message API and use NtUserMessageCall. ([[James Tabor]])
 
* Send messages do not pass the Ansi bit. This was evident during the hook changes. User32 knows the caller is Ansi and with a Unicode window user32 can make the apropate switch. Win32k on the other hand, assumes, based on the Unicode window the caller is Unicode. Hook tests enabled in send message, forces the call to win32k, and the Ansi product is Unicode data. Using NtUserMessageCall this bit can be passed forward to allow win32k to make the correct switch going to callback. ([[James Tabor]])
 
* Finish 50030 (work by Giannis), Now PostMessage passes all the correct data based on Get/PeekMessage. Example: Post A, Get/Peek A, Translate A, Dispatch A, should be that simple. FYI: DDE memory handling should be in win32k not user32 and why,,,,, ~see next point~ ([[James Tabor]])
 
* Patch up problems (at a minimum) going into the SendMessage/Timeout A2U U2A support in win32k and fixed SMTO callback if local. ([[James Tabor]])
 
* Fix all the user32 wine win test_SetParent tests. ([[James Tabor]])
 
* Fix mdi class window function Id, now msi message tests do not assert. ([[James Tabor]])
 
* Fix most of the user32 wine win test_mdi tests. Leaving 6 failures dealing with rect size. Start A2U and U2A support. ([[James Tabor]])
 
* Fix copy paste error, which means this code is not used, should have pop up during testing. ([[James Tabor]])
 
* Add hack to mark desktop window as a desktop window and notes for creating a desktop with tips in win32k. Move user position code from window to winpos. ([[James Tabor]])
 
* WM_MDICREATE originates from user space so treat it as it should, fixes bug 5903. ([[James Tabor]])
 
* Clarify the meaning and the use of 0, 1 and 2 for user window regions, wine never did. Noticing patches not corresponding in correctness and understanding, leaving potential crashes in the DCE code, which depend on these types. ([[James Tabor]])
 
* Patch based on Rafal Harabien patch, fixes wine msg SetWindowRgn test, see also bug 5959. ([[James Tabor]])
 
* Use User32 GetWindowRgnBox, still passing both wine msg SetWindowRgn and win winregion tests, . ([[James Tabor]]; {{bug|5959}})
 
* Use User32 GetWindowRgnBox, still passing both wine msg SetWindowRgn and win winregion tests, . ([[James Tabor]]; {{bug|5959}})
 
 
 
=== WINE32K|USER32 ===
 
* Implement client thread information for the beginning of QS flag support and signaling synchronization of messages. ([[James Tabor]])
 
* Set and clear idle event when setting clearing masks. This fixed the idle foreground hook call from user mode. ([[James Tabor]])
 
* Fixed wine ListBox and ReactOS ComboBox tests. Critical note: SendMessageA/W, when IsThreadHooked is used and any global hooks are affirmed, all messages are sent to Win32k and the result is, A to W and W to A mismatch via UMToKM. Fixing Global hook support exposed a critical bug in ReactOS message system. Enable the appropriate hooks will temporarily remedy this bug. ([[James Tabor]])
 
* All patches are from a checked out revision from 49475. Upping ntuser.h, win32k and user32 to sync. ([[James Tabor]])
 
 
 
=== YAROTOWS ===
 
* Reintegrate the branch. For a brighter future. ([[Timo Kreuzer]])
 
* Main features: ([[Timo Kreuzer]])
 
* Implement LDEVOBJ api. Responsible for loading dlls (display drivers, font drivers, keyboard layout, etc), replacing code in different locations. ([[Timo Kreuzer]])
 
* Implement PDEVOBJ api. A PDEVOBJ represents a physical device and is the core component for handling multiple display devices. ([[Timo Kreuzer]])
 
* Rewrite device locking. The new method was neccessary to allow dynamic mode switching. ([[Timo Kreuzer]])
 
* Implement support for enumerating display devices and settings. ([[Timo Kreuzer]])
 
* Implement dynamic mode switching. ([[Timo Kreuzer]])
 
* Implement a number of Eng mapping functions. ([[Timo Kreuzer]])
 
* Rewrite Eng level surface handling for cleaner code and better compatability. ([[Timo Kreuzer]])
 
* Rewrite parts of the DIB handling code. ([[Timo Kreuzer]])
 
* Rewrite DC creation and deletion. Deletion and cleanup is now completely callback based. Now we don't leak the DC objects when terminating a process, like we did before. ([[Timo Kreuzer]])
 
* Improve the XLATE and BRUSH code, removing several old hacks. ([[Timo Kreuzer]])
 
* Improve icon code. ([[Timo Kreuzer]])
 
* Thanks to Jerome Gardou, Kamil Hornicek and everyone helping. ([[Timo Kreuzer]])
 
* Update rapps database. ([[Daniel Reimer]])
 
  
 
{{Navigation Changelog}}
 
{{Navigation Changelog}}

Latest revision as of 08:28, 8 May 2014

This is the changelog for ReactOS™ version 0.3.13 (released 22 March 2011), 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.12 (released 20 October 2010).

General

Contributors

Core developers

  • Giannis Adamopoulos
  • Johannes Anderwald
  • Aleksey Bragin
  • Dmitry Chapyshev
  • Benedikt Freisen
  • Jerome Gardou
  • Cameron Gutman
  • Kamil Hornicek
  • Amine Khaldi
  • Eric Kohl
  • Timo Kreuzer
  • Matthias Kupfer
  • Michael Martin
  • Ged Murphy
  • Sylvain Petreolle
  • ReactOS Portable Systems Group
  • Daniel Reimer
  • Gregor Schneider
  • Pierre Schweitzer
  • James Tabor
  • Christoph von Wittich
  • Art Yerkes

Patch submitters

  • Damir Aliev
  • Oleg Baikalow
  • Carlo Bramini
  • Vincenzo Cotugno
  • Rafal Harabien
  • Katayama Hirofumi
  • Adam Kachwalla
  • Radek Liška
  • Roel Messiant
  • Love Nystrom
  • Igor Paliychuk
  • Samuel Serapion
  • Víctor Martínez

Localization

  • spb-ivan92 (#5685)
  • wojtekkozlo664 AT op DOT pl (#5740)
  • Mario Kacmar
  • Andres Traks

Support staff

  • Colin Finck: Release Enginner, Build Tools Maintainer
  • Danny Gotte: Web Developer.
  • Ziliang Guo: Release Engineer, Web Content Maintainer.

Generic 0.3.13 changes

  • A wide range of updates were made to the various development kits in ReactOS to support the new drivers and APIs that have been implemented and added.

Applications

  • Conversion of empty argument lists in C functions to (void) is currently underway.
  • Calc: Initialize next field for security hardening.
  • CharMap: Text copy field is now a richedit control.
  • Cmd: When building the commandline for CreateProcess, the full name that SearchForExecutable returns is used.
  • DosKey: Conversion from TCHAR to WCHAR underway, MSVC complication fixes.
  • Findstr: Ported from FreeDOS project.
  • FTP: Major effort to clean up function prototypes and definitions.
  • Notepad: Hardened against possible buffer overflow bugs and fixed rendering of status bar after changing line wrap.
  • Nslookup: String operations have been modified to ensure null terminator is never lost.
  • Paint: Generalize changes related to mirroring rectangular selections to free form selections, solve problem regarding selection contents update.
  • Ping: Localization support added.
  • Rapps: Various broken links, descriptions, and localization updated.
  • Regedit: "Load Hive..." and "Unload Hive..." menu items implemented, support added for import/export of v5 registry files, "go" button added to address bar, various bugs and resource leakages fixed, conversion to Unicode encoding.
  • Solitaire: Resource cleanup and compilation fixes.
  • Taskmgr: Support added for DELETE key to processes and applications list
  • Winmine: Synced and forked from Wine 1.3.5 winemine.
  • Xcopy: MSVC fixes.

Control Panel Applets

Installer

  • Correctly calculate the size several buffers used during the installer to avoid overreads and the like for strings.

Services

Service startup and shutdown code is now synchronized using critical sections. The end result is that all services are now started one by one instead of in parallel. Additional checks have been added to ensure services do not try to use invalid resources. Attempting to start a service multiple times is also now prevented.

  • EventLog: Renaming of variables to better match their usage patterns.
  • LsaSrv: Service initialization has been stubbed and function calling conventions have been changed to stdcall.
  • UmPnpMgr: Remote Procedure Call endpoints now use XP/Vista compatible pipe names.

Tests

Translations

Bulgarian

  • avifil32
  • browseui
  • calc
  • cmdutils/reg
  • console.cpl
  • devmgr
  • explorer-new
  • intl.cpl
  • mscutils/eventvwr
  • mscutils/servman
  • netid
  • regedit
  • shell32
  • sysdm.cpl
  • syssetup
  • taskmgr
  • timedate.cpl
  • usetup
  • winmine

Czech

  • calc
  • explorer-new
  • input.cpl
  • rapps
  • sysdm.cpl
  • usetup

Estonian

  • usetup

French

  • timedate.cpl
  • ping
  • shutdown

German

  • ping

Italian

  • ping

Japanese

  • calc
  • newdev
  • sysstetup
  • usetup

Polish

  • ping
  • rapps

Russian

  • taskmgr

Slovak

  • calc
  • cmd
  • format
  • usetup

Ukranian

  • usetup
  • ping

Wine syncs

Libraries synced

  • atl
  • d3d8
  • d3d9
  • ddraw
  • fusion
  • gdiplus
  • hlink
  • iexplore
  • mprapi
  • msi
  • msiexec
  • reg
  • shdocvw
  • urlmon
  • wer.dll
  • widl
  • wined3d
  • winemine
  • winhlp32
  • winhttp
  • wininet
  • wordpad
  • write
  • wtsapi32
  • xcopy

Third party libraries

  • DejaVu Fonts Documentation updated to 2.31
  • RedHat Liberation Fonts updated to 1.06
  • Tahoma Fonts undated to Wine HEAD
  • bzip2 updated to 2.06

Build Tools

NCI tool has been removed.

Core Functionality

Audio/Video Stack

  • I/O completion routines have been added for audio.
  • Event handle leaks in audio stack have been resolved.

Kernel Streaming

Pin/Node allocator creation requests are now compatible with Windows XP and the ReactOS KS code is able to create audio pins on XP. Playback however is not yet working.

  • Correct error code is now returned for various property access failures.
  • Various fixes have been made to setting the property of nodes.
  • Device enumeration implemented.

PORTCLS

Filter/pin/node handling has been improved, with a new common dispatcher for property requests and fixes for a variety of memory and resource leaks. Buffering of audio has also been improved, along with interrupt handling for completed buffer operations. Sound recording using ReactOS portcls on Windows XP is also working.

Filesystems

FsRtl

  • Data stream context implemented. Data stream context hold additional information about data being read off disks and are often used by anti-virus programs to scan file open operations.
  • Preliminary work has started on supporting wildcard expansions through using expressions to search a directory.

FASTFAT

  • Multiple incorrect buffer usages dealt with in filename handling.
  • Duplicate code for opening volumes has been removed.

FASTFAT_NEW

  • Creation of files improved.

NPFS

  • Support for relative path names for pipes added.
  • Waiting on a pipe in the root directory has been fixed.
  • Read/write IRPs are now correctly failed based on what the caller is.
  • Multiple entries can now be returned in a single request and returning values correctly deal with buffers that are too small.

Hardware Management

Legacy HAL

  • Interrupt pins are checked to make sure they are not 0 or 255, which fixes an assert with ATI Rage graphics cards.
  • A broken loop that resulted in multiple COM ports being registered for the KDCOM driver has been fixed.
  • HalStopProfileInterrupt has been implemented.
  • Port numbers and ranges have been fixed in HalpDefaultIoSpace.

Plug n Play

  • When translating an interrupt resource, the vector the HAL returns is now checked to ensure it is valid.

Kernel

  • Plug n Play notification now gracefully handles interfaces that have not yet been registered yet.
  • Support for Advanced RISC Computer format names has been implemented in the kernel. Boot paths were provided by the bootloader to the kernel are in ARC format. Previously the kernel needed to translate them. Now the kernel is able to understand ARC formatted paths and use them natively.
  • The kernel is now aware of the existence GUID Partition Tables on harddrives. This is one of the steps to adding EFI support in ReactOS. Not all functionality of GPTs is usable by the kernel yet.
  • Support for creating protective Master Boot Record for GPT formatting has been added.
  • Pre/post syscall debug hook support has been added.
  • Various CPU feature detection fixes and improvements.
  • Support for translating between ISA IRQ to system IRQ has been added.
  • Alternative workaround for the Pentium lock errata has been added. Instead of relying on the page fault handler, the IDT page is marked as Write-Through if the bug is present.
  • When loading drivers at startup, the loader block is made available to the drivers.
  • A process is now checked to make sure it is not being terminated to eliminate the possibility of trying to destroy a process' resources twice.
  • Resources are now cleaned up after failing to create a thread.
  • Fixes have been made to the loading of system DLLs and their resources.
  • TrapFrame segment selectors are now initialized in KiEnterTrap as the C trap handlers depends on valid values.

I/O

  • Resource assignment has had conflict checks added to it.
  • Packet type calculation has been fixed according to the PS/2++ specification.

Memory Management

  • ARM3 Paged Pool manager is now the default.
  • Various 64bit portability fixes and extensions.
  • Zero/Free pages are removed from their respective lists first before they are used.
  • Initial implementation of colored pages has been added.
  • Major fixes how zero pages are organized, listed, and mapped.
  • NT Section functions have all been moved into ARM3 and rewritten to provide same paramater validation checks and protection masks as Windows does.
  • Work continues to allow ARM3 to handle page faults against its pagefile instead of the old memory manager's pagefile.
  • Reserving and releasing system page table entries has been rewritten. Now PTEs are delivered zeroed to their requestors and fragmentation of PTE blocks should be significantly reduced.
  • Stage 0 of memory manager initialization is now completely handled by ARM3.
  • Regression that resulted in the leaking of PTEs and addresses has been dealt with.
  • A variety of edge cases in NtQueryVirtualMemory has been dealt with, including attempts to query illegal addresses or non-existent address spaces.
  • Support for user mode virtual address descriptor faults have been added.
  • An arry has been added that holds the conversion between memory manager/page table entry protection values to Win32 protection flags.

Common Cache

The initial implementation of a new Common Cache has been integrated into ReactOS. Its functionality and usefulness is still limited, but sets the stage for removal of the old, buggy Cc and in the future will allow greater compatibility with Installable Filesystem Drivers. The current implementation is capable of demand paging, though its data structures remain segregated from the main memory manager due to incompatibilities and the MM's reliance on the old Cc design. Using the new Cc during installation also nearly succeeds and a workable filesystem is written to disk, but booting is still not working.

Heap Manager

The ReactOS heap manager was originally derived from Wine, which was itself based on the Windows 95 heap manager's design, hence its architecture was more suited to a DOS environment than NT. This release sees the implementation of a rewritten heap manager based on Windows 2003/Vista, which support for considerably more functionality in determining how memory allocations are made. In addition, a second new heap manager was added, one specifically designed to help detect overflows and the like from memory that it allocates. This debug heap manager can turned on or off at an application level and promises to help considerably in detecting mistakes in memory operations.

Network Stack

MSAFD

  • Various memory bugs fixed.

Network Driver Interface Specification

  • Failure cases now have their locks properly released.
  • Work has been done to better match NDIS 5.1 characteristics.

Transport Device Interface

  • TDI function exports have been updated based off of Windows Driver Kit 7.

Shell

Explorer

  • Various visual problems in the taskbar has been fixed.
  • Various out of bounds array accesses have been fixed.

Explorer New

  • Displaying of seconds in the tray now added.
  • Querying of version information has been implemented.
  • Opening context menu through right-click has been implemented.
  • Resizing of work area has been implemented.

Startup/Shutdown

FreeLoader

  • Checksum calculation of CDs has been fixed.
  • The majority of trap and bluescreen code has been converted from assembly to C, with the remaining assembly converted to Intel syntax.
  • Debug, analysis, and statistics features in freeloader heap manager have been disabled on the ARM platform due to performance concerns. These features are now only enabled by conditional defines.
  • Initial OMAP Zoom2 board support has been added, along with access to various interfaces available on the Zoom2 board.
  • Different input options are now accounted for between various ARM boards and assumptions of what methods are available have been refined.
  • Bluescreen converted to black on ARM.
  • Preliminary work on fixing NTFS driver used by freeloader.

Winlogon

  • Notifications from win32k to sound system beep are now received.

Storage Stack

Preliminary work has been done to deal with GUID Partition Tables, which are needed to support booting from EFI systems. While some of the data structures for GPT have been implemented, more work will need to be done before ReactOS can truly boot off of GPT disks.

CD-ROM

  • The Windows XP DDK CD-ROM driver example has been imported into ReactOS.
  • Various updates have been made to make the driver more compatible with Windows 2003.

ClassPnP

  • The Windows XP DDK ClassPnP driver example has been imported into ReactOS.

SCSIPORT

  • Interrupt information is not duplicated for two different interrupts to the same device.
  • Partial implementation of two DMA channels.

UniATA

  • Support added for differing number of devices attached to different channels.
  • AHCI support code updated but not yet ready for usage.

Drivers

  • NMI driver is now enabled in boot/livecd.

MMEBUDDY

MME Buddy is a driver helper library for sound support.

  • MIDM_OPEN, MIDM_CLOSE, MIDM_START, MIDM_STOP, MODM_OPEN, MODM_CLOSE messages implemented.
  • MIXER, MIDI_IN, and MIDI_OUT device type support implemented.
  • Opening of mixer devices implemented.
  • Wave pause, restart, and resetting implemented.

MMixer

  • Topology enumeration has been rewritten to correctly take into account sum/mux nodes, avoid assigning nodes to multiple mixer lines, and avoid creating cycles of nodes.
  • Support routines for node state changes added.
  • Support for topologies with no intermediary nodes has been implemented.
  • Enumeration and usage of MIDI devices has been implemented.

PCI

  • Locks are released during error cases.
  • Initialization of driver has seen multiple fixes.
  • Continued development of PCI bridge support.

USB

  • A bug that resulted in only half of the keyboard data being copied has been fixed.

EHCI

  • Resetting of the port no longer resets the device as well.
  • Various fixes to initialization and configuration of devices by the EHCI driver.
  • Various fixes to how data is transferred between the USB device and the driver.

WDMAUD

  • The provided waveformat now has its size checked to make sure it is at least the size of a WAVEFORMAT struct.
  • Additional information needed for playback are now computed from the provided waveformat.
  • I/O completion handle is now backed up before the audio buffer is committed due to the chances if the structure already having been released.
  • Registration of event routines for topology node changes has been implemented.
  • MIDI devices can now be detected by WDMUAD and listed.

Video

VBEMP

  • Rounding error has been fixed when calculating display size.

VGA_NEW

  • The miniport driver for the new VGA driver has been added.
  • Various fixes to avoid buffer misuse.
  • Palette is currently limited to 16 colors as 256 color palette is disabled.

VIDEOPRT

  • Various fixes to use of synchronization.
  • Event implementation is now shared with Win32k.

VMX_SVGA

  • Buffer calculation fixed for strings.

Libraries

ADVAPI32

  • Enumeration of registry values now correctly handles cases where the return buffer is too small.
  • Managing accounts through the Local Security Authority has been implemented.

CFGMGR32

  • Forwarders added for functions exported by setupapi.dll.

COMCTL32

  • Work has been done to try to fix bitmap resources that resulted in broken icons.

DDRAW

  • Considerable progress made in passing refcounting Wine tests.
  • Palette creation has been implemented.

GDI32

  • Code for creating compatible bitmaps (DDBs) from DIB color data has been rewritten.
  • Variety of fixes to bitmap transforms and other operations.

IPHLPAPI

  • Name server enumeration functions have been rewritten.
  • Static DNS entries are checked before dynamic DNS entries.

KERNEL32

  • Section object creation is now correctly flagged.
  • SetLastError() implemented in kernel32.
  • A variety of unicode to ansi and back conversion functions have been implemented and fixed.
  • Various memory corruption issues found by debug heap resolved.
  • Preliminary work on unifying Find* functions.
  • FlushFileBuffers now also is able to flush the console input buffer if it is passed a console handle.
  • GetFullPathName has been modified to be closer to Windows behavior, fixing all GetFullPathName Winetests.

MSVCRT

  • A new generic printf implementation has been added and enabled. This implementation serves as the basis for all the other ANSI and unicode printf and sprintf functions.

NETCGFX

  • Reading of static DNS entries fixed.
  • Switching between static DNS and DHCP fixed.

NTDLL

  • Storing and loading of image execution global flag options has been fixed. Querying image execution options no longer results in the heap being used.
  • Processes being debugged now have debug heap flags applied.
  • Various additional fixes to image loading.
  • Querying of objects will return the required buffer size if the provided buffer is too small.

OLEACC

  • An actual DLL entrypoint is used to record the instance handle needed to access various resources.

OPENGL32

  • Macros are used instead of attempting to carry out pointer calculations repeatedly.
  • Thread specific data is now reset on thread detach calls.

PSEH

  • Ability to switch between native and PSEH SEH macros/handlers has been added.

RTL

  • CRC32 checksum calculation has been fixed.
  • RTL heap code now uses new locking mechanism instead of the RTL_CRITICAL_SECTION.
  • ROUND_UP/DOWN macros have been fixed.
  • NtFreeVirtualMemory now correctly interprets the pointer handed to it as a pointer to the address that needs to be freed, not the actual address itself.
  • Additional page code markers have been added for Unicode functions.
  • Various MSVC fixes.
  • A variety of fixes to memory functions dealing with correctly tracking used and free blocks in the heap along with updates to take better advantage of the new heap manager's functionality.
  • Process parameter block is now correctly zeroed out when its memory is allocated using the new memory manager.
  • Locking of boot status data has been modified.

SECUR32

  • PACKAGEINFO struct is now initialized regardless of whether there are packages in order to compensate for behavior in Wine's rpcrt4.

SETUPAPI

  • Property and system information retrieval functions have seen fixes and updates. Changes range from returning desired buffer sizes to returning the correct error response in failures.

SHELL32

  • Shortcuts and executables are not added to recent files list anymore.
  • More code enabled thanks to IOCTL_DISK_GET_LENGTH_INFO being implemented.
  • Drawing shortcuts now use a different raster operation than previously.

URLCACHE

  • URLCACHE is no longer initialized for a system process.

USER32

  • A variety of undocumented definitions have been gathered into a single place.
  • Initial implementation of client thread information has begun to support QS flags and signaling synchronization messages.
  • Major work has been done to deal with global hooks and the various message passing functions used by them.
  • A large number of winetests related to window regions and parents have been fixed.

WININET

  • Error setting now correctly uses the winsock specific function instead of errno.

Client/Server Runtime

CSRSS

  • Attempts to reserve memory ranges now uses the correct flags for the new memory manager.
  • CSRSS suffers from an interesting problem in its initialization phase wherein it tries to map address 0xA0000. The problem was this area of memory may already have been allocated and reserved by the SMSS for the CSRSS. The current solution is to release all memory that was allocated beforehand to ensure 0xA0000 is free.
  • A new function GetTempFile() that returns an identifier used for creating temporary files has been added.

Kernel-mode subsystem server (Win32K)

Work continues to fill in missing drawing functionality in Win32k and fix existing implementations. These range from tweaking calculations used in drawing bitmaps to implementing entirely new data structures that were previously missing in ReactOS. The integration of the yarotows branch especially has brought about several new APIs and data structures associated with display drivers. Additions include the physical and logical device objects and their associated APIs and a new locking mechanism for devices. With yarotows now merged in, ReactOS is capable of supporting dynamic mode changes without the need to reboot.

  • UserSetCursorPos now passes all Winetests.
  • Support functions for setting and getting the default layout in a process have been added.
  • Timer callback validation has been fixed.
  • A hack that allowed ReactOS to post messages that contain pointers has been removed as it is no longer needed.
  • Keyboard messages are now added to the hardware list, not the post messages list.
  • The default window position is no longer the top left corner of the screen.
  • Win32k now catches attempts to call null hook procedures and avoids crashing.
  • Attempts to call an invalid hook fail later during the search for the hook instead of immediately checking if a hook is active.
  • Dependency on the RTL has been eliminated.
  • GDI debug has been disabled to reduce memory usage.
  • All Init functions are now NTAPI instead of FASTCALL and return NTSTATUS.
  • Hooks are no longer cleaned up unconditionally due to any window associated with a specific thread being destroyed.
  • Mouse and keyboard input no longer results in every message queue being woken, only the thread that the input is intended for is woken.
  • Various optimizations to how messages are passed to processes, reducing duplication of information and unnecessary operations.
  • Exclusive Device Context locks are no longer held when calling Nt/Gre functions. In the case of bitmaps, an InterlockedCompareExchange is used to check and exchange bitmap device context.
  • Get/PeekMessage tests are now fixed after the correct message posting functions are being called.
  • A variety of places have had their exception handling improved and simplified to increase performance.
  • Issues with drawing icons, such as them being pink in color, have been dealt with through fixes to the GDI and bitmap code.
  • A new window structure is now used and old Window Object has been deprecated.
  • ANSI to unicode and unicode to ANSI conversions between various message passing functions is undergoing work to fix issues uncovered by global hook development.
  • The desktop window object currently has a hack to mark it as the desktop object for the time being.
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