Difference between revisions of "ChangeLog-0.3.10"

From ReactOS Wiki
Jump to: navigation, search
m (Misc)
Line 680: Line 680:
* Free the allocated buffer in printWindowsError in tftpd service. ([[Kamil Hornicek]])
* Free the allocated buffer in printWindowsError in tftpd service. ([[Kamil Hornicek]])
* Sync quartz with Wine 1.1.23. ([[Kamil Hornicek]])
* Sync quartz with Wine 1.1.23. ([[Kamil Hornicek]])
* kill warnings ([[Kamil Hornicek]])
* Fix (?) build ([[KJK::Hyperion]])
* Our headers suck so hard. More Visual C++ compatibility ([[KJK::Hyperion]])
* Our headers suck so hard. More Visual C++ compatibility ([[KJK::Hyperion]])
* Replace "VOLATILE" with "volatile" ([[Stefan Ginsberg]])
* Replace "VOLATILE" with "volatile" ([[Stefan Ginsberg]])
Line 687: Line 685:
* Add ntlanman.dll (not implemented) ([[Dmitry Chapyshev]])
* Add ntlanman.dll (not implemented) ([[Dmitry Chapyshev]])
* What the hell, Arch Blackmann? <windef.h>, <winbase.h> and <winnls.h> are not meant to be included directly. Include <windows.h> instead modified  drivers/video/font/ftfd/rosglue.c Move standard C includes before Windows includes, so the required types are defined beforehand. Re-add Visual C++ support va_list is not a built-in type, it does not belong in _mingw.h Do not include intrin.h (screw you, Arch) Removed definition of _USE_32BIT_TIME_T ("ROS HACK!"). Ported our intrin.h to Visual C++. ROS HACK!s belong in the project definition. Compiler-specific include directories ([[KJK::Hyperion]])
* What the hell, Arch Blackmann? <windef.h>, <winbase.h> and <winnls.h> are not meant to be included directly. Include <windows.h> instead modified  drivers/video/font/ftfd/rosglue.c Move standard C includes before Windows includes, so the required types are defined beforehand. Re-add Visual C++ support va_list is not a built-in type, it does not belong in _mingw.h Do not include intrin.h (screw you, Arch) Removed definition of _USE_32BIT_TIME_T ("ROS HACK!"). Ported our intrin.h to Visual C++. ROS HACK!s belong in the project definition. Compiler-specific include directories ([[KJK::Hyperion]])
* import dmusic from Wine, it's mostly stubs but it should be enough for now ([[Kamil Hornicek]])
* Imported dmusic from Wine 1.1.23. ([[Kamil Hornicek]])
* add missing include guard ([[Christoph von Wittich]])
* add missing include guard ([[Christoph von Wittich]])
* Add needed defines for Vista network api ([[Sylvain Petreolle]])
* Add needed defines for Vista network api ([[Sylvain Petreolle]])
Line 756: Line 754:
* Bug 4535: Dutch translation for userinit by wouterdevlieger AT gmail DOT com Bug 4539: slovak translation update by Mario Kacmar Bug 4540: Romanian translation patch by Petru Dimitriu ([[Daniel Reimer]])
* Bug 4535: Dutch translation for userinit by wouterdevlieger AT gmail DOT com Bug 4539: slovak translation update by Mario Kacmar Bug 4540: Romanian translation patch by Petru Dimitriu ([[Daniel Reimer]])
* Implementation of gdi printing support. Work in progress. Losts of updates, including missing functions in the winspool spec file. ([[James Tabor]])
* Implementation of gdi printing support. Work in progress. Losts of updates, including missing functions in the winspool spec file. ([[James Tabor]])
* dls1.h, dmdls.h, dmusics.h: fix typos, add missing definitions import dmerror.h, dmplugin.h, dmusicc.h, dmusicf.h, dmusici.h from Wine ([[Kamil Hornicek]])
* Implement SetAbortProc and halfplement AbortDoc. ([[James Tabor]])
* Implement SetAbortProc and halfplement AbortDoc. ([[James Tabor]])
* autoregister ddraw and dplayx ([[Kamil Hornicek]])
* Autoregister ddraw and dplayx. ([[Kamil Hornicek]])
* Implement GdiConvertAndCheckDC and Abort callback support routine. ([[James Tabor]])
* Implement GdiConvertAndCheckDC and Abort callback support routine. ([[James Tabor]])
* Make __CRT_INLINE always inline, use ceil instead of ceill. Fixed linking when compiling with -O0, it should now work. ([[Dmitry Gorbachev]])
* Make __CRT_INLINE always inline, use ceil instead of ceill. Fixed linking when compiling with -O0, it should now work. ([[Dmitry Gorbachev]])
Line 785: Line 782:
* Output type when module is a program ([[Johannes Anderwald]])
* Output type when module is a program ([[Johannes Anderwald]])
* first attempt at fixing log2lines build ([[Sylvain Petreolle]])
* first attempt at fixing log2lines build ([[Sylvain Petreolle]])
* correct number of parameters for IDirect3DTexture methods ([[Kamil Hornicek]])
* Correct number of parameters for IDirect3DTexture methods. ([[Kamil Hornicek]])
* Restore the old loopback implementation Should fix the buildbot test hang ([[Cameron Gutman]])
* Restore the old loopback implementation Should fix the buildbot test hang ([[Cameron Gutman]])
* Set up the TCP interface data as needed in TCPFindInterface ([[Cameron Gutman]])
* Set up the TCP interface data as needed in TCPFindInterface ([[Cameron Gutman]])
* timer_queue_thread_proc: Add missing and required RtlExitUserThread before function exit. Fixes crashing of kernel32_winetest for sync. ([[Michael Martin]])
* timer_queue_thread_proc: Add missing and required RtlExitUserThread before function exit. Fixes crashing of kernel32_winetest for sync. ([[Michael Martin]])
* sync wined3d, d3d8, d3d9, ddraw with Wine 1.1.21 ([[Kamil Hornicek]])
* Sync wined3d, d3d8, d3d9, ddraw with Wine 1.1.21 ([[Kamil Hornicek]])
* imported the MT snapshot of the GPL tftp-server for win32 from sourceforge. Minor changes such as formatting and renaming the files, totally untested except for building, will be used later to serve up ReactOS images to PXE boot ([[Steven Edwards]])
* imported the MT snapshot of the GPL tftp-server for win32 from sourceforge. Minor changes such as formatting and renaming the files, totally untested except for building, will be used later to serve up ReactOS images to PXE boot ([[Steven Edwards]])
* Wait_thread_proc: Pass the correct value WaitAny vice FALSE to NtWaitForMultipleObjects. Fixes INFINITE wait when running kernel32_winetest for thread. ([[Michael Martin]])
* Wait_thread_proc: Pass the correct value WaitAny vice FALSE to NtWaitForMultipleObjects. Fixes INFINITE wait when running kernel32_winetest for thread. ([[Michael Martin]])

Revision as of 09:50, 28 June 2009

This is the changelog for ReactOS™ version 0.3.10 (released whenever), an open-source operating system designed to be binary executable - and device driver-compatible with Microsoft™ Windows NT™ and subsequent Microsoft operating systems such as Windows 2000™ and Windows XP™. ReactOS is written by the ReactOS development team, and the last previous version of ReactOS was version 0.3.9 (released 26 April, 2009).



Generic 0.3.10 Changes


Norwegian Update Norwegian translations (translator: Lars Martin Hambro, bug #2482, bug #4325). This patch was already applied in r40315, but mistakenly reverted in r40564. Sorry. (Dmitry Gorbachev)

Romanian Massive translation work ( about 70% of the interface ) done by Petru Dimitriu





Host Tools






Bootloader (FreeLoader)

  • Remove MachGetMemoryMap() and replace it by ArcGetMemoryDescriptor(). Rework memory initialization to use it. We are no longer limited anymore to 32 memory descriptors and having more than 4GB of RAM does not lead to out of bounds accesses (Hervé Poussineau)
  • WINLDR: Fix SystemRoot path when booting in non-setup mode. WINLDR: Change path buffers to be MAX_PATH sized instead of an arbitrary 512 bytes value. (Aleksey Bragin)
  • Reenable partition table exploration, but switch off disk error reporting before doing it. (Aleksey Bragin)
  • WINLDR: Pass boot options to the kernel when booting in setup mode (it was disabled for debugging reasons). (Aleksey Bragin)
  • WINLDR: Use SystemRoot path as it is because after recent changes by Herve there is no need to do additional operations with it. (Aleksey Bragin)
  • Fix CDROM device registration: do not hardcode it to 0xE0, but register whatever device FreeLdr starts and which is not reported by BIOS as a harddisk. Fixes setupldr2. (Aleksey Bragin)
  • Disable partition table exploration, as long as it displays an error message if disk is not partitioned (Hervé Poussineau)
  • Implement agnostic architecture for file system access, according to Advanced RISC Computing Specification Version 1.2 Some shortcuts still exist, and will need to be addressed later. Use this new API in the NTLDR-style loader (Hervé Poussineau)

Kernel and Executive (NTOSKRNL)

  • Fix accidentally committed change in a function prototype. Spotted by Stefan Ginsberg. (Aleksey Bragin)
  • Make use of the implemented transfer counter. (Aleksey Bragin)
  • Implement a helper for updating IO transfer counters. Based on a patch by Dmitry Chapyshev. (Aleksey Bragin)
  • IopCreateObjectTypes: Add a DeleteProcedure for Device Objects. IopUnloadDevice: After calling the drivers Unload routine, make the DriverObject temporary and dereference it. IopUnloadDriver: Check that the driver is not already unloading before trying to call unload routine. If any failure, dereference the DriverObject before returning STATUS code. On an attempt to unload the driver, loop through each DeviceObject and set DOE_UNLOAD_PENDING in device extensions flags. Before calling the driver's unload routine set DRVO_UNLOAD_INVOKED in DriverObject's flags. Fixes Bugchecks when attempting to load driver a second time and when unloading a driver that has upper level device attached. (Michael Martin)
  • Disable debugging traces for dbgk/io/lpc/ob/ps by default, removing mostly unused debug code from frequently used routines and decreasing image size by about 32 KB. Also fix the way some macros are defined so we do not end up with double semicolons after the preprocessor. (Stefan Ginsberg)
  • Implement ProcessIoCounters case in NtQueryInformationProcess. Patch by Dmitry Chapyshev. Turn on I/O operations counter. (Aleksey Bragin)
  • Debug pool allocator: Add support for paged pool debugging. (Aleksey Bragin)
  • Implement a special "debug pool" allocator which catches pool overruns. It evolved from an initial patch by Art Yerkes, and is fully independent from underlying pool implementation. It supports only non-paged pool and detects only overruns now. To enable, uncomment DEBUG_NPOOL define in mm/pool.c. (Aleksey Bragin)
  • Change storage of ReactOS-specific virtual address space from VadRoot to Vm EPROCESS structure member. Change containing "structure" from MM_AVL_TABLE to MMSUPPORT respectively . (Aleksey Bragin)




  • Skip partitions drive letter assignments if no hard disk is present (Hervé Poussineau)


  • IopUnloadDriver: Only add the DOE_UNLOAD_PENDING to the Device's DeviceExtensions Flags and check for attached devices and reference counts if the DriverObject->DriverUnload is valid. Verified on XP. IopLoadUnloadDriver: Add a check to verify that ImagePath.Buffer is not null before freeing it. (Michael Martin)
  • IoGetLowerDeviceObject: Return lower device object if pending flags are not set. Noticed by Johannes Anderwald. (Michael Martin)
  • IopCreateDriver: Change MajorFunction routines back to internal function IopInvalidDeviceRequest for ones that were set to NULL in the Drivers DriverEntry. Behavior verified on Windows. (Michael Martin)
  • Fix a potential crash in IoGetLowerDeviceObject if nothing is attached (Cameron Gutman)
  • Add missing pool allocation failure branch in NtSetInformationFile, and a missing PAGED_CODE check. Spotted by Dmitry Chapyshev. (Aleksey Bragin)
  • Initialize IoCountOperations variable to FALSE by default. Spotted by Dmitry Chapyshev and winetests. (Aleksey Bragin)
  • IRP_MN_FILTER_RESOURCE_REQUIREMENTS passes the list also in Irp->IoStatus.Information. Fixes a crash in CMI8738 driver (Johannes Anderwald)
  • Patch by JГcrГ_me Gardou (jgardou-at-yahoo-dot-fr) from bug #4388, should fix the "VirtualBox Guest Additions 2.2.2 mouse filter driver is crashing during boot" (bug #4454). (Dmitry Gorbachev)
  • Fix improper resource translation because of AddressSpace confusion (Cameron Gutman)
  • Fix writing of BootConfig to the registry (previously, it wrote contents of DEVICE_NODE structure and caused nonpaged pool overread). Similar error a few lines below was fixed by Hervé in r15691. (Aleksey Bragin)
  • Fix driver object type DeleteProcedure so that it actually unloads the driver image. Make IopUnloadDriver work accordingly (it should not try to unload an image when its object has already been deleted). Drivers can now be unloaded in ReactOS, this probably fixes a number of hardware-related applications and applications using hardware protection. (Aleksey Bragin)



  • Lowercase STATIC and CONST. Fixes build with DBG but without KDBG. (Dmitry Gorbachev)
  • Clear up debugger prompt from "mouse excrements". Tested in QEMU, Bochs, VirtualBox. (Dmitry Gorbachev)



  • Add SectionHandle probing (Dmitry Chapyshev)
  • Add probing of the result buffer and add missing target process reference/dereference in MemorySectionName case of NtQueryVirtualMemory. Fixes 2 "psapi_winetest" failures. (Dmitry Chapyshev)
  • MmUnmapViewOfSection: Unlock address space before notifying debugger. Fixes a case where OllyDbg deadlocks in a GateWait while trying to read virtual memory. (Michael Martin)
  • MiFindExportedRoutineByName: Correct an typo that caused MmGetSystemRoutineAddress to assert after finding a valid non forwarder function. (Michael Martin)
  • Properly disable tag validation if using debugging pool (fixes a wrong part of r41255). (Aleksey Bragin)
  • Add a note about increasing max pool sizes when using pool debugging. (Aleksey Bragin)
  • Add missing parameters probing. (Aleksey Bragin)
  • Add missing AVL tree initialization. (Aleksey Bragin)
  • Add check of parameters for NtGetWriteWatch/NtResetWriteWatch (from Wine) Set Granularity to PAGE_SIZE. Fixes crash in kernel32 virtual test (Dmitry Chapyshev)
  • MmGrowKernelStack: Fail when the kernel stack cannot grow any more. Fixes a crash with recursive user calls. (Timo Kreuzer, bug #4060)
  • MmCreateSection: SectionPageProtection of PAGE_NOACCESS is valid in Windows 98 and lower, but not valid in the NT family. More kernel32_winetest fixes for virtual memory. (Michael Martin)
  • NtAllocateVirtualMemory, NtProtectVirtualMemory: Page Protection cannot be any combination of Memory Protection Constants, see MSDN. Add checks to handle non compatible combinations and fail. Fixes 6 more kernel32_winetest for virtual memory. (Michael Martin)
  • MmProtectAnonMem: Search all Regions in Memory Area up to Length for MEM_COMMIT prior to altering memory protection. Fixes 6 kernel32_winetest for virtual memory. (Michael Martin)
  • MmMapViewOfSection: Segment size must be a multiple of page size, so round ViewSize up to next page size. OllyDbg now shows loaded dlls in memory and can step into dlls. (Michael Martin)
  • NtFreeVirtualMemory: Pass RegionListHead from SectionData vice VirtualMemoryData to MmAlterRegion for MemoryArea->Type of Section view. Fixes BugCheck with MapViewOfFile tests for kernel32_winetests. (Michael Martin)
  • Silence pool debugging debugprints. (Aleksey Bragin)
  • Make debug pool return 8-bytes aligned pointers. The padding area (up to 7 bytes) is not being checked for overruns now. ReactOS fully boots and works with this change and a debug pool. (Aleksey Bragin)


  • Make ObReferenceObjectEx return the new ref count instead of old ref count. Fix same bug ObDereferenceObjectEx. Fix a typo in ObDereferenceObjectEx which resulted in ObpDeferObjectDeletion not being called when needed. Fixes missing object deletions in code using ObDereferenceObjectEx (e.g. executive timers in reactos kernel). Original problem found by http://www.reactos.org/forum/viewtopic.php?f=14&t=6969&p=59669, fixes inspired by the discussion too. (Aleksey Bragin)


  • Add target process reference/dereference in ProcessWow64Information case of NtQueryInformationProcess. Check buffer length (Dmitry Chapyshev)
  • Check buffer length for ProcessQuotaLimits/ProcessBasePriority/ProcessRaisePriority/ProcessWx86Information/ProcessDebugPort cases (Dmitry Chapyshev)
  • Add probing of the result buffers (Dmitry Chapyshev)
  • Implement ProcessQuotaLimits case for NtQueryInformationProcess. Based on Dmitry Chapyshev's patch. (Aleksey Bragin)
  • Add target process reference/dereference in ProcessLdtInformation/ProcessWorkingSetWatch/ProcessWx86Information cases of NtQueryInformationProcess. (Dmitry Chapyshev)
  • Add debug messages for unimplemented cases in NtQueryInformationProcess (Dmitry Chapyshev)
  • Add missed checks of the buffer length (Dmitry Chapyshev)
  • Implement ProcessPriorityClass case for NtSetInformationProcess(). Based on Dmitry Chapyshev's work and testing. (Aleksey Bragin)
  • Fix ProcessPriorityClass case in NtQueryInformationProcess. Structure PROCESS_PRIORITY_CLASS should be returned. Tested in win vista (Dmitry Chapyshev)


NT System Library (NTDLL)

  • Patch by Alexander Potashev <aspotashev AT gmail DOT com> LDRP_PROCESS_CREATION_TIME was a _flag_ which is now removed, the new 'LDRP_PROCESS_CREATION_TIME' is not a flag, it is just a constant to identify a special value of LoadCount. (Art Yerkes)
  • Fix handle / memory leak in failure branch, spotted by Dmitry Chapyshev. (Aleksey Bragin)
  • Fix obvious bugs in the code (e.g. freeing a stack-allocated pointer). Rewrite the code to be more readable. Enlarge static buffer for SearchPathBuffer to be at least 5*MAX_PATH to prevent possible overflowing for now. In the meanwhile, Dmitry is rewriting this part of code to dynamically allocate the memory without the need for a temporary static storage. (Aleksey Bragin)
  • Add support of additional paths of loading dlls (fixes loading dlls in X-Chat) See issue #4201 for more details. (Dmitry Chapyshev)

Run Time Library (RTL)

  • Fix asm implementations of RtlInterlockedPopEntrySList, RtlInterlockedPushEntrySList and RtlInterlockedFlushSList, by correcting the stack offset for the parameters. (Timo Kreuzer)
  • Fix definition of RTL_HANDLE_TABLE_ENTRY Fix check in RtlFreeHandle. (Timo Kreuzer)

Kernel Mode Drivers

  • Improve user mode buffer probing (Johannes Anderwald)
  • Silence "argument unused" warnings. Corrected several accesses to potentially uninitialized variables. Visual C++ is no longer a guarantee of compilation with the DDK Patch by Samuel Serapión <samdwise51 AT gmail DOT com> (KJK::Hyperion)
  • Silence "argument unused" and "unused variable" warnings Corrected several accesses to potentially uninitialized variables Patch by Samuel Serapión <samdwise51 AT gmail DOT com> (KJK::Hyperion)
  • Don't reinitialize in case of error. Fixes a "DPC > 1 sec" problem related to an infinite loop in usbdriver. (Aleksey Bragin)
  • Fix NULL pointer access in an error branch inside hub_clear_port_feature_completion(). Thanks to Christoph for testing. (Aleksey Bragin)
  • Add stubs for unimplmented cases in ScsiPortNotification ([[Olaf Siejka}} (caemyr gmail com))
  • Check in wdmaud if a pin with the specified filter ID and pin ID has been opened. Partly rewrite SysAudio as it is no longer required to store client specific information per connection since wdmaud just opens one connection. Verify all audio handles at incoming IRP (Johannes Anderwald)
  • Topology nodes can have a nullable name. Disable releasing resources when IPortFilterWaveCyclic is closed (Johannes Anderwald)
  • Do not include private.h twice, fix include path (Sylvain Petreolle)
  • Add a few sanity asserts to KsCreate. Pass a create item and use an object class when creating an object header Return zero mixer count when wdmaud fails to enumerate virtual device count. Should fix high CPU usage after installing audio drivers (Johannes Anderwald)
  • Store servicegroup obtained from IMiniportDMus / IMiniportMidi Init function when IPortDMus / IPortMidi RegisterServiceGroup is not called (Johannes Anderwald)
  • Fix a bug in KsTopologyPropertyHandler. Create a KSTOPOLOGY struct when creating the subdevice descriptor and pass the struct to KsTopologyPropertyHandler. Implement enumerating mixer devices. Change handle array to contain the target device type. Mixer handles are not real handles, they are just pseudo handles. Forward KSPROPSETID_Topology request to portcls (sysaudio) (Johannes Anderwald)
  • Add cases for IOCTL_SCSI_MINIPORT and IOCTL_SCSI_PASS_THROUGH (Dmitry Chapyshev)
  • Check to see that the packet status isn't NDIS_STATUS_RESOURCES before forwarding the packet descriptor to the ReceivePacketHandler (Cameron Gutman)
  • Disable debugging flood (Johannes Anderwald)
  • Also Store audio filter object header in FsContext member Create the pin on the correct filter by using the filters object class Remove filter object class before performing actual create request Remove object header from audio filter when closing Retrieve internal object class name with internal IOCTL_KS_OBJECT_CLASS Avoid using interface name as ReactOS doesn't support it Store object class name when creating the object header for the audio sub device Implement IPortFilterTopology interface Activate pin property handle for port topology driver There is no need to create a handle to sysaudio for each application opening wdmaud, use only one connection per driver basis Pass object create class to pin creation method by duplicating KsCreatePin Audio devices should now be accessible again (Johannes Anderwald)
  • Revert 40694 as FIELD_OFFSET is perfectly working code and the new one might not work on some compilers. Add informal debug traces for bug 4354 (Johannes Anderwald)
  • Remove a few bad (PLIST_ENTRY) casts (Johannes Anderwald)
  • Add missing exports to videoprt. (Timo Kreuzer)
  • Patch from Olaf Siejka <olaf_siejka AT o2 DOT pl> Stub out more IRP type cases instead of printing "Unknown IOCTL" (Stefan Ginsberg)
  • Implement IOCTL_KEYBOARD_QUERY_ATTRIBUTES (not used yet, see FIXME comment) Add KeyboardAttributes to I8042_KEYBOARD_EXTENSION (Dmitry Chapyshev)
  • Implement IOCTL_MOUSE_QUERY_ATTRIBUTES (untested) (Dmitry Chapyshev)
  • Use a reference name when registering audio subdevices (bug #4566). Release subdevice interface when it is no longer needed Fix a memory leak Audio support is on hold until bug #4566 is resolved (Johannes Anderwald)
  • Report 5.2 as a version in UniATA rather than 4.1. (Aleksey Bragin)
  • Increase waiting time for DRQ removal inside AtapiInterrupt twice. Do not disable/enable IDE controller interrupts in AtapiSendCommand. This confuses Virtual Box's controller (it consumes one interrupt without ever emitting it) and thus sending any ATAPI command fails. Turn off ATAPI DMA raw read support by default. It seems to be incompatible with (at least) Virtual Box IDE controller. See issue #3645 for more details. (Aleksey Bragin)
  • i8042MouInternalDeviceControl: Partially implement internal IOCTLs IOCTL_INTERNAL_I8042_MOUSE_WRITE_BUFFER, IOCTL_INTERNAL_I8042_MOUSE_START_INFORMATION and IOCTL_MOUSE_QUERY_ATTRIBUTES. (Michael Martin)
  • Register shutdown notification. Close file objects / handles on shutdown (Johannes Anderwald)
  • Return error code when there is a timeout improve error check in PcNewInterruptSync write an error log entry when a device fails to start (Johannes Anderwald)
  • Do not release resource list May fix 4551 (Johannes Anderwald)
  • i8042MouInternalDeviceControl: Implement IoControlCode of IOCTL_INTERNAL_I8042_HOOK_MOUSE. ForwardIrpAndWait: Don't use IoForwardIrpSynchronously to Forward IRPs as it fails if no next stack location is available, which can prevent mouse from initializing. Changed it to match implementation of our other input drivers. Mouse pointer now works with VBoxMouse driver loaded. (Michael Martin)
  • Use DO_BUFFERED_IO for mouse device to match windows behavior. Revealed by mouse spying utility that expected that IO method. These mouse spying drivers should now work. (Michael Martin)
  • Do not overwrite *max_bcount. (Dmitry Gorbachev)
  • MouseClass: Remove exclusive access when creating device as it prevents mouse spy drivers from working. (Michael Martin)
  • KeyBoardClass: Removed exclusive access when creating device as it prevents key loggers from working. (Michael Martin)
  • Remove unused WdmAudWriteCompleted check for a valid object header in KsSynchronousIoControlDevice. Apply alignment restrictions to all allocated buffers. Fix handling IRP_MN_QUERY_INTERFACE, IRP_MN_QUERY_DEVICE_RELATIONS, IRP_MN_FILTER_RESOURCE_REQUIREMENTS. IMiniportWaveCyclic::NewStream && IMiniportWavePci::NewStream take first the pin ID and THEN the parameter capture. Fixes playback for ES1371 (VmWare) driver and many others, Store IPortFilterWavePci, IPortFilterWaveRT, IPortFilterWaveCyclic in their corresponding port (Johannes Anderwald)
  • Add CLSID_PortWaveRT Plugin IPortWaveRT port driver (Johannes Anderwald)
  • Fix WaitOnBusy, WaitOnBaseBusy and Wait[Short]ForDrq to wait and loop exactly the same as our existing atapi driver. This greatly enhances uniata's compatibility, especially on modern highspeed hardware where a controller usually does not have enough time to change its state and was considered invalid. (Aleksey Bragin)
  • Use ExInterlockedList * functions for speed and stability. Increment reference count on the correct miniport adapter from IPortDMus (Johannes Anderwald)
  • Partly implement IMasterClock Implement IAllocatorMXF for IPortPinDMus Implement rendering midi streams using IMXF object WIP, not tested yet (Johannes Anderwald)
  • Implement IPortMidi, IPortFilterDMus, IPortPinDMus Implement reading / writing midi stream data using IMiniportMidiStream interface. Delete old IPortMidi implementation (Johannes Anderwald)
  • When acquiring a mapping check if the mapping has not already been used Set tag value to zero when releasing a mapping (Johannes Anderwald)
  • Use a spinlock with list functions over interlocked list functions. Use a bitmap for storing reference count of the mappings as mapping are completely asynchronous and not very likely in determined order (Johannes Anderwald)
  • Fix debug statement Modify reference handling for irp mappings (Johannes Anderwald)
  • Declare IID_IDmaChannelSlave as it is not visible when using NTDDI >= Vista (Johannes Anderwald)
  • Return status code if releasing the mapping has succeeded Fix calculation of number of tags to be allocate per irp Fix multiple bugs when acquiring the mapping and releasing the mapping Vortex AU8810 WDM is now starting to play (Johannes Anderwald)
  • Implement IPortWaveRT, IPortFilterWaveRT, IPortPinWaveRT interface for audio drivers >= Vista (Johannes Anderwald)
  • Handle failure correctly in OHCI. Spotted by Cameron Gutman. (Aleksey Bragin)
  • Handle failure case correctly in *_submit_urb: remove URB from an endpoint's linked list, instead of corrupting this URB's memory. Thanks to Gregor Schneider for spotting the suspicious place. See issue #4279 for more details. (Aleksey Bragin)
  • Silence a few debug prints. The IrpQueue functions are called at DISPATCH_LEVEL, therefore use KeAcquireSpinLockAtDpcLevel instead Fix multiple bugs when using IrpQueue tag functions (Johannes Anderwald)
  • Fix IPortWavePci_Notify routine. Add debug traces (Johannes Anderwald)
  • Experimental IPortPinWavePci implementation Refactor IPortWavePciStream initilization Add test code for IDrmAudioStream (Johannes Anderwald)
  • Implement KSPROPERTY_PIN_DATARANGES handler- Always return TRUE in FastDeviceHandler (faciliates testing with Vortex AU8820 WDM Driver) (Johannes Anderwald)
  • Pass KSPROPERTY_SET to subdevice constructor. Add debug traces on error case (Johannes Anderwald)
  • Fix allocation of CM_RESOURCE_LIST Might fix bug 4354. See bug #4354 for more details. (Johannes Anderwald)
  • Implement VideoPortPutDmaAdapter, VideoPortStartDma, VideoPortCompleteDma, VideoPortLockBuffer, VideoPortUnlockBuffer, (Johannes Anderwald)
  • Remove unused file Fix Es1370mp / Es1371mp driver installation. However, no sound yet. Needs more investigation (Johannes Anderwald)
  • Add tons of ASSERT_IRQL / ASSERT_IRQL_EQUAL. Queue a DPC when IServiceGroup::RequestService is called above dispatch level. As a result writing to common buffer and completing IRPs can be done at the same time. Start the stream at PASSIVE_LEVEL. Check if key has been deleted in IRegistryKey object function. Implement IRegistryKey::QueryRegistryValues (Johannes Anderwald)
  • Re-dispatch IRP to the default handler (Johannes Anderwald)
  • Once a create handler indicates success, leave creation handler (Johannes Anderwald)
  • Increase importance of the audio DPC which finishes irps Once one second of audio data has been buffered, always queue audio irps and dont complete them imediately. Greatly improves the playback of SMPlayer and probably many other audio players which act strictly on the timing of completed irps. Add debug traces when KsCreatePin fails (Johannes Anderwald)
  • Allocate work item for each filter / pin being opened. Use ExInterlockedInsertTailList to insert a new audio device to prevent race conditions when more than one audio device is present. Free work item in their target worker routine (Johannes Anderwald)
  • Allocate a work item for each specific request (start / stop / close) and free allocated work items (Johannes Anderwald)
  • Implement KSPROPERTY_PIN_CTYPE, KSPROPERTY_PIN_DATAFLOW, KSPROPERTY_PIN_COMMUNICATION for fast property handler (Johannes Anderwald)
  • Implement FastDeviceIoControl for IPortFilterWavePci Partly implement fast property handler (Johannes Anderwald)
  • Implement handling a FastDeviceIoControl path (not yet used in portcls) (Johannes Anderwald)
  • Fix return type of FastDeviceIo / FastRead / FastWrite (Johannes Anderwald)
  • Rename function to fix linking errors on x64 (Johannes Anderwald)
  • Forward & wait IRP_MN_START_DEVICE to lower device objects before starting the device Fix several irp leaks and return correct status in PcForwardIrpSynchronous (Johannes Anderwald)
  • Handle IRP_MN_QUERY_RESOURCE_REQUIREMENTS (Johannes Anderwald)
  • Silence a few debug prints Fix memory leaks on failure (Johannes Anderwald)
  • Drivers might use this unused area http://msdn.microsoft DOT com/en-us/library/ms793661.aspx (Johannes Anderwald)
  • Activate IPortFilterWavePci (Johannes Anderwald)
  • Implement IPortFilterWavePci (based on IPortFilterWaveCyclic) (Johannes Anderwald)










  • Report that we are NDIS 5.1 (Cameron Gutman)
  • Make NdisGeneratePartialCancelId safe by using Interlocked functions (Cameron Gutman)
  • Implement NdisIMGetBindingContext and NdisIMGetDeviceContext (Cameron Gutman)
  • Header cleanup (Cameron Gutman)
  • Implement NdisIMCopySendPerPacketInfo and NdisIMCopySendCompletePerPacketInfo (Cameron Gutman)
  • Implement NdisGeneratePartialCancelId (Cameron Gutman)
  • Implement NdisCancelSendPackets (Cameron Gutman)
  • MINIPORT_CONFIGURATION_CONTEXT must be allocated from nonpaged pool as it contains a spinlock (Stefan Ginsberg)
  • Rewrite MiniQueryInformation so it creates a NDIS_REQUEST and passes it to MiniDoRequest for processing to reduce code duplication Call MiniportCoRequest in connection-oriented miniports Now our NDIS loads all the way to the ASSERT for unsupported media on XP (Cameron Gutman)
  • Fix our handler checks Now XP's intermediate miniport drivers can load on ROS's NDIS More work still needs to be done to get them working though (Cameron Gutman)
  • Register the adapter shutdown handler if it is specified in the miniport characteristics (Cameron Gutman)
  • Export NdisFreeToBlockPool (Cameron Gutman)
  • Finish NDIS S/G DMA implementation. (Cameron Gutman)
  • Handle IRP_MN_QUERY_PNP_DEVICE_STATE (Cameron Gutman)
  • Register a device interface for each miniport (Cameron Gutman)
  • Implement and export NdisCompareAnsiString, NdisCompareUnicodeString, and NdisInterlockedAddLargeInteger (Cameron Gutman)
  • Export the stubs for NdisRegisterTdiCallBack, NdisSetProtocolFilter, and NdisClGetProtocolVcContextFromTapiCallId. Move implemented functions to misc.c and add some debug prints (Cameron Gutman)
  • Return NDIS 5.1 in NdisGetVersion (its XP+) (Sylvain Petreolle)
  • Implement and export NdisOverrideBusNumber (Cameron Gutman)
  • Implement NdisGetSharedDataAlignment and NdisGetVersion (Dmitry Chapyshev)
  • Export and stub NdisAllocateFromBlockPool, NdisCancelSendPackets, NdisCoAssignInstanceName, NdisCoGetTapiCallId, NdisCreateBlockPool, NdisDestroyBlockPool, NdisGeneratePartialCancelId, NdisGetRoutineAddress, NdisGetSharedDataAlignment, NdisGetVersion, NdisIMGetCurrentPacketStack, NdisIMNotifyPnPEvent, NdisQueryPendingIOCount, and NdisSetPacketStatus (Cameron Gutman)
  • Export and implement NdisSetTimerEx (Cameron Gutman)
  • Export stubs for NdisQueryBindInstanceName and NdisSetPacketPoolProtocolId (Cameron Gutman)
  • Export NdisGetFirstBufferFromPacketSafe, NdisGetPacketCancelId, NdisGetPoolFromPacket, NdisPacketSize, and NdisSetPacketCancelId (Cameron Gutman)
  • Export NdisCopyFromPacketToPacketSafe (Sylvain Petreolle)
  • Fix handling of noncached contiguous memory in NdisAllocateMemory and NdisFreeMemory (Cameron Gutman)
  • Fix a bug that could result in Dma32BitAddresses being set if the caller specifies NDIS_DMA_24BITS (Cameron Gutman)
  • Do not use NDIS's ioctl handler for devices registered from NdisMRegisterDevice (Cameron Gutman)
  • Irp->AssociatedIrp.SystemBuffer is a PNDIS_OID (Cameron Gutman)
  • Fix our DMA implementation to use documented structs (Cameron Gutman)
  • Implement NdisReadPcmciaAttributeMemory and NdisWritePcmciaAttributeMemory Add some debug prints to NdisReadEisaSlotInformation (Cameron Gutman)
  • Implement NdisReadEisaSlotInformation (Cameron Gutman)
  • The slot number passed directly to NdisImmediateReadPciSlotInformation/NdisImmediateWritePciSlotInformation is ignored according to MSDN so store a valid slot number in the wrapper context to use instead (Cameron Gutman)
  • Implement NdisGetFirstBufferFromPacketSafe and NdisCopyFromPacketToPacketSafe (Cameron Gutman)
  • Implement NdisGetPoolFromPacket, NdisPacketSize, NdisGetPacketCancelId, and NdisSetPacketCancelId (Cameron Gutman)
  • Store the MTU in the packet extension for use during segmentation by miniport drivers (Cameron Gutman)
  • Remove some obsolete defines I apologize for any unnecessary rebuilds this may cause ;) (Cameron Gutman)
  • Enable several failure debug prints Add a debug print (Cameron Gutman)
  • Do not cast NDIS_SPIN_LOCK directly to KSPIN_LOCK (Cameron Gutman)
  • Allocate space for the packet extension located at NdisPacketOobOffset + sizeof(NDIS_PACKET_OOB_DATA) Fixes more packet corruption (Cameron Gutman)
  • Implement support for IOCTL_NDIS_QUERY_GLOBAL_STATS (Cameron Gutman)
  • Implement handing for IRP_MN_SET_POWER and IRP_MN_QUERY_POWER (not plugged in yet). Allocate a buffer and copy data into it instead of using the buffer passed to us directly. Use a helper function to perform common operations which save lots of lines of duplicated code (Cameron Gutman)
  • Handle IRP_MN_QUERY_REMOVE_DEVICE and IRP_MN_CANCEL_REMOVE_DEVICE. Implement NdisCompletePnPEvent. Handle pending cases (Cameron Gutman)
  • Implement handling for IRP_MN_CANCEL_STOP_DEVICE (Cameron Gutman)
  • Implement handling for IRP_MN_QUERY_STOP_DEVICE (Cameron Gutman)
  • Translate the raw address before attempting to map it (Cameron Gutman)
  • Add debug prints to NdisMMapIoSpace (Cameron Gutman)
  • Fix memory corruption when reading binary data (Cameron Gutman)
  • Check for invalid ConfigurationContext Patch by Daniel Zimmermann with a slight modification by me (Cameron Gutman)
  • Pass IRP_MN_QUERY_DEVICE_RELATIONS down the stack (Cameron Gutman)
  • Wait for NdisMFreeSharedMemoryPassive to complete before returning See issue #4428 for more details. (Cameron Gutman)
  • Only call NdisMEthIndicateReceiveComplete once per batch of packets Slight performance increase (Cameron Gutman)
  • Implement NdisCopyBuffer and NdisGetCurrentProcessorCpuUsage Patch by Dmitry Chapyshev (Cameron Gutman)
  • Free NdisMiniportBlock.Resources when we receive a stop IRP (Cameron Gutman)
  • Also copy AllocatedResources from the stack to NdisMiniportBlock.Resources (Cameron Gutman)
  • Fix support for asynchronously completed requests (Cameron Gutman)
  • Use Int32x32To64 to calculate timeout (Cameron Gutman)
  • Allocate memory for the OOB area also Set the NdisPacketOobOffset in each packet Fixes the mysterious packet corruption Fixes Realtek 8139 and Intel PRO/1000 (Cameron Gutman)
  • Zero the whole packet in other packet allocation routines. Set ValidCount TRUE because we do not have any buffers chained yet. Set the fPACKET_ALLOCATED_BY_NDIS flag (fixes storing media-specific data) (Cameron Gutman)
  • Do not attempt to store packets and buffers in the same place (Cameron Gutman)
  • Implement NdisQueryAdapterInstanceName (Cameron Gutman)
  • Implement NdisMRegisterUnloadHandler, NdisMRegisterDevice, and NdisMDeregisterDevice (Cameron Gutman)
  • Implement NdisMGetDeviceProperty (Cameron Gutman)
  • Register more handlers (Cameron Gutman)


  • Only register a shutdown handler if adapter initialization has succeeded (Cameron Gutman)




  • Register the unload handler so it gets called by NDIS (Cameron Gutman)
  • Implement and register a ProtocolUnbindAdapter handler (Cameron Gutman)
  • Add and register a ProtocolPnPEvent handler with some stubs in it (Cameron Gutman)


Static Libraries





  • Japanese translation of USetup. Patch by Tomoya Kitagawa, fixes bug #4523. (Dmitry Gorbachev)
  • Don't display unformatted partitions twice. See issue #4399 for more details. (Aleksey Bragin)

Win32™ Personality

User mode subsystem server (CSRSS)

Kernel-mode subsystem server (Win32K)

  • Fix Firefox 1.0/1.5 minimisation to taskbar Patch by Mikhail Denisenko (denisenkom AT gmail DOT com) See issue #2451 for more details. (Dmitry Chapyshev)
  • NtGdiEngCreateDeviceBitmap: Test size larger than 32 bits in width. (James Tabor)
  • Update stubs, NtGdiEngCreateDevice/Bitmap. (James Tabor)
  • More research is required to fix NtGdiSetPixelFormat, so removing disputed information. (James Tabor)
  • fixes the problem of unsetting the HWND_TOPMOST property (e.g. taskmgr) review recommended, but i think it's sufficient to limit topmost property to desktop windows only (otherwise we can remove this part of condition) (Matthias Kupfer)
  • Hax-implement NtGdiSetPixelFormat and add a support function UserGethWnd with some code cleanup. (James Tabor)
  • Implement NtGdiDescribePixelFormat, needs testing. (James Tabor)
  • Add note for WNDOBJ. (James Tabor)
  • Implement CDS_TEST flag for IntChangeDisplaySettings. Set ERROR_CALL_NOT_IMPLEMENTED where needed. (Sylvain Petreolle)
  • ProcessMouseInputData: Mouse pointer shown on window was slightly off. Fix calculation in conversion to screen position. (Michael Martin)
  • MouseThreadMain: Send IOCTL_MOUSE_QUERY_ATTRIBUTES to mouse driver. MSDN reads that this IOCTL is sent from the subsystem. Filter drivers can depend on this behavior. (VirtualBox guest addition drivers) Does the subsystem need the returned mouse attributes for anything? ProcessMouseInputData: Handle flag MOUSE_MOVE_ABSOLUTE and change absolute mouse position to screen coordinates. Fixes VirtualBox mouse integration. (Michael Martin)
  • IntEmptyClipboardData: Check before freeing a potential null pointer (Stefan Ginsberg)
  • Add support for SPI_GETCARETWIDTH/SPI_SETCARETWIDTH (Dmitry Chapyshev)
  • Fix two potential crashes (Dmitry Chapyshev)
  • Don't return from NtUserGetMouseMovePointsEx without UserLeave(Kamil Hornicek)
  • Check the pointer for client thread information for null not thread information. (James Tabor)
  • Remove the rest... (James Tabor)
  • Formatting fix. No code change (Dmitry Chapyshev)
  • Time to kill this one. We setup with ParentWindowHandle already set. (James Tabor)
  • UserPostMessage: When dealing with WM_QUIT, allow broadcasting like windows does and post it to the window's message queue instead of the current thread's message queue. (Giannis Adamopoulos, bug #4058)
  • Move update thread information hooks. (James Tabor)
  • This helps gimp 2.4.6 start-up. But there is another bug in msvcrt.dll that throws an exception. I must apologize for not doing this sooner. (James Tabor)
  • Order rectangle points to avoid CreateCompatibleBitmap failure because of negative size values (Gregor Schneider)
  • Implement ONE_PARAM_ROUTINE_POSTQUITMESSAGE case in NtUserCallOneParam and use it in PostQuitMessage instead of NtUserPostMessage. (Giannis Adamopoulos, bug #4058)




Control panel applets


  • Simplified Chinese translations by Jingjing Fu (jingjingf AT 188 DOT com). Bug #4417 (Dmitry Gorbachev)


  • Remove BOM, recode Romanian file from UTF-8 to CP-1250, remove #pragma strings from there, and #include it to the master resource file. (Dmitry Gorbachev)
  • Fix build (Dmitry Chapyshev)
  • German translation of effects (dialog + button) (Matthias Kupfer)



  • Don't cast pStartInfo->dwCrashDumpEnabled to LPBYTE and use it as pointer in RegSetValueExW, Instead pass &pStartInfo->dwCrashDumpEnabled. (Timo Kreuzer)


Win32™ Applications

  • fix msvc build (Christoph von Wittich)
  • some code cleanup (Christoph von Wittich)
  • attempt to convert most of this mess into something which at least look like C code (Christoph von Wittich)
  • fix warnings (untested) (Christoph von Wittich)
  • Paint: Added cropping via attributes dialog and setting desktop wallpaper (both not yet working) (Benedikt Freisen)
  • Change Paint to use Unicode (Dmitry Gorbachev)
  • Fix some bugs in Paint. (Dmitry Gorbachev)
  • Added Dutch translation (Benedikt Freisen)
  • use system background color instead of fixed one TODO: apply to buttons (still bitmaps) (Matthias Kupfer)
  • polish translation by Caemyr (Olaf Siejka) (Johannes Anderwald)
  • Add Russian translation Small cleanup (Dmitry Chapyshev)
  • SVN maintenance (Pierre Schweitzer)
  • Added paint/paint.rbuild to applications.rbuild (Benedikt Freisen)
  • Added Paint for ReactOS source folder (Benedikt Freisen)
  • Bulgarian translation of Mplay32 by CCTAHEB. Bug #4427. (Dmitry Gorbachev)
  • Sync wordpad and winhlp32 with Wine 1.1.21 (Dmitry Chapyshev)
  • sync winhlp32 and wordpad with Wine 1.1.20 (Daniel Reimer)
  • Rewrite, the last method of getting service dependants and dependent services was flawed/buggy. (Ged Murphy)
  • Add most of the code for the dependencies tab in the property sheet. It's not quite complete but I'm getting bored with it now. May finish it tomorrow. (Ged Murphy)
  • Add a temporary manifest to servman which contains support for comctl32 v6 and more importantly, support for UAC elevation in NT6+ This will be required for any app which needs to run with elevated privs. As we've previously stated, rbuild needs to generate the manifest hence this is only temporary. We therefore need a UAC tag adding to rbuild so the generated manifest can contain support for UAC elevation for any apps which require it. If anyone wishes to add this support to rbuild, feel free to do so. (Ged Murphy)
  • Fix the build and a fix mem leak. We should consider setting msvc to /W4. (Ged Murphy)
  • Add the list of dependencies to the listbox so we know what else will be stopping Restructure the stop code (Ged Murphy)
  • Rewrite start and stop routines to make them much more robust Add the ability to check for and stop dependent services Untested at the moment, but unfinished anyway. (Ged Murphy)


  • Romanian translation of ReactOS Calc by Petru Dimitriu (petrimetri *at* gmail *dot* com). Bug #4413. (Dmitry Gorbachev)

Command Prompt



  • Fix SeaMonkey link (Colin Finck)
  • Remove Firefox 1.5 from the list, we don't need three versions of it (Colin Finck)
  • Update SeaMonkey to 1.1.16 Add Firefox 3.0.9 Remove Mozilla ActiveX Control, that version isn't compatible anymore with our mshtml. Only take the version automatically downloaded from mshtml now. See issue #4411 for more details. (Colin Finck)
  • Add SMPlayer 0.6.7 (Johannes Anderwald)


  • Mikhail Denisenko <denisenkom AT gmail DOT com> Split the PIDL into current and parent folder, and call GetFolderAttributes only for current folder PIDL. This fixes tons of "ERR: HCR_GetFolderAttributes should be called for simple PIDL's only!" debug log spam messages. See issue #4494 for more details. (Aleksey Bragin)
  • Mikhail Denisenko <denisenkom AT gmail DOT com> Destroy proper windows, fixes one more memory leak. See issue #2012 for more details. (Aleksey Bragin)
  • Mikhail Denisenko <denisenkom AT gmail DOT com> RegisterDragDrop should be coupled with a RevokeDragDrop, so add that. Remove _pDropTarget from class members, it's a var local to DesktopShellView::InitDragDrop() method. See issue #2012 for more details. (Aleksey Bragin)
  • Mikhail Denisenko <denisenkom AT gmail DOT com> Free subentries in Entry destructor. Fixes QuickLaunch entries leak. See issue #2012 for more details. (Aleksey Bragin)
  • SetClassLong -> SetClassLongPtr, GetClassLong -> GetClassLongPtr (for 64-bit compatible, see note in MSDN) Part 1/x (Dmitry Chapyshev)



  • unify look of basic apps use icon for info box and remove text (Matthias Kupfer)




  • There's no such thing as ntsys.lib in Windows, dynamically link to ntdll to fix building with msvc. (Ged Murphy)
  • Keep the horizontal grid axis consistent (Ged Murphy)
  • Add more missing styles Patch by Gabriel Ilardi (gabrielilardi at hotmail dot it) (Ged Murphy)
  • Make the horizontal and vertical axis in the history graphs solid lines instead of the dotted 80's style we had. (Ged Murphy)
  • bug3954 missed some styles. Updated English resource, can Gabriel or anyone else do the rest. (Ged Murphy)
  • Gabriel Ilardi <gabrielilardi AT hotmail DOT it> Fixes the TAB_STOP problem for taskmanager. See issue #3954 for details. (Matthias Kupfer)
  • set menu checkmark always on top always (Matthias Kupfer)
  • fixes clipping problem for taskmgr process list (Matthias Kupfer)
  • Fix build (Dmitry Gorbachev)
  • unify look of basic apps use ShellAbout instead of own AboutBox (Matthias Kupfer)

Win32™ Libraries

  • Sync comdlg32, avifil32 with Wine 1.1.23 (Dmitry Chapyshev)
  • sync cryptui and crypt32 with wine 1.1.23 (Christoph von Wittich)
  • sync cabinet, jscript, msi and msxml3 with wine 1.1.23 (Christoph von Wittich)
  • Hack around the system start up Dll Initialization, this time we moved it to User32. (James Tabor)
  • Sync gdiplus, fusion, cryptui with Wine 1.1.22 (Dmitry Chapyshev)
  • Sync msctf, mlang, inetmib1, inetcomm with Wine 1.1.22 (Dmitry Chapyshev)
  • Sync ole32, oleaut32 with Wine 1.1.22 (Dmitry Chapyshev)
  • Sync riched20, qmgr, pdh with Wine 1.1.22 (Dmitry Chapyshev)
  • shell32: Add IShellItem implementation from Wine Implement SHCreateShellItem setupapi: Stubimplement SetupUninstallOEMInfA/W Stubimplement Get_Device_Interface_List_Size_ExA/W (Dmitry Chapyshev)
  • Sync shlwapi, traffic, urlmon with Wine 1.1.22 (Dmitry Chapyshev)
  • SetClassLong -> SetClassLongPtr, GetClassLong -> GetClassLongPtr (for 64-bit compatible, see note in MSDN) Part 2/x (Dmitry Chapyshev)
  • Sync msctf, mscoree, mciqtz32, localspl, inetmib1 with Wine 1.1.21 (Dmitry Chapyshev)
  • Sync ole32, oleacc, oleaut32 with Wine 1.1.21 (Dmitry Chapyshev)
  • Sync xinput1_3, pdh with Wine 1.1.21 (Dmitry Chapyshev)
  • Sync comctl32 (without listview.c), comdlg32 with Wine 1.1.21 (Dmitry Chapyshev)
  • Sync clusapi, credui, crypt32, cryptui with Wine 1.1.21 (Dmitry Chapyshev)
  • Sync spoolss, sxs, urlmon with Wine 1.1.20 (Dmitry Chapyshev)
  • Sync itss and msctf with Wine 1.1.20 (Dmitry Chapyshev)
  • Sync mciavi32 and mciqtz32 with Wine 1.1.20 (Dmitry Chapyshev)
  • Sync credui and crypt32 with Wine 1.1.20 (Dmitry Chapyshev)
  • Sync comctl32 with Wine 1.1.20 (without listview.c) Sync comdlg32 with Wine 1.1.20 (Dmitry Chapyshev)
  • Danish translation of shell32 and userenv DLLs by Thomas Larsen (sikker2004 "at" yahoo "dot" com). Bug #571. (Dmitry Gorbachev)
  • Add the ws2_32 library from Alex's old network branch which is a _huge_ improvement over our current, incorrect lib. I've made various changes and tweaks to get it building with gcc, however it doesn't yet build with out build environment as out headers are severely lacking. It's also reliant on other winsock libs which will come in future commits along with the header rewrite. (Ged Murphy)


  • better stub for LsaEnumerateAccountRights (Christoph von Wittich)
  • Add a lazy-initializing hack until user32 is able to delay-load the advapi32 as it should. It fixes a problem of trying to enter a non-initialized critical section object and possibly hanging on every boot. (Aleksey Bragin)
  • eventlog.c: When manually creating RPC_UNICODE_STRING/RPC_STRING the Length member does not include the terminating null, but MaximumLength is Length + terminating NULL. Fixes returning handle for Security and System event logs. (Michael Martin)
  • Sync GetNamedSecurityInfoA with Wine. RtlCreateUnicodeStringFromAsciiz is unwanted since the call to GetNamedSecurityInfoW checks for NULL and in this case sets ERROR_INVALID_PARAMETER. (Sylvain Petreolle)
  • ElfrOpenBELW/ElfrOpenELW/ElfrRegisterEventSourceW: MajorVersion and MinorVersion must be 1 as documented on MSDN. ReportEventW: Use RtlInitUnicodeString for ComputerName. (Michael Martin)
  • some small reg fixes (Christoph von Wittich)
  • revert a part of r41093 - A functions should call the W functions instead of the Nt functions (Christoph von Wittich)
  • sync RegQueryValueExA, RegQueryValueA, RegQueryValueW and RegSetValueExA to wine patch by Giannis Adamopoulos <johnyadams at hotmail dot com> See issue #4528 for more details. (Christoph von Wittich)
  • fix tabs/spaces, thanks to Christoph (Sylvain Petreolle)
  • Fix 2 advapi32:reg winetests registry.c:1229: Test failed: Expected ERROR_INVALID_HANDLE or ERROR_BADKEY, got 161 registry.c:956: Test failed: expected ERROR_INVALID_PARAMETER, got 998 by Victor Martinez(vicmarcal AT hotmail DOT com) bug 4527 (Sylvain Petreolle)
  • ReportEventW: Set UNICODE_STRING ComputerName to empty string vice NULL to make rpcrt4 happy. (Michael Martin)
  • ReadEventLogA/ReadEventLogW: Check for lpBuffer for NULL and if so set nNumberOfBytesToRead to zero so that rpcrt4 does not access a NULL buffer. Set pnBytesRead and pnMinNumberOfBytesNeeded variables prior to checking for failure and returning FALSE. (Michael Martin)
  • sync advapi32/cred.c to wine 1.1.19 (Christoph von Wittich)


  • Revert last wine sync for imagelist See issue #4304 for more details. (Dmitry Chapyshev)
  • Sync comctl32 with Wine 1.1.22 (without listview.c. Somebody help to sync listview! Now after sync listview there is a bug, see screenshot (Dmitry Chapyshev)






  • Hack around the system start up Dll Initialization Bug for GdiHandleTable. (James Tabor)
  • restore missing functions, fix build. (James Tabor)
  • Move more printer functions. (James Tabor)
  • Move and add to print driver file for printing functions. (James Tabor)
  • AbortDoc, Clear the correct flags. (James Tabor)
  • Fix typo: AbortProc returns TRUE to continue the print job or FALSE to cancel the print job. (James Tabor)
  • Fix crash in gdi32 bitmap winetest (Dmitry Chapyshev)
  • Add some checks of parametres (Dmitry Chapyshev)
  • Update DrawEscape, thanks Tommy. (James Tabor)
  • Update CancelDC and DrawEscape. (James Tabor)
  • Partially implement CancelDC, DrawEscape Add check of params for EnumObjects, SetMetaFileBitsEx (Dmitry Chapyshev)



  • Stub-implement NhGetInterfaceNameFromDeviceGuid and SetIpForwardEntryToStack. Fixes taskmgr (from windows) crash on network page (Dmitry Chapyshev)
  • Cleanup GetAdaptersAddresses. Add GetIfTable2 and GetIfEntry2 stubs based on janderwald patch (Sylvain Petreolle)
  • add a parameter check to GetAdaptersAddresses stub (fixes a winetest) (Christoph von Wittich)
  • export GetAdaptersAddresses stub (Sylvain Petreolle)
  • Samuel Serapion Fix iphlpapi.dll exports to match Windows XP/2003 one. (Aleksey Bragin)



  • TerminateProcess requires a valid handle Should fix 2 kernel32' winetests (Johannes Anderwald)
  • Fix one "kernel32_winetest mailslot" test (Dmitry Chapyshev)
  • Fix one "kernel32_winetest thread" (Dmitry Chapyshev)
  • Fix 2 kernel32:environ tests. The GetComputerNameEx ComputerNameDnsDomain tests can't succeed if we have no domain, as the function succeeds querying a zero length domain into a zero length buffer. (Sylvain Petreolle)
  • Fix 5 winetests for CreateProcessA/W (Dmitry Chapyshev)
  • Set priority only if PriorityClass != PROCESS_PRIORITY_CLASS_INVALID (Dmitry Chapyshev)
  • SearchPathA() Fix calculation of buffer size (fixes Skype crash) Patch by Mikhail Denisenko (denisenkom AT gmail DOT com) See issue #4526 for more details. (Dmitry Chapyshev)
  • Disable Wow64* functions for x86 build (Dmitry Chapyshev)
  • .spec -> .pspec (Dmitry Chapyshev)
  • a little bit of wine syncing - no real code changes - just to make syncing a bit easier next time (Christoph von Wittich)
  • GlobalReAlloc: SetUserValueHeap and SetUserFlagsHeap after RtlReAllocateHeap. LocalReAlloc: Add missing SetUserFlagsHeap after RtlAllocateHeap. SetUserValueHeap and SetUserFlagsHeap after RtlReAllocateHeap. (Michael Martin)
  • GlobalReAlloc: Pass Flags vice HandleEntry->Flags to RtlSetUserFlagsHeap. (Michael Martin)
  • CreateFileMapping: SetLastError to ERROR_ALREADY_EXISTS for sections that already exists. (Michael Martin)
  • Set error code if directory does not exist NtCreateFile -> NtOpenFile (Dmitry Chapyshev)
  • Sync profile functions with Wine 1.1.20 (Dmitry Chapyshev)
  • Remove RemoveVectoredExceptionHandler() stub from stubs.c, since it is a forward to ntll.RtlRemoveVectoredExceptionHandler. (Aleksey Bragin)
  • fix TzSpecificLocalTimeToSystemTime signature according to Wine & MSDN (Sylvain Petreolle)
  • Fix a problem with loading dlls in Iron See issue #4201 for more details. (Dmitry Chapyshev)
  • Re-simplify CreateProcessW (like r40484) (Dmitry Chapyshev)


  • WSPSelect() Fix checking of params Fix allocation size Tested on Firefox, Downloader, Skype Patch by Mikhail Denisenko (denisenkom AT gmail DOT com) with small changes See issue #4526 for more details. (Dmitry Chapyshev)
  • Fix a bad typo (Cameron Gutman)
  • Return a better status for STATUS_CANCELLED, STATUS_FILE_CLOSED, and STATUS_REMOTE_NOT_LISTENING (Cameron Gutman)
  • Handle STATUS_NETWORK_UNREACHABLE (Cameron Gutman)




  • Dutch translation of NetID DLL by Oscar van Egmond. Bug #4606. (Dmitry Gorbachev)


  • fix dll/win32/netshell/lang/nl-NL.rc:128:4: error: no newline at end of file (Sylvain Petreolle)
  • Netshell: update Dutch translation. Oscar van Egmond (oscar_04*AT*live*DOT*nl), bug #4582. (Dmitry Gorbachev)
  • Sync French translation with English original. (Dmitry Gorbachev)
  • Sync Dutch translation with English original. (Dmitry Gorbachev)



  • Display the correct driver name, when opengl32 fails to load the driver. (Kamil Hornicek)
  • Don't discard valid pixel formats and use flags only for ranking. Patch by Robert Millan (rmh dot reactos at aybabtu dot com) See issue #4384 for more details. (Kamil Hornicek)





  • SetupDiOpenClassRegKeyExW should ERROR_INVALID_CLASS when it fails TODO: NtOpenKey should fail when acessMask == 0 and a registry path is passed (Johannes Anderwald)
  • Fix line breaks Patch by Olaf Siejka (Cameron Gutman)
  • Fix 2 setupapi:devclass tests (Sylvain Petreolle)
  • LayoutFile directive for additional system-supplied INF files is optional, don't fail if it is not found. Fixes 2 tests in setupapi:devclass (Sylvain Petreolle)
  • We know that the function works, so no need to print a FIXME (Hervé Poussineau)
  • Stub CMP_UnregisterNotification Move SETUP_CreateDevicesList declaration to setupapi_private.h (Sylvain Petreolle)
  • fix 7 setupapi misc winetests (Christoph von Wittich)
  • sync SetupGetTargetPathW with wine fixes all setupapi query winetests (Christoph von Wittich)
  • fix 4 setupapi parser winetests (Christoph von Wittich)
  • import SetupEnumInfSectionsA/W from wine fixes setupapi parser winetest crash (Christoph von Wittich)


  • partial sync of shell32 shfldr_netplaces (Christoph von Wittich)
  • sync shell32 shelllink to wine 1.1.23 (Christoph von Wittich)
  • partial sync of shlfileop to wine 1.1.23 (Christoph von Wittich)
  • Show CDROM as CDROM in "Properties for Local Disk" dialog. Marcus Boillat, bug #4552. (Dmitry Gorbachev)
  • Fix bug #4552, introduced in r40826 by me. Patch by Marcus Boillat (ka6602-280*at*online*dot*de). (Dmitry Gorbachev)
  • Update some shell32 icons (Dmitry Chapyshev)
  • Fix build (Hervé Poussineau)
  • No need to create a DC to get the display depth Incidentally, this partly unregresses the /CONSOLE switch if blue.sys is installed (Hervé Poussineau)
  • Fix build (Johannes Anderwald)
  • Implement loading IShellIconOverlayIdentifier Implement retrieving overlay icon (Johannes Anderwald)
  • Convert some stuff to unicode (Dmitry Chapyshev)
  • Fix bug #4483, introduced in r40826 by me. (Dmitry Gorbachev)
  • Load property sheet handlers also from * key Fixes displaying custom file property handlers like for TortoiseSVN (Johannes Anderwald)
  • Pass IDataObject to the folder shell extension init function Fixes displaying property sheet handler extension for directories such as TortoiseSVN (Johannes Anderwald)
  • PropertySheetHandlers for directories are registered under Directory key (Johannes Anderwald)
  • Only call ReleaseStgMedium when IDataObject_GetData has succeeded Fixes explorer crashing on context menu click (Johannes Anderwald)
  • Revert my SHOpenWithDialog changes (Johannes Anderwald)
  • Call OpenWith dialog when no file association is found Partial wine syncAlexandre Julliard <julliard AT winehq.org> shell32: Add implementation of WOWShellExecute. The callback is probably not fully compatible, but apps are not supposed to use that function anyway. Vincent Povirk <madewokherd+8cd9 AT gmail DOT com> shell32: Add a message for opening files with no association. Marcus Meissner <marcus AT jet.franken.de> shell32: Fixed potential buffer overwrite in execute_from_key (Coverity). Vincent Povirk <vincent AT codeweavers DOT com> shell32: Use the NO_UI flag in ShellExecute. In my testing on Windows, I wasn't able to make ShellExecute display any error dialogs. Paul Chitescu <paulc AT voip.null.ro> shell32.dll: Return SE_ERR_FNF if file not found before checking for associations. (Johannes Anderwald)
  • sync SHELL_FindExecutable and SHELL_FindExecutableByOperation with wine 1.1.19 (Christoph von Wittich)
  • Revert as it hides bug 2769 See issue #2769 for more details. (Johannes Anderwald)
  • unbreak build (Johannes Anderwald)
  • Fix copyright message Rob Shearman <rob AT codeweavers DOT com> shell32: Fix incorrect character count passed into RegEnumKeyExW in CreateDesktopEnumList. (Johannes Anderwald)
  • Fix window styles for IDD_SHELL_ABOUT_AUTHORS Fixes displaying shell about dialog (Johannes Anderwald)




  • Fix build (Dmitry Chapyshev)
  • ChangeDisplaySettingsExA: don't leak the memory for the converted DEVMODEW (Timo Kreuzer)
  • Verify user32 export list with Win 2k3 R2 (Dmitry Chapyshev)
  • partial wine sync (Christoph von Wittich)
  • add missing newline at eof (Christoph von Wittich)
  • don't close a dialog with <Return> when the OK button is disabled (Christoph von Wittich)
  • export DisplayExitWindowsWarnings and DisableProcessWindowsGhosting (Christoph von Wittich)
  • dmDriverExtra is zeroed before the call to ChangeDisplaySettingsEx. (James Tabor)
  • ChangeDisplaySettingsA and ChangeDisplaySettingsW should reset dmDriverExtra to 0. (Sylvain Petreolle)
  • Remove an unused variable that survived the Marletting. (Dmitry Gorbachev)
  • sync LISTBOX_DeleteItem and LISTBOX_RemoveItem with wine 1.1.22 (Christoph von Wittich)
  • better question icon in tango look (as long as tango icon set doesn't provide this icon) source in reactos/media/graphics (Matthias Kupfer)
  • Change some icons to Tango Update oic_sample.ico (Dmitry Chapyshev)
  • continue "marletting" use marlett font for scrollbar control TODO: scrollbar size grip with marlett (Matthias Kupfer)
  • Improved fix for edit control context menu. Send appropriate message based on return value of TrackPopupMenu and remove handling of WM_MENUSELECT as its no longer needed. Patch sent to wine-patches AT winehq.org. (Michael Martin)
  • edit.c: Add TPM_RETURNCMD flag to TrackPopupMenu so that WM_COMMAND messages are not sent to the edit control. Use WM_MENUSELECT vice WM_COMMAND to determine which clipboard message to send. Fixes vb apps edit context menu and maybe others. Bug #4404 (Michael Martin)
  • Revert 40628 as it breaks others applications menus. (Michael Martin)
  • menu.c: Only send WM_COMMAND messages to the top parent window. edit.c: Use WM_MENUSELECT vice WM_COMMAND to determine which clipboard message to send. Fixes vb apps edit context menu and maybe others. Bug #4404 (Michael Martin)
  • Don't crash copying from a null pointer in a non client size calculation Several thousand more user32 win winetests should be executed now (Gregor Schneider)




  • Sync wininet with Wine 1.1.22. Tested on Firefox 2.0 and Downloader (Dmitry Chapyshev)


Regression tests



  • Define noreturn attribute for KeBugCheck/Ex in a msvc-compatible way (Stefan Ginsberg)
  • Define UNREFERENCED_PARAMETER for cmlib when built as host and reapply 41455. (Stefan Ginsberg)
  • Fix build (Johannes Anderwald)
  • Make ks.h and drmk.h msvc compatible (Johannes Anderwald)
  • Use RBUILD_PIPE_CPP in RBUILD_WRC_RULE, instead of hardcoding GCC (KJK::Hyperion)
  • Revert 41455 (KJK::Hyperion)
  • Revert 39470, reapplying the __ROS_LONG64__ check for INT_PTR and UINT_PTR on 32-bit. (Stefan Ginsberg)
  • Do not pass gcc and ld flags to other tools (Stefan Ginsberg)
  • Bug 4620: Incorrect code page output in shutdown.exe (Russian locale) by John White Polish Translation Updates by Maciej Bialas (Daniel Reimer)
  • Fix the version data in the registry to match what the kernel reports. (Ged Murphy)
  • Bug 4610: Dutch translation for Solitaire by reFly <wouterdevlieger AT gmail DOT com> Bug 4619: Japanese translation update for syssetup and downloader by Tomoya Kitagawa (Daniel Reimer)
  • mmreg uses for all structures contained byte-aligned packing (Johannes Anderwald)
  • Miscellaneous Visual C++ compilation fixes modified, Fixed declarations of _InterlockedDecrement16 and _InterlockedIncrement16 Fixed declarations of __readcr0, __readcr2, __readcr3 and __readcr4 for x86 Implement __readdr and __writedr for x86 too Added missing semicolon modified, Use Visual C++-compatible attribute placement modified, Get rid of useless assembly, replace with __writefsdword (it's still useless), Disable Visual C++ warning C4733 ("Inline asm assigning to 'FS:0' : handler not registered as safe handler") for mingw_wmain, Silence a warning, Disable Visual C++ warning C4711 ("function 'function' selected for inline expansion") globally, Fix Visual C++ compiler rules to emit an uniquely named PDB for each object file (KJK::Hyperion)
  • For now, only pass the -I, -D and -U preprocessor options to gas (KJK::Hyperion)
  • Ported <math.h> to Visual C++ Fixed some miscellaneous stupidity. I see Arch has been committing to MinGW-W64 too (KJK::Hyperion)
  • Do not lie about compiler optimizations. (Dmitry Gorbachev)
  • In Win32 DBG is defined to 0 for a non-debug build and to 1 for a debug build. In ReactOS we do this slightly different: DBG is correctly defined to 1 for debug, but not defined at all on non-debug/release build. Because gcc is awesome we can then check for debug compilation with both #ifdef DBG and #if DBG (error free! yay gcc!), and so we have mixed usage all over the tree. Fix this by defining DBG on non-debug build too and deprecate all usage of #ifdef DBG. (Stefan Ginsberg)
  • Disable some unavoidable warnings in Visual C++. Check that defines are defined before testing their value modified. Visual C++ doesn't support functions without a prototype anymore, and RPC_AUTH_KEY_RETRIEVAL_FN has a documented prototype anyway modified include/psdk/winnt.h WIN32_WINNT -> _WIN32_WINNT (KJK::Hyperion)
  • Free the allocated buffer in printWindowsError in tftpd service. (Kamil Hornicek)
  • Sync quartz with Wine 1.1.23. (Kamil Hornicek)
  • Our headers suck so hard. More Visual C++ compatibility (KJK::Hyperion)
  • Replace "VOLATILE" with "volatile" (Stefan Ginsberg)
  • Add Symbol font from Wine (Dmitry Chapyshev)
  • Add ntlanman.dll (not implemented) (Dmitry Chapyshev)
  • What the hell, Arch Blackmann? <windef.h>, <winbase.h> and <winnls.h> are not meant to be included directly. Include <windows.h> instead modified drivers/video/font/ftfd/rosglue.c Move standard C includes before Windows includes, so the required types are defined beforehand. Re-add Visual C++ support va_list is not a built-in type, it does not belong in _mingw.h Do not include intrin.h (screw you, Arch) Removed definition of _USE_32BIT_TIME_T ("ROS HACK!"). Ported our intrin.h to Visual C++. ROS HACK!s belong in the project definition. Compiler-specific include directories (KJK::Hyperion)
  • Imported dmusic from Wine 1.1.23. (Kamil Hornicek)
  • add missing include guard (Christoph von Wittich)
  • Add needed defines for Vista network api (Sylvain Petreolle)
  • Fix bug #4558 ("buildno" is not compatible with SVN 1.6). (Dmitry Gorbachev)
  • Revert r41389 (Dmitry Chapyshev)
  • Add job limit flags (based on MSDN info) (Dmitry Chapyshev)
  • Start services.exe and lsass.exe with above normal priority class (Dmitry Chapyshev)
  • PnpInit: Allocate IopBusTypeGuidList from nonpaged pool as it contains a fast mutex. MsqCreateMessageQueue: Allocate the message queue from nonpaged pool as it contains a mutex. (Stefan Ginsberg)
  • Add IoGetDeviceAttachmentBaseRef, IoGetDiskDeviceObject and IoGetLowerDeviceObject. (Michael Martin)
  • Fix Visual C++ build (KJK::Hyperion)
  • Add PsSetProcessPriorityByClass() declaration to NDK. (Aleksey Bragin)
  • Don't feed GCC options in MSC Minor detection fixes Support for the Microsoft compiler is now fully functional: now get off your grotesquely fat asses and start fixing code so that it compiles with it TODO: make it fully functional for real (PCH, full dependencies); Microsoft linker support (KJK::Hyperion)
  • Fix the cheerleader, fix the build (KJK::Hyperion)
  • Actually set RBUILD_CL_PATH and RBUILD_LINK_PATH (KJK::Hyperion)
  • Moved linker and compiler rules in separate files Renamed compiler rules to more generic names New compiler rules for dependencies and preprocessor modes Rules for Microsoft C/C++ Compiler Linker rule file stubs. All elements now support "compilerset" and "linkerset" conditional attributes (KJK::Hyperion)
  • msc_helper renamed to rbuild_helper, because it could be useful to more than just Visual C++. Allow rbuild_helper to override any environment variable, given an override prefix (e.g., %VAR% will be replaced by %<override prefix>VAR%). Build rbuild_helper by default (KJK::Hyperion)
  • Dhcp HostName isn't mandatory. Fixes nat networking in vbox. (Sylvain Petreolle)
  • Clean up RtlSecureZeroMemory (Stefan Ginsberg)
  • ElfrReportEventW: Silence debugging thats no longer needed as this API is now implemented. (Michael Martin)
  • Fix no-op code for UNIX hosts (KJK::Hyperion)
  • From now on, the MinGW back-end will also support the Microsoft command line C/C++ compiler (cl) and incremental linker (link). Support is currently limited to detecting the tools, and invoking them with the wrong arguments. Only Windows hosts are currently supported added tools/rbuild/backend/mingw/mstools_detection.cpp. Auto-detection of Microsoft compiler and linker: if rbuild finds them in the path, it will use those. Otherwise, it will look for the highest version installed by any of the supported Microsoft products. Supported Microsoft products are Visual Studio 2005 and higher, Visual C++ Express and Windows DDK version 6001 and higher. Optimizing versions of the compiler will take precedence over "standard edition" compilers, regardless of version number. New command line options for rbuild to choose the tools set for the MinGW back-end: -Mc<compiler set>, -Ml<linker set>, -M<build tools set>. Defaults to -Mgnu, so that support for Microsoft tools has to be opted into (KJK::Hyperion)
  • revert a part of r41339 as it break ppc port (Christoph von Wittich)
  • fix definition of LUID (Christoph von Wittich)
  • sync kernel32 lzexpand to wine 1.1.23 (Christoph von Wittich)
  • sync urlmon and winhttp with wine 1.1.23 (Christoph von Wittich)
  • sync msiexec to wine 1.1.23 (Christoph von Wittich)
  • update README.WINE (Christoph von Wittich)
  • formatting fixes update README.WINE (Christoph von Wittich)
  • fix build (Christoph von Wittich)
  • sync shlguid.h with wine 1.1.23 (Christoph von Wittich)
  • sync riched20 and riched32 with wine 1.1.23 (Christoph von Wittich)
  • update TOKEN_INFORMATION_CLASS enum (Christoph von Wittich)
  • import SHGetNewLinkInfoA/W from wine (Christoph von Wittich)
  • forgot this file :/ (Christoph von Wittich)
  • Use the dll runtime library. Fixes building taskmgr with VS and probably others (Ged Murphy)
  • sync user32 listbox and combobox to wine 1.1.22 (Christoph von Wittich)
  • update README.WINE (Christoph von Wittich)
  • sync user32 edit and exticon to wine 1.1.22 (Christoph von Wittich)
  • sync user32 button and static to wine 1.1.22 (Christoph von Wittich)
  • Add USB keyboard and mouse support to ReactOS. See issue #1041 for more details. (Aleksey Bragin)
  • Remove KeBugCheckWithTf() hack, fix VBEResetHw(). Stefan Ginsberg, bug #4581. (Dmitry Gorbachev)
  • Bug 4567: Italian translation updates by Paolo Devoti (Daniel Reimer)
  • Estonian translations by Andres Traks (anthrax11*AT*hot*DOT*ee), bug #4580. (Dmitry Gorbachev)
  • Use MmFreeContiguousMemorySpecifyCache to free memory allocated by MmAllocateContiguousMemorySpecifyCache in HalAllocateCommonBuffer (Cameron Gutman)
  • Include initguid.h so the GUIDs actually get initialized (Cameron Gutman)
  • Use DECLSPEC_SELECTANY so multiple definitions will not cause a problem (Cameron Gutman)
  • Add GUID_DEVINTERFACE_NET (Cameron Gutman)
  • Build tool to invoke Microsoft tools, overriding the %PATH% variable and optionally filtering out the name of the file being compiled Will be used by the Visual C++ support for rbuild (KJK::Hyperion)
  • Some internal libraries I use in code I haven't committed yet (KJK::Hyperion)
  • Fix a typo Found by Fireball (Cameron Gutman)
  • Set default kb layout for Russian language to English (Dmitry Chapyshev)
  • eventlog.h: Add LIST_ENTRY to EVENTSOURCE structure to track handles. ElfCreateEventLogHandle: Modify return type to PEVENTSOURCE and add BOOL parameter to determine whether handle is being created or opened as behavior differs between the two. Added ElfGetEventLogSourceEntryByHandle for looking up the handle. Implement EventLog api's ElfrOpenELW, ElfrRegisterEventSourceW, ElfrReadELW, ElfrReportEventW, ElfrOldestRecord, ElfrCloseEL and ElfrDeregisterEventSource. LogfWriteData: Remove unnecessary debugging. (Michael Martin)
  • Bug 4555: slovak translation update by Mario Kacmar Bug 4562: Romanian translation patch by Dimitriu Petru (Daniel Reimer)
  • Delete entries for removed modules (os2, posix, rosky and vms). (Aleksey Bragin)
  • Add missing c_424.nls. (Aleksey Bragin)
  • Switch to using UniATA as a default storage driver. Makes it possible to use some SerialATA controllers/harddisks and overcome 8Gb HDD limitation. See issue #1262 for more details. (Aleksey Bragin)
  • Do not assign twice to the same variable. (Dmitry Gorbachev)
  • Don't use a dereferencing operator when incrementing the pointer here. Doesn't change the actual logic, but should avoid confusions ;-) See issue #4557 for more details. (Colin Finck)
  • new rosdbg icon (Matthias Kupfer)
  • define PORT_MAXIMUM_MESSAGE_LENGTH (Johannes Anderwald)
  • Fix warnings that are issued by new GCC versions. (Dmitry Gorbachev)
  • Add more missing structures to winddiui.h. (James Tabor)
  • Implementation of gdi printing support. Work in progress. Added StartDocW plus others and fixed some defines. Found the initialization bug again, yes it was never fixed, but worked around. The debug spam has a purpose, just read it. (James Tabor)
  • Add definition of NDIS_TASK_OFFLOAD_HEADER (Cameron Gutman)
  • Make memcpy a duplicate of a memmove (confirmed by testing), there is a dependency on this behaviour. One less "msvcrt_winetest.exe string" failure. (Aleksey Bragin)
  • Bug 4535: Dutch translation for userinit by wouterdevlieger AT gmail DOT com Bug 4539: slovak translation update by Mario Kacmar Bug 4540: Romanian translation patch by Petru Dimitriu (Daniel Reimer)
  • Implementation of gdi printing support. Work in progress. Losts of updates, including missing functions in the winspool spec file. (James Tabor)
  • Implement SetAbortProc and halfplement AbortDoc. (James Tabor)
  • Autoregister ddraw and dplayx. (Kamil Hornicek)
  • Implement GdiConvertAndCheckDC and Abort callback support routine. (James Tabor)
  • Make __CRT_INLINE always inline, use ceil instead of ceill. Fixed linking when compiling with -O0, it should now work. (Dmitry Gorbachev)
  • Fix buffer overflow, add some debug prints. (Dmitry Gorbachev)
  • Fix compilation of RBuild. Bug #4415. (Dmitry Gorbachev)
  • add some registry values req. by user32 sysparams - patch by encoded (Christoph von Wittich)
  • Update headers (Dmitry Chapyshev)
  • Move Process Information structure back into kernel space. We use client information via TEB to provide a pointer for user space as a reference pointer. (James Tabor)
  • Implement internal function LogfDeleteOffsetInformation. LogfWriteData: Fix record overwriting when the log file has reached MaxSize. Previous implementation was incorrect. LogfInitializeExisting: Add support for log files that have had old records overwritten with new records. (Michael Martin)
  • Fix NtUserVkKeyScanEx to support current thread keyboard layout or use the one provided by handle. See bug report 4269 and the related bug report 4272. (James Tabor)
  • fix log2lines build (Sylvain Petreolle)
  • Add missing parameter to readme. (Ziliang Guo)
  • eventlog.h: Add CurrentRecord to EventSource struct as each EventLog handle must keep track of current record. LogfInitializeNew/LogfInitializeExisting: Set LogFile MaxSize to just under 5k and add a FIXME to read value from registry. TODO. LogfReadEvent: Change return value to DWORD so that errors can be passed back and last error can be set from caller(advapi32). Change RecordNumber parameter to pointer so that it can be returned and saved in rpc's handle for the EventLog. RecordNumber of 0 can only be used with flag EVENTLOG_SEQUENTIAL READ. Set BytesRead and BytesNeeded to 0 as caller expects those values for any failure. LogfWriteData: Implement record overwriting when the LogFile has reached MaxSize. Implement LogfGetCurrentRecord. Code not active yet, will be with upcoming changes to base\services\eventlog\rpc.c. (Michael Martin)
  • sync msi with wine 1.1.21 (Christoph von Wittich)
  • GetMouseMovePointsEx is a direct call to kernel space. Move and sorted initial code. (James Tabor)
  • Fix for wine tests. Added wine QS flag. (James Tabor)
  • Romanian translations by Petru Dimitriu. Bug #4518. (Dmitry Gorbachev)
  • Cleanup Real/GetInputState. (James Tabor)
  • Play default logon sound when logging on Due to unknown issues, this only works at the 2nd login ATM (Johannes Anderwald)
  • add ReactOS_LogOn.wav to bootcd Created by Davy Bartoloni (Johannes Anderwald)
  • Add a logon sound 1/2 (Johannes Anderwald)
  • Hardcoded paths unneeded anymore See issue #4201 for more details. (Dmitry Chapyshev)
  • Update headers (Dmitry Chapyshev)
  • Fix NDIS 3.0 miniport characteristics based on MSDN documentation Add NDIS 5.1 miniport characteristics also based on MSDN documentation (Cameron Gutman)
  • Add definition of NDIS_DEVICE_PNP_EVENT (Cameron Gutman)
  • Output type when module is a program (Johannes Anderwald)
  • first attempt at fixing log2lines build (Sylvain Petreolle)
  • Correct number of parameters for IDirect3DTexture methods. (Kamil Hornicek)
  • Restore the old loopback implementation Should fix the buildbot test hang (Cameron Gutman)
  • Set up the TCP interface data as needed in TCPFindInterface (Cameron Gutman)
  • timer_queue_thread_proc: Add missing and required RtlExitUserThread before function exit. Fixes crashing of kernel32_winetest for sync. (Michael Martin)
  • Sync wined3d, d3d8, d3d9, ddraw with Wine 1.1.21 (Kamil Hornicek)
  • imported the MT snapshot of the GPL tftp-server for win32 from sourceforge. Minor changes such as formatting and renaming the files, totally untested except for building, will be used later to serve up ReactOS images to PXE boot (Steven Edwards)
  • Wait_thread_proc: Pass the correct value WaitAny vice FALSE to NtWaitForMultipleObjects. Fixes INFINITE wait when running kernel32_winetest for thread. (Michael Martin)
  • Migration changes from W32THREADINFO to use ThreadInfo for kernel space and user space pointer reference, and use ClientInfo from TEB for user space. Next change will have the full removal of W32THREADINFO. (James Tabor)
  • Fix PCH rule for C++ (KJK::Hyperion)
  • next time I'll copy the changes properly (Steven Edwards)
  • minor SunOS fix (Steven Edwards)
  • Use FindOnLinkInterface to get the interface Return NULL if TCPContext is NULL (which means we don't have a valid IP address) Should fix a crash when using multiple NICs but they still won't work (DHCP bug?) (Cameron Gutman)
  • Add paint to bootcd (Cameron Gutman)
  • Norwegian translation updates from bug 4489 by LMH1. (Sylvain Petreolle)
  • Remove client thread information from w32 thread information. (James Tabor)
  • Add IShellIconOverlayIdentifier interface (Johannes Anderwald)
  • SetWindowLong -> SetWindowLongPtr, GetWindowLong -> GetWindowLongPtr (for 64-bit compatible, see note in MSDN) Part 4/x (Dmitry Chapyshev)
  • SetWindowLong -> SetWindowLongPtr, GetWindowLong -> GetWindowLongPtr (for 64-bit compatible, see note in MSDN) Part 3/x (Dmitry Chapyshev)
  • Update Romanian translations. Petru Dimitriu, bug #4482. (Dmitry Gorbachev)
  • Sync headers with Wine 1.1.21 (Dmitry Chapyshev)
  • Sync Tahoma with Wine 1.1.21 (Dmitry Chapyshev)
  • Add IID_IAllocatorMXF guid Add undef macro (hint Stefan) Thanks Usurp for telling (Johannes Anderwald)
  • Fix interface definition for IMiniportMidi Add macros to avoid warnings (Johannes Anderwald)
  • Add / update Romanian translations, Petru Dimitriu, bug #4452. Update Norwegian translations, L. M. Hambro, bug #4477. Silence warnings in shell32 translations, bug #4090. (Dmitry Gorbachev)
  • Implement ReplyMessage and kernel support for InSendMessage and GetMessageTime. (James Tabor)
  • Add xinput1_1, xinput1_2, xinput1_3, xinput9_1_0 from Wine (needed for some games) (Dmitry Chapyshev)
  • Try fix boot (Johannes Anderwald)
  • Sync headers with Wine 1.1.20 (Dmitry Chapyshev)
  • Move INTERFACE_TYPE, IO_RESOURCE_DESCRIPTOR, IO_RESOURCE_REQUIREMENTS_LIST, CM_PARTIAL_RESOURCE_DESCRIPTOR to wdm.h Fix alignment of CM_PARTIAL_RESOURCE_DESCRIPTOR Remove typedef of PEX_RUNDOWN_REF_CACHE_AWARE, it already exists in wdm.h (verified with WinDDK7) Fix build 1/2 (Johannes Anderwald)
  • Add definition of IOCTL_NDIS_QUERY_GLOBAL_STATS (Cameron Gutman)
  • Fix definition of POINTER_ALIGNMENT for 64-bit. Problem reported by Brian Hawley at mingw-w64: http://sourceforge.net/forum/forum.php?thread_id=3163052&forum_id=723797 (Stefan Ginsberg)
  • Add some defines. Fix build for comdlg32/comctl32 (Dmitry Chapyshev)
  • Sync ole32 and oleaut32 with Wine 1.1.20 (Dmitry Chapyshev)
  • Add IPortWaveRT, IPortWaveRTStream, IMiniportWaveRTStream, IMiniportWaveRTStreamNotification, IMiniportWaveRT interface Add KSAUDIO_POSITION, KSRTAUDIO_HWLATENCY, KSRTAUDIO_HWREGISTER structure (Johannes Anderwald)
  • Unbreak linking ntoskrnl (Thomas Bluemel)
  • Make vectored exceptions thread-safe (Thomas Bluemel)
  • Bug 4449: Italian translation updates by Paolo Devoti Bug 4445: Language resource update by Jingjing Fu (Daniel Reimer)
  • Implement RtlDecodePointer and remove respective redefining hack from vectoreh.c. (Aleksey Bragin)
  • Try to fix build (Dmitry Chapyshev)
  • Implement _wfreopen, _y0, _y1, _yn Partially implement _j0, _j1, _jn All from Wine. (Dmitry Chapyshev)
  • add missing definition for TzSpecificLocalTimeToSystemTime (Sylvain Petreolle)
  • Update log2lines tool by J. Roeloffzen. Bug #4342. Move it to where raddr2line lives now. (Dmitry Gorbachev)
  • Add reg key tree NetworkProvider under CurrentControlSet\Control\. For now differ from windows by using an empty string for ProviderOrder value. Fixes bug #3987. (Michael Martin)
  • Implement rsym for amd64. (Timo Kreuzer)
  • Bug 4418: Simplified chinese language resource update by Jingjing Fu Bug 4426: ReactOS translation update patch by Dimitriu Petru Bug 4427: Bulgarian translation of ReactOS by РЎРЎРўР_Р_Р�Р' Bug 4433: Translate Patch, Dutch for access.cpl by Jan Roeloffzen Bug 4436: Translate Patch, Dutch for mmsys.cpl, timedate.cpl by Jan Roeloffzen Bug 4437: Translate Patch, Dutch for taskmgr.exe by Jan Roeloffzen (Daniel Reimer)
  • Add a "regtest.cmd" for running other commands (here "ipconfig") before starting rosautotest and call "start rosautotest" to run it asynchronously and let Explorer load completely Set svn:eol-style for "unattend.inf" to CRLF, this file is a target one, which should also use target line-endings Fix typo in syssetup debug print (Colin Finck)
  • sync mshtml and shdocvw with wine 1.1.20 (Christoph von Wittich)
  • Fix build (Cameron Gutman)
  • Remove BINARY_COMPATIBLE concept We should always use NDIS functions (Cameron Gutman)
  • sync msxml3 with wine 1.1.20 (Christoph von Wittich)
  • Fix warning Fix KSALLOCATOR_FRAMING structure (Johannes Anderwald)
  • Romanian translations by Petru Dimitriu (petrimetri-at-gmail-dot-com), bug #4422. (Dmitry Gorbachev)
  • Patch from Petru Dimitriu (bug #4416): add Romanian translations of explorer-new, notepad, solitaire, rundll32, shell32; update translations of write, calc. (Dmitry Gorbachev)
  • Update Norwegian translations (translator: Lars Martin Hambro, bug #2482, bug #4325). This patch was already applied in r40315, but mistakenly reverted in r40564. Sorry. (Dmitry Gorbachev)
  • Implement ArcGetTime() and ArcGetRelativeTime() (Hervé Poussineau)
  • Update log2lines tool. Patch by Jan Roeloffzen, with some changes. Bug #4342. (Dmitry Gorbachev)
  • remove wine's wintab32 which relies on x11 drivers (Christoph von Wittich)
  • Bug 4396: Slovak Translations Update by Mario Kacmar (Daniel Reimer)
  • fix some msvcrt string winetests (Christoph von Wittich)
  • Fix a typo (Cameron Gutman)
  • import strcpy_s from wine (Christoph von Wittich)
  • Add "log2lines" tool by Jan Roeloffzen. Bug #4342. Fix indentation in rsym.h. (Dmitry Gorbachev)
  • Add Font Embedding Dll (it is necessary for Iron and Chrome) (Dmitry Chapyshev)
  • Revert part of 40626. (James Tabor)
  • Add more EMF records types. (James Tabor)
  • Supersedes r40538, r40539; RosBE bug fixed with a RosBE-specific hack (-nostdinc removed from BUILTIN_CPPFLAGS in rules.mak) Rbuild rationalization commit, umpteenth of infinite. Almost all build rules moved to a makefile.auto include (rules.mak). Size of makefile.auto reduced to about half The new rules correctly sort includes, defines and flags in priority order (built-in, project, module type, module, source file) The new rules don't duplicate flags anymore. Flag sets are defined once, as makefile variables, and then referred to by variable name Compiler-specific flags, includes and defines can now be set, for almost all compilers and tools <compilerflag>, <define> and <include> have a new "compiler" attribute, containing a comma-separated list of compilers the directive applies to C++ compiler renamed to "cxx", "cpp" now correctly refers to the C preprocessor (or work-alike, built-in preprocessors) Drop "overridable" attribute for <define>, as it never worked right New <redefine> tag: works like <define>, but undefines the variable before defining it. Several warnings suppressed thanks to it Slightly changed rule for resource file; conversion to object file now a separate phase that prints "[CVTRES]" Slightly changed definition of ${gas} Echo "[AS]" instead of "[GAS]" Echo "[RC]" for wrc . Now that the correct include paths are passed to the resource compiler, make headers more resource compiler-friendly. Disable exceptions and RTTI for kernel mode C++ code. Goodbye _DISABLE_TIDENTS, __USE_W32API (KJK::Hyperion)
  • More error checks. Bug #4393. (Dmitry Gorbachev)
  • Don't fail with Chinese language (bug #4393). Please also fix 0.3.9. (Dmitry Gorbachev)
  • Don't directly call NtPlugPlayControl from setupapi, and replace it by RPC As a bonus, setupapi is now (theorically) able to restart devices on remote machines See issue #4400 for more details. (Hervé Poussineau)
  • Partly implement SERVICE_CONFIG_FAILURE_ACTIONS in RQueryServiceConfig2W (Johannes Anderwald)
  • Only trigger the installer thread after we got the user token. Fixes a race condition mostly occuring under real hardware. See issue #4390 for more details. (Colin Finck)

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