Difference between revisions of "ChangeLog-0.3.5"

From ReactOS Wiki
Jump to: navigation, search
(Translations)
m (rename template, remove additional category)
 
(197 intermediate revisions by 20 users not shown)
Line 1: Line 1:
'''This is a work in progress!!!'''
+
This is the changelog for ReactOS™ [[0.3.5|version 0.3.5]] (released 30 June, 2008), 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.4|version 0.3.4]] (released 22 January, 2008).
 
 
'''Please consider the following when adding a change: <ul><li>Write a REAL NAME of the person, no E-Mail addresses, no IRC nicks, etc. This is an official paper!</li><li>Reference bug numbers at the end of the change, in braces, like (your name, bug #2373)</li><li>Preserve an alphabetical order for applications and libraries :-)</li></ul>'''
 
 
 
 
 
 
 
This is the changelog for ReactOS™ [[0.3.5|version 0.3.5]] (released *classified*), an open-source operating system designed to be binary executable- and device driver-compatible with Microsoft™ Windows NT™ and subsequent Microsoft operating systems such as Windows 2000™ and Windows XP™. ReactOS is written by the ReactOS development team, and the last previous version of ReactOS was [[ChangeLog-0.3.4|version 0.3.4]] (released 22 January, 2008).
 
  
 
= General =
 
= General =
 
== Generic 0.3.5 Changes ==
 
== Generic 0.3.5 Changes ==
 +
* Deleted old ext2 driver and merged the ext2 branch ([[Hervé Poussineau]], [[Pierre Schweitzer]])
 +
* Set all FSD (except fastfat.sys) start to 0x4 to let fs_rec.sys doing its job (and matching with Windows...) ([[Pierre Schweitzer]])
 +
* Replace some .def files by .spec files ([[Hervé Poussineau]])
 +
* Replace most of .mak files by .rbuild files ([[Hervé Poussineau]])
 +
* Create definition files per architecture ([[ReactOS Portable Systems Group]])
 +
* Remove all occurrences of the W64 macro. The __w64 attribute is deprecated beginning with MSVC 2008. ([[Colin Finck]])
 +
* Define KUSER_SHARED_DATA as architecture specific ([[ReactOS Portable Systems Group]])
 +
* Define intrinsics for ARM ([[ReactOS Portable Systems Group]])
 +
* Make FORCEINLINE do what it should ([[ReactOS Portable Systems Group]])
 +
* Define ARM Assembly ABI and rewrite ARM assembly files to match ([[ReactOS Portable Systems Group]])
 +
* Define cache and ID registers in CP15 ([[ReactOS Portable Systems Group]])
 +
* Move documented types into ARM specific DDK and SDK headers ([[ReactOS Portable Systems Group]])
 +
* Add fonts for usage by BLUE ([[Christoph von Wittich]])
 +
* Add code page 865 for use by Nordic fonts ([[Christoph von Wittich]])
 +
* Import the gr8x8 PSF from Debian ([[Christoph von Wittich]])
 +
* Added Turkish font from Debian ([[Christoph von Wittich]])
 +
* Add code page 775 by Vytis Girdžijauskas ([[Christoph von Wittich]])
 +
* Add code page 852 by Olaf Siejka ([[Christoph von Wittich]])
 +
* Add doskey to bootcd ([[Christoph von Wittich]])
 +
* Various fixes in preparation for compiler upgrade ([[Christoph von Wittich]])
 +
* Time zone update to sync with Windows time zone data by Vytis Girdžijauskas ([[Matthias Kupfer]], bug #3084)
 +
* Create official ARM include directory and move the ARM DDK there ([[ReactOS Portable Systems Group]])
 +
* Add installpath for ARM image ([[ReactOS Portable Systems Group]])
 +
 
== Translations ==
 
== Translations ==
* Begin German translation of kernel32 errorcodes ([[Timo Kreuzer]])
+
* Begin German translation of Kernel32 errorcodes ([[Timo Kreuzer]])
* Update German translation of kernel32 errorcodes ([[Michael Fritscher]])
+
* Update German translation of Kernel32 errorcodes ([[Michael Fritscher]])
* Italian translation updates for usetup, winehlp, shell32, shellext, syssetup, desk, main, mmsys, user32, appwiz-new, joy, input, downloader, vgafonteditor (([[Paolo Devoti]]) - devotip@tiscali.it / Bug 3005, 3051, 3883, 3105, 3119, 3136)
+
* Convert some Usetup translations to OEM charset, so that they're displayed correctly ([[Colin Finck]])
* Ukrainian translation updates for shell32, downlaoder, vgafontedit, mmsys, devmgr, RosBE Config, desk, usetup, setup, cmd, appwiz-new (([[Artem Reznikov]]) - temarez@yandex.ru / Bug 3020, 3038, 3039, 3044, 3049, 3070, 3089, 3106)
+
* Greek translation Update for Cmd, Format, Fdebug, Input.cpl, Joy.cpl, Sysdm.cpl ([[Apostolos Alexiadis]], bugs #3152, #3161)
* Bulgarian translation Updates for xcopy, control, notepad, wimhelp, usetup, format, access, netid, rasapi, serialui, shdocvw, syssetup, vmwinst, appwiz-new, kbdbgt (by ??? - sstpr@narod.ru / Bug 3041, 3092, 3093)
+
* Added/updated Italian translation for Magnify, Mstsc ([[Carlo Bramini]], bugs #3098, #3210, #3245)
* slovak translation updates for downloader, usetup, buuterflies, mazescr, roscalc, write, packmgr, msgina, setupapi, wnhelp, powercfg, mstsc, reactos, usetup, explorer, fdebug, appwiz, desk, input, joy, mmsys, sysdm, netid, newdev, shdocvw, shell32, syssetup, ntvdm (([[Mario Kacmar]]) - kario@szm.sk / Bug 2988, 2992, 2993, 3021, 3033, 3053, 3110)
+
* Added/updated Italian translations for Appwiz-new.cpl, Desk.cpl, Downloader, Input.cpl, Joy.cpl, Main.cpl, Mmsys.cpl, Shell32, Shellext, Syssetup, User32, Usetup, Vgafontedit, Winhelp, xcopy ([[Paolo Devoti]], bugs #3005, #3051, #3883, #3105, #3119, #3136, #3231, #3275)
* Polish translation Updates for shellext, blankscr, butterflies, cylfrac, matrix, mazescr, starfield, vgafontedit, downloader, fontview, imagesoft, magnify, packmgr, roscalc, systeminfo, write, mmsys, desk, usetup, appwiz-new, input (([[Olaf Sjeka]]) - olaf_siejka@o2.pl / Bug 3014, 3037, 3043, 3047, 3066, 3088)
+
* Added/updated Ukrainian translations for Appwiz-new.cpl, Cmd, Desk.cpl, Devmgr, Downloader, Mmsys.cpl, Reactos (Setup tool under Windows), RosBE Config, Shell32, Usetup, Vgafontedit ([[Artem Reznikov]], bugs #3020, #3038, #3039, #3044, #3049, #3070, #3089, #3106)
* Spanish translation Updates for notepad, regedit, winhelp, intl, sysdm, timedate, devmgr, downloader, more, wordpad, usetup, vmwinst, newdev, shell32, shellext (([[Marc Piulachs]]) - remialdo@gmail.com / Bug 2984, 2986, 2994)
+
* Added/updated Bulgarian translations for Access.cpl, Appwiz-new.cpl, Control, Desk.cpl, Downloader, Fontview, Format, Imagesoft, Kbswitch, Magnify, Mazescr, Mmsys.cpl, Mstsc, Ncpa.cpl, Netid, calc, kbswitch, Notepad, Rasapi, Serialui, Shdocvw, Shell32, Sol, Syssetup, Usetup, Vgafontedit, Vmwinst, WineMine, Winhelp, Write, Xcopy ([[Станев]], bugs #3041, #3042, #3092, #3093, #3173, #3174, #3192, #3204)
* Lithuanian translation Updates for control, mstsc, winhelp (by [[Vytis Girdžijauskas]] - cman@cman.us / Bug 2991)
+
* Added/updated Slovak translations for Appwiz.cpl, Butterflies, Desk.cpl, Downloader, Explorer, Fdebug, Input.cpl, Joy.cpl, Mazescr, Mmsys.cpl, Msgina, Mstsc, Ncpa.cpl, Netid, fontview, dxdiag, vmwinst, userinit, win32csr, Newdev, Ntvdm, Packmgr, Powercfg.cpl, Reactos (Setup tool under Windows), Roscalc, Setupapi, Shdocvw, Shell32, Sysdm.cpl, Syssetup, magnify, access, intl, mmsys, kbswitch, Usetup, Winhelp, Winlogon, Write, Usetup ([[Mário Kačmár]], bugs #2988, #2992, #2993, #3021, #3033, #3053, #3110, #3198, #3215, #3284)
* Czech translation Update for solitaire, cacls, more, find, cacls, charmap, more, solitaire, logoff, mmc, notepad, usetup (by ??? - radekliska@gmail.com / Bug 3078, 3090, 3113)
+
* Added/updated Polish translations for Appwiz-new.cpl, Blankscr, Butterflies, Cylfrac, Desk.cpl, Downloader, Dxdiag, Fontview, Imagesoft, Input.cpl, Magnify, Matrix, Mazescr, Mmsys.cpl, Packmgr, Roscalc, Shellext, Starfield, Systeminfo, Usetup, Vgafontedit, Write ([[Olaf Siejka]], bugs #3014, #3037, #3043, #3047, #3066, #3088)
* German RC File Updates for csrss, ntvdm (by ??? - Dark_Shadow@gmx.at)
+
* Added/updated Spanish translations for Circles, Desk.cpl, Devmgr, Downloader, Dxdiag, Input.cpl, Intl.cpl, Main.cpl, Modemui, More, Mstsc, Newdev, Notepad, Regedit, Shell32, Shellext, Sysdm.cpl, Syssetup, Taskmgr, Timedate.cpl, Usetup, Vgafontedit, Vmwinst, Winhelp, Wordpad ([[Javier Remacha]], bugs #2984, #2986, #2994, #3142, #3172, #3184, #3196, #3229, #3282)
* Update German language for appwiz-new, input.cpl, desk.cpl mmsys by (([[Daniel Reimer]])
+
* Added/updated Lithuanian translations for Control, kbswitch, Downloader, Mmc, Mstsc, Usetup, Winhelp, explorer-new, shimgvw ([[Vytis Girdžijauskas]], bugs #2991, #3188, #3277, #3365)
* Added all missing Strings in Usetup for Translation and added the English Strings to all USETUP Resources and activated these. This makes translating easier. (([[Daniel Reimer]])
+
* Added/updated Czech translations for Cacls, Charmap, Expand, Find, Format, Hdwwiz, Kbswitch, Logoff, More, Notepad, Regsvr32, Rundll32, Solitaire, Userinit, Usetup ([[Radek Liška]], bugs #3078, #3090, #3113, #3175, #3194)
* Resort rosapps, setupapi and user32 RC Files. Now all Resource files except the ones synched with Wine are sorted the same way. (([[Daniel Reimer]])
+
* Updated German translations for Csrss, Ntvdm ([[Andreas Dieringer]])
* Remove all Manifests. They will be autogenerated in the future. This is one step to MSVC Support, too. (([[Daniel Reimer]])
+
* Added/updated German translations for Appwiz-new.cpl, Desk.cpl, Input.cpl, Mmsys.cpl ([[Daniel Reimer]])
* Checked for the right Font for Asian Languages and set a unified Font size fot them. (([[Daniel Reimer]])
+
* Added/updated Korean translations ([[Seungju Kim]], bugs #3144, #3145, #3149, #3151, #3153, #3154, #3155, #3156, #3157, #3165, #3180, #3182, #3261)
 +
* Added/updated French translations for Kbswitch, Desk.cpl, Dxdiag, Magnify, Main.cpl, Mmsys.cpl, Regedit, Shell32, Syssetup, Vgafontedit, Usetup ([[Pierre Schweitzer]])
 +
* Added all missing Strings in Usetup for translation, added the English Strings to all USETUP resources and activated them. This makes translating easier. ([[Daniel Reimer]])
 +
* Resort Rosapps, Setupapi and User32 RC Files. Now all Resource files except the ones synched with Wine are sorted the same way. ([[Daniel Reimer]])
 +
* Remove all Manifests. They will be autogenerated in the future. This is one step to MSVC Support, too. ([[Daniel Reimer]])
 +
* Checked for the right Font for Asian Languages and set a unified Font size for them. ([[Daniel Reimer]])
 +
* Convert Greek translations in Usetup to code page 737 and enable ([[Christoph von Wittich]])
 +
* Convert translations to DOS encodings by Vytis Girdžijauskas and Olaf Siejka ([[Christoph von Wittich]], bug #3015)
 +
* Add/update German translations for kbswitch, explorer, format, expand, winlogon, syssetup, shell32 and devmgr. ([[Matthias Kupfer]])
 +
* Add Korean translation for explorer-new by Seungju Kim. ([[Matthias Kupfer]], bug #3368)
 
* Massive Changes in almost all RC Files. Now all non Wine Synched RC Files use these rules:
 
* Massive Changes in almost all RC Files. Now all non Wine Synched RC Files use these rules:
 
   1. Use a DIALOGEX template instead of a DIALOG template.
 
   1. Use a DIALOGEX template instead of a DIALOG template.
Line 35: Line 62:
 
   -> Windows 2000+ Look
 
   -> Windows 2000+ Look
  
= Build Tools =
+
= Host Tools =
 +
== Buildno ==
 +
* Add support for svn-1.5 entries ([[Christoph von Wittich]], bug #2983)
 +
 
 
== CabMan ==
 
== CabMan ==
 +
* Add an -M option to specify, which compression codec shall be used (either "raw" or "mszip") ([[Colin Finck]])
 +
* Enable the RAW codec in the SelectCodec() function ([[Colin Finck]])
 +
* Fix parsing the -L and -P parameters, when there's no whitespace between the parameter and the value ([[Colin Finck]])
 +
* Remove the version number as it was never updated ([[Colin Finck]])
 +
* Fix setting the file attributes when extracting files ([[Colin Finck]])
 +
* Add support for multiple search criterias, which are actually checked.<br>This makes it possible to pass parameters like "*.rbuild *.txt" to the cabman command line for adding, displaying and extracting files in a cabinet. ([[Colin Finck]])
 +
* Overhaul CreateSimpleCabinet, make it able to add multiple files to the cabinet using the new search criteria functions. ([[Colin Finck]])
 +
* Fix setting the file offsets.<br>This fixes the extraction of any file, which is not the first file in the cabinet. ([[Colin Finck]])
 +
* Fix the extraction of files with more than 32 characters in the file name ([[Colin Finck]])
 +
* Fix compilation with GCC 4.3.x ([[Colin Finck]])
 +
 
== RBuild ==
 
== RBuild ==
 +
* Pass the correct path to _strip_gcc_deffile ([[Johannes Anderwald]])
 +
* Automatically create directories for converted def files ([[Johannes Anderwald]])
 +
* Fix auto-def file generation ([[Johannes Anderwald]])
 +
* If BASEDIR env var is set to point to your WDK installation, make msvcX will take it into account, and add additional include directories for WDK headers and libraries for all kernelmode modules ([[Aleksey Bragin]])
 +
* Only add a command for deleting a proxy makefile, when one was really generated.<br>This should fix some "Error 1 (ignored)" warnings ([[Colin Finck]])
 +
* Change default intermediate directory to obj directory ([[Hervé Poussineau]])
 +
* Add Rule class, for easier extending to new file types. Use it to simplify mingw backend, and fix lots of depencies issues. ([[Hervé Poussineau]])
 +
* Fix memory leaks ([[Samuel Serapión]])
 +
* Add basic support for targeting ARM in RBUILD ([[ReactOS Portable Systems Group]])
 +
* Correct the kernel entrypoint for ARM ([[ReactOS Portable Systems Group]])
 +
* Add the correct Visual Studio version to the .sln file header, so that the Visual Studio Version Selector does not get confused. ([[Robin Geuze]])
 +
* Compiler flags can now be set ([[Christoph von Wittich]])
 +
* Fix various memory leaks ([[Christoph von Wittich]])
 +
 +
== Sysreg ==
 +
* Add initial Xen detection ([[Christoph von Wittich]])
 +
* Do not display all debug data four times when using PipeReader class, spotted by Johannes Anderwald ([[Christoph von Wittich]])
 +
* Fix a bug in ROS boot test ([[Christoph von Wittich]])
 +
* Fix compilation with GCC 4.3.x ([[Colin Finck]])
  
 
= Core =
 
= Core =
 
== Bootloader (FreeLoader) ==
 
== Bootloader (FreeLoader) ==
 +
* Develop and switch to the new, a lot more advanced memory manager, which is compatible both with ReactOS and NT-style boot types. Added: memory types for each allocation request, ability to alloc and free memory from the heap, ability to use 1 megabyte of low memory too (which was just wasted previously), removed: a bunch of hacky stuff. ([[Aleksey Bragin]])
 +
* Added a real heap manager (based on bget) into the memory manager, and switched all small memory allocations inside FreeLdr to this heap manager.([[Aleksey Bragin]])
 +
* New way of storing hardware configuration tree (compatible).([[Aleksey Bragin]])
 +
* Developed an NT kernel boot support module (codename "winldr") and integrated it into FreeLdr.([[Aleksey Bragin]])
 +
* Allow runtime enabling of caching support in FreeLdr's filesystem layer.([[Aleksey Bragin]])
 +
* Change in FreeLdr's build process: Build FreeLdr the same way other modules are built, by using gcc -Wl. This allows us to get rid of the /math directory and use -lgcc instead. - Get rid of -ffreestanding, -fno-builtin and -O2. The former are not needed anymore since we're properly building a "freestanding" image anyway, just like the kernel. The latter is removed since optimization flags come from the project settings. Update code to fix warnings caused since we've removed -ffreestanding. GCC now warns about printf, sprintf and other C calls (including a change from %wZ to %S in winldr.c's sprintf calls). Don't use printf anymore -- rename freeldr's implementation to TuiPrintf. Just like in the kernel, you can't use printf in freeldr (since it's not running in a standard/full CRT environment). 124kb saved!([[Aleksey Bragin]])
 +
* The bootloader must zero user shared data page before passing control to the kernel. This fixes the "invalid timer state", "assert(SharedUserData->NumberOfPages == 0" family of bugs after warm reboot. ([[Aleksey Bragin]], bug #3085).
 +
* Make identifiers in configuration trees ASCII-strings, as they are in real NT.([[Aleksey Bragin]])
 +
* Map APIC pages, if they are present. Set the size of the memory new MM uses to 24Mb. Set heap size to 4Mb.([[Aleksey Bragin]])
 +
* Allocate memory for groups list dynamically, and make it enough (4096 bytes) for a really long list of groups. This makes Windows 2003 booting up to explorer without crashing.([[Aleksey Bragin]])
 +
* Heavily bugfix MmInitializeMemoryManager in freeldr, add slightly better bios memory map projection to the loader memory types, but this is still being investigated.([[Aleksey Bragin]])
 +
* Mark APIC's memory as WriteThrough / CacheDisabled.([[Aleksey Bragin]])
 +
* Fix a bug in MmAllocateMemoryWithType, where result of MmFindAvailablePages was checked against -1 in error case, when in reality it's 0 (spotted by Alex).([[Aleksey Bragin]])
 +
* WINLDR: Load drivers database (AppPatch/drvmain.sdb), so Windows could use it if needed.([[Aleksey Bragin]])
 +
* WINLDR: Don't store memory allocation descriptors inside the bootloader, since this memory is unmapped in kernelmode. Fixes a pagefault after switching to paged mode. Store the configuration data in the LPB.([[Aleksey Bragin]])
 +
* WINLDR: Different behavior for NT4 or NT5+ boot: NT4 requires text mode to be set up, and further version of Windows OS require a different preparation.([[Aleksey Bragin]])
 +
* WINLDR: Properly fill ACPI BIOS configuration entry (a couple of ACPI specification structures were added). This makes Windows 2003 initialize HAL (ACPI version) properly and be able to connect to the debugger.([[Aleksey Bragin]])
 +
* WINLDR: Fix an incorrect type of memory behind PDE, HAL mapping and kernel segment pagetables. They should be MemoryData (and change allocation algorithm slightly). With this change Windows 2003 boots up to the BSOD showing ACPI_BIOS_ERROR.([[Aleksey Bragin]])
 +
* WINLDR: Fix a typo in the if branch, which resulted in marking almost all memory above the bootloader as "FirmwareTemporary", even reserved ACPI pages. This should fix the ACPI BSOD Windows 2003 and XP show up. If a memory is marked as "free", leave it so, without transferring to FirmwareTemporary.([[Aleksey Bragin]])
 +
* Implement ramdisk support for FreeLoader ([[ReactOS Portable Systems Group]])
 +
* Move architecture independent code out of arch/ folder ([[ReactOS Portable Systems Group]])
 +
* Remove AcpiPresent flag from non-x86 builds, as it is x86 specific.  Have ACPI detection set the appropriate flag for each architecture if detected ([[ReactOS Portable Systems Group]])
 +
* Implement MachPrepareForReactOS as a generic pre-boot preparation routine, replacing the architecture specific functions ([[ReactOS Portable Systems Group]])
 +
* Implement a proper ARM startup routine ([[ReactOS Portable Systems Group]])
 +
* Fix bug in RamDiskInit that allowed reading from null pointers ([[ReactOS Portable Systems Group]])
 +
* Build Freeloader with a static libgcc ([[ReactOS Portable Systems Group]])
 +
* Implement returning a memory map on ARM ([[ReactOS Portable Systems Group]])
 +
* Ramdisk support in ArmDiskGetBootVolume, with fixes for hex parameters and proper return values ([[ReactOS Portable Systems Group]])
 +
* Fix command line parsing in Freeloader ([[ReactOS Portable Systems Group]])
 +
* Enable ramdisk support so disk read/writes are handled by ramdisk routines ([[ReactOS Portable Systems Group]])
 +
* Fix ramdisk start sector reporting ([[ReactOS Portable Systems Group]])
 +
* Arm routines now use various i386 disk routines that were highly generic and work across platforms ([[ReactOS Portable Systems Group]])
 +
* Remove redundant code for reading and writing to various ports and registers, making use of intrinsics instead ([[ReactOS Portable Systems Group]])
 +
* Implement basic console support through the serial port, providing output when FreeLoader initializes ([[ReactOS Portable Systems Group]])
 +
* Add support for ARM Versatile/PB platform, allowing qemu to emulate the ARM build of ReactOS ([[ReactOS Portable Systems Group]])
 +
* Add support for PL011 UART, allowing for console output on the Versatile platform ([[ReactOS Portable Systems Group]])
 +
* Define ARM_LOADER_BLOCK for use when FreeLoader passes control to the kernel ([[ReactOS Portable Systems Group]])
 +
* Define region for storing TTB, aligned to 16KB ([[ReactOS Portable Systems Group]])
 +
* Allocate the kernel, interrupt and abort stacks, idle thread and process, boot PRCB, ad PCR and PDR pages ([[ReactOS Portable Systems Group]])
 +
* Map Versatile serial port into virtual memory ([[ReactOS Portable Systems Group]])
 +
* Remove 1MB page hacks ([[ReactOS Portable Systems Group]])
 +
* Setup NLS data in loader block ([[ReactOS Portable Systems Group]])
 +
* Setup loader block extension fields needed to pass ExpIsLoaderValid ([[ReactOS Portable Systems Group]])
 +
* Setup Registry data in the ARM loader block ([[ReactOS Portable Systems Group]])
 +
* Convert all loader blocks to virtual addresses ([[ReactOS Portable Systems Group]])
 +
* Erase the timer string when needed. bug #3046 ([[Seungju Kim]], [[Aleksey Bragin]])
 +
* Do not draw the standard UI in minimalistic mode ([[Christoph von Wittich]])
 +
* Remove duplicated code ([[Christoph von Wittich]])
 +
* Load system registry in ARM ([[ReactOS Portable Systems Group]])
 +
* Add support for ARC Disk Information/Signature ([[ReactOS Portable Systems Group]])
 +
 
== Kernel and Executive (NTOSKRNL) ==
 
== Kernel and Executive (NTOSKRNL) ==
 +
=== Cache ===
 +
* Switch to using the cache bitmap (the cache manager uses one large memory region within the kernel address space and allocate/deallocate space from this block over a bitmap). It makes file copying process (not only in the 1st stage) a bit more stable. Cacheseg mapping region size enlarged to 256Mb. (bug #2872, [[Aleksey Bragin]])
 +
* Support NtFlushInstructionCache for ARM ([[ReactOS Portable Systems Group]])
 +
 
=== CM ===
 
=== CM ===
=== Debugging ===
+
* cmlib: Take into account non-fast/non-hash indices in CmPrepareHive, apply similar changes to freeldr's registry importing function ([[Filip Navara]])
 +
* Fix out-of-bounds access in configuration manager, spotted by Christoph & GCC 4.3.0 ([[Aleksey Bragin]])
 +
 
 +
=== EX ===
 +
* Fix ExReleaseResourceLock(), spotted by Alex ([[Aleksey Bragin]])
 +
* Use C define for the bit in the wait block flags that we set to specify waiting, instead of a hardcoded "1" ([[Aleksey Bragin]])
 +
* Fix broken code when trying to find the last wait block in several parts of the pushlock code ([[Aleksey Bragin]])
 +
* Fix broken algorithm in the optimization of the pushlock waiter list ([[Aleksey Bragin]])
 +
* The wake event for the pushlock should be a synchronization event, not a notification event ([[Aleksey Bragin]])
 +
* Fix broken algorithm during the release of a pushlock (in shared cases) ([[Aleksey Bragin]])
 +
* Fix broken code during "try to wake pushlock" ([[Aleksey Bragin]])
 +
* Remove DbgPrints from inlined pushlock code during contention ([[Aleksey Bragin]])
 +
* All of ex-changes are made thanks to Alex for noticing these bugs and providing advice on the fixes. This fixes lots of race issues in the handle table implementation
 +
* Replace KfRaise/LowerIrql with Ke instead ([[ReactOS Portable Systems Group]])
 +
* Support ARM in SharedUserData->ImageNumberLow/High during ExpInitializeExecutive ([[ReactOS Portable Systems Group]])
 +
* Fix interlocked list functions ([[ReactOS Portable Systems Group]])
 +
 
 +
=== FSRTL ===
 +
* Implemented FsRtlDissectName based on MSDN description ([[Aleksey Bragin]], [[Pierre Schweitzer]])
 +
* Update FSRTL_ADVANCED_FCB_HEADER to support newer version headers, split Reserved into two bitfields: Reserved and Version ([[Aleksey Bragin]])
 +
* Implemented FsRtlNotifyChangeDirectory: it just redirects to FsRtlNotifyFullChangeDirectory (which is *NOT* implemented) ([[Pierre Schweitzer]])
 +
 
 
=== IO ===
 
=== IO ===
 +
* Fix memory corruption in Io manager, thanks to Alex for reporting ([[Aleksey Bragin]])
 +
* Replace KfRaise/LowerIrql with Ke instead ([[ReactOS Portable Systems Group]])
 +
* Allocate LastChanceShutdownList ([[Cameron Gutman]], bug #3331)
 +
* Release spinlock in IoUnregisterShutdownNotification ([[Cameron Gutman]], bug #3331)
 +
 +
=== KD ===
 +
* Use portable WRITE/READ_PORT_UCHAR for Bochs ([[ReactOS Portable Systems Group]])
 +
* Improve filter command by changing its syntax ([[Hervé Poussineau]])
 +
 
=== KE ===
 
=== KE ===
=== LPC ===
+
* Replace KfRaise/LowerIrql with Ke instead ([[ReactOS Portable Systems Group]])
 +
* Define KeGetPcr() as portable ([[ReactOS Portable Systems Group]])
 +
* Define KeArchHaltProcessor and KeArmInitThreadWithContext for ARM ([[ReactOS Portable Systems Group]])
 +
* Fixed KeRaiseIrqlToSynchLevel ([[ReactOS Portable Systems Group]])
 +
* Move entrypoint and startup code in ARM boot.s ([[ReactOS Portable Systems Group]])
 +
* Write kernel initialization code for ARM and V4 or V6 platform detection ([[ReactOS Portable Systems Group]])
 +
* Fix KeFillFixedEntryTb ([[ReactOS Portable Systems Group]])
 +
* Implement KiSystemStartup for ARM ([[ReactOS Portable Systems Group]])
 +
* Copy KiInitializeKernel from x86 to ARM, with the appropriate modifications ([[ReactOS Portable Systems Group]])
 +
* Implement KeAcquireInSTackQueuedSpinLock, KeAcquireInStackQueuedSpinLockRaiseToSYnc and KeReleaseInStackQueuedSpinLock for ARM ([[ReactOS Portable Systems Group]])
 +
* Setup panic stack for abort/undefined exceptions and interrupt stack for FIQs ([[ReactOS Portable Systems Group]])
 +
* Fix definition of ARM_CONTROL_REGISTER ([[ReactOS Portable Systems Group]])
 +
* Implement spinlock/IRQL functions ([[ReactOS Portable Systems Group]])
 +
* Implement proper trap prologue/epilogue code ([[ReactOS Portable Systems Group]])
 +
* Implement all READ/WRITE_REGISTER functions for ARM/PPC ([[ReactOS Portable Systems Group]])
 +
* Partially implement KiSoftwareInterruptDispatch ([[ReactOS Portable Systems Group]])
 +
* Implement simplistic call dispatcher ([[ReactOS Portable Systems Group]])
 +
* Declare KiRestore/SaveProcessorControlState as portable prototypes ([[ReactOS Portable Systems Group]])
 +
* Use portable KeProcessorXxx variables for SystemProcessorInformation ([[ReactOS Portable Systems Group]])
 +
* Make space on the stack to save the old IRQL ([[ReactOS Portable Systems Group]])
 +
* Implement basic KiThreadStartup ([[ReactOS Portable Systems Group]])
 +
* Make sure both PCR->CurrentThread and PRCB->CurrentThread are set ([[ReactOS Portable Systems Group]])
 +
* Remove KeSwapIrql ([[ReactOS Portable Systems Group]])
 +
* Fix KiInterruptHandler to perform operations in the right order ([[ReactOS Portable Systems Group]])
 +
* Have KeArmStatusRegisterGet read CPSR and interrupt status ([[ReactOS Portable Systems Group]])
 +
* Implement KeStallExecution and stall interrupts used to calculate its factors ([[ReactOS Portable Systems Group]])
 +
* Implement idle loop ([[ReactOS Portable Systems Group]])
 +
* Remove unneeded calibration code in KeStallExecutionProcessor ([[ReactOS Portable Systems Group]])
 +
* Implement basic system call handler ([[ReactOS Portable Systems Group]])
 +
* Implement KiComputeTimerTableIndex, KeUpdateSystemTime, KeUpdateRunTime, KiSaveProcessorControlState, KiApcInterrupt ([[ReactOS Portable Systems Group]])
 +
* Use the Frames parameter in KeRosDumpStackFrames() to dump a frame array. ([[Timo Kreuzer]])
 +
 
 
=== MM ===
 
=== MM ===
 +
* Compile the ELF loader only if _ELF_ is defined ([[ReactOS Portable Systems Group]])
 +
* Create /arm tree for Mm ([[ReactOS Portable Systems Group]])
 +
* Implement support for 4KB pages ([[ReactOS Portable Systems Group]])
 +
* Remove page lists that are completely ignored ([[ReactOS Portable Systems Group]])
 +
* Don't loop the page arraylist three times to initialize it ([[ReactOS Portable Systems Group]])
 +
* Precalculate PTE values once by moving it out of the initialization loop ([[ReactOS Portable Systems Group]])
 +
* Correct reference count for KPCR and KUSER_SHARED_DATA ([[ReactOS Portable Systems Group]])
 +
* Remove hack that preinitialized MM balancer ([[ReactOS Portable Systems Group]])
 +
* Initialize page array by iterating through each page instead of in chunks of 128 pages ([[ReactOS Portable Systems Group]])
 +
* Proper differentiate between the total amount of usable RAM and the highest usable page, fixing the problem of ReactOS eating up memory and removed the hack originally in place to fix that problem ([[ReactOS Portable Systems Group]])
 +
* Get rid of the LastPage variable and properly detect the highest free memory descriptor and allocate PTEs from there, a step in removing Freelist hacks and using memory descriptors instead ([[ReactOS Portable Systems Group]])
 +
* Correctly mark PCR, KUSER_SHARED_DATA, and PDEs as USED pages and set the correct values for MapCount and ReferenceCount for them ([[ReactOS Portable Systems Group]])
 +
* Stop duplicate zeroing of fields if array has already been cleared ([[ReactOS Portable Systems Group]])
 +
* Stop giving Video ROM a reference count, treat it the same as BIOS memory ([[ReactOS Portable Systems Group]])
 +
* Fix off by one bugs in PFN ([[ReactOS Portable Systems Group]])
 +
* Rename MmIsUsablePage to MmIsPageInUse, as the function only returns true if the page is being used ([[ReactOS Portable Systems Group]])
 +
* Always go through MiGetPfnEntry to gain access to PFN database and add assertions to function for invalid access attempts ([[ReactOS Portable Systems Group]])
 +
* Add protections for functions accessing PFN outside the list lock ([[ReactOS Portable Systems Group]])
 +
* Removed concept of ReservedPages, as they do the same thing as SystemPages ([[ReactOS Portable Systems Group]])
 +
* Have nonpaged pool base address follow either the PFN or Freeloader mapping area and remove redundant and unnecessary calculations ([[ReactOS Portable Systems Group]])
 +
* Use a global variable to keep track of kernel and virtual start/end addresses ([[ReactOS Portable Systems Group]])
 +
* Add a hack that eats up remaining space in the 6MB allocated by Freeloader so kernel doesn't crash ([[ReactOS Portable Systems Group]])
 +
* Rewrite MmInitializePageList to use the ARC Memory Descriptor Tree instead ([[ReactOS Portable Systems Group]])
 +
* Do not zero out shared pages during memory initialization, as those pages are already in use ([[ReactOS Portable Systems Group]])
 +
* Move MmInit1 into MmInitSystem ([[ReactOS Portable Systems Group]])
 +
* Remove Ke386Pae conditionals and move PAE implementation into its own file, pagepae.c ([[ReactOS Portable Systems Group]])
 +
* Implement MmAllocPageEarly for use in case additional PDEs are needed to hold extra PTEs for representing the PFN database, as the PFN database isn't set up yet so would crash on the attempt ([[ReactOS Portable Systems Group]])
 +
* Implement MMU-OS architecture for ARM ([[ReactOS Portable Systems Group]])
 +
* Implement MmGetPageDirectory, MmDeletePageTable, MmIsPagePresent, MmCreateVirtualMappingForKernel, MmCreateVirtualMapping, MmCreateVirtualMappingUnsafe, MmSetPageProtect, MmCreateHyperspaceMapping, MmDeleteHyperspaceMapping, MmInitGlobalKernelPageDirectory, MmInitPageDirectoryMap, MmGetPhysicalAddress, MmGetUserPageDirectoryCount, MmGetPfnForProcess, and MmIsPageSwapEntry for ARM ([[ReactOS Portable Systems Group]])
 +
* Fix a bug in MmGetPhysicalAddress ([[ReactOS Portable Systems Group]])
 +
* Fix a bug in MmDeletePageTable ([[ReactOS Portable Systems Group]])
 +
 
=== OB ===
 
=== OB ===
=== PNP ===
+
* Fix leaking an entry in some cases during ObpFreeCapturedAttributes call. For more details: http://www.reactos.org/forum/viewtopic.php?t=5311 ([[Aleksey Bragin]])
 +
* Fix initialiization of the object manager lookaside lists, don't leak object locks when destroying an object type, make directory objects and symbolic links case-insensitive, Create \KernelObjects directory during startup.  ([[Aleksey Bragin]])
 +
* Lock only the object header for an object instead of the entire object type, for better contention. Implement exclusive/shared lock and release routines around the existing lock slots in the object type ([[Aleksey Bragin]])
 +
* Rewrite the SD Cache functions to use the Windows 2003 structures (thanks to Alex for providing them) ([[Aleksey Bragin]])
 +
* Use pushlocks instead of the fast mutex that was previously used ([[Aleksey Bragin]])
 +
* Implement the exported Ob APIs which were added in Windows XP to access the Sd cache ObReference/DereferenceSecurityDescriptor and ObLogSecurityDescriptor). These are used by file systems (such as NPFS) on Windows XP and higher ([[Aleksey Bragin]])
 +
* Thanks to Alex for reporting all the CM issues.
 +
 
 +
=== PO ===
 +
* Fix of the "Pos InitData failed"-Error and "CreateEnergyList failed"-Error in power options. ([[Alexander Wurzinger]], bug #2469)
 +
 
 
=== PS ===
 
=== PS ===
=== SE ===
+
* Replace KfRaise/LowerIrql with Ke instead ([[ReactOS Portable Systems Group]])
 +
* Add ARM support to PspCreatThread ([[ReactOS Portable Systems Group]])
 +
* Stub psctx.h for ARM ([[ReactOS Portable Systems Group]])
 +
 
 
== Hardware Abstraction Layer (HAL) ==
 
== Hardware Abstraction Layer (HAL) ==
 +
* ARM HAL now exports KeSwapIrql ([[ReactOS Portable Systems Group]])
 +
* Add cache sweeping code for ARM926EJ-S and ARM1026EJ-S CPUs ([[ReactOS Portable Systems Group]])
 +
* Use intrinsics for interlocked functions ([[ReactOS Portable Systems Group]])
 +
* Begin implementing HalInitSystem for ARM ([[ReactOS Portable Systems Group]])
 +
* Implement HalRequestSoftwareInterrupt for PL190 VIC ([[ReactOS Portable Systems Group]])
 +
* Setup IRQL table for ARM ([[ReactOS Portable Systems Group]])
 +
* Implement HalGetInterruptSource for ARM ([[ReactOS Portable Systems Group]])
 +
* Implement HalQueryRealTimeClock ([[ReactOS Portable Systems Group]])
 +
 
== Run Time Library (RTL) ==
 
== Run Time Library (RTL) ==
 +
* Implement RtlGetCallersAddress, add RtlCaptureStackBackTrace prototype to PSDK (bug #3125, [[Daniel Zimmerman]])
 +
* Implement ARM version of DbgBreakPoint ([[ReactOS Portable Systems Group]])
 +
* Add ARM support to RtlWalkFrameChain ([[ReactOS Portable Systems Group]])
 +
* Separate RtlCaptureStackLimits and RtlWakeChainFrame functions into separate ARM folder ([[ReactOS Portable Systems Group]])
 +
* Implement RtlCaptureContext ([[ReactOS Portable Systems Group]])
 +
* Do not redefine _pctype ([[Christoph von Wittich]])
 +
 
== Kernel Mode Drivers ==
 
== Kernel Mode Drivers ==
 +
=== AFD ===
 +
* Implement support for TDI_RECEIVE_PEEK / MSG_PEEK ([[Art Yerkes]], [[Colin Finck]])
 +
 +
=== All filesystem drivers ===
 +
* Pass cache manager callbacks structure at every CcInitializeCacheMap() call, it's mandatory ([[Aleksey Bragin]])
 +
* There is no reason for CDFS to use CcRos-specific functions, it ends up with the same CcRosInit/Uninit with the same CacheSegmentSize = PAGE_SIZE ([[Aleksey Bragin]])
 +
* Remove ros-specific Cc functions usage ([[Aleksey Bragin]])
 +
* Set default return of IRP_MJ_QUERY_INFORMATION to STATUS_INVALID_PARAMETER ([[Pierre Schweitzer]])
 +
 +
=== BLUE ===
 +
* Add support for loading the PSF font file format ([[Christoph von Wittich]])
 +
* Allow file mode 2 for PSF files (still ignoring unicode data) ([[Christoph von Wittich]])
 +
* Read the VGA fonts from a "vgafonts.cab" file instead of "vgafont.bin" (ZIP format)<br>This file is automatically created on every build by using the new CabMan simple cabinet functions ([[Colin Finck]])
 +
 +
=== BOOTVID ===
 +
* Separate into /i386 and /arm, with stubs for ARM ([[ReactOS Portable Systems Group]])
 +
* Implement VidInitialize and allocate a 640x480 at 16bpp framebuffer ([[ReactOS Portable Systems Group]])
 +
* Implement VidSolidColorFill, VidSetScrollRegion, VidSetTextColor, VidResetDisplay ([[ReactOS Portable Systems Group]])
 +
* Fix a bug in VidpBuildColor ([[ReactOS Portable Systems Group]])
 +
* Add bootdata font file to ARM ([[ReactOS Portable Systems Group]])
 +
 +
=== EXT2 ===
 +
* Removed a breakpoint in Ext2CommonClose(). That way ext2 FSD won't crash any more at startup. ([[Filip Navara]], [[Pierre Schweitzer]])
 +
* Remove FCB from the linked list when it's released ([[Pierre Schweitzer]])
 +
 +
=== FASTFAT ===
 +
* Rename vfatfs.sys to fastfat.sys for compatibility reasons ([[Aleksey Bragin]])
 +
* Experimentally switch fastfat driver to non-Ros Cc functions, and thus no FSD in ReactOS are using CcRos-specific functions anymore ([[Aleksey Bragin]])
 +
* Fix index out of bounds warnings ([[Christoph von Wittich]])
 +
* Change indexes to make code more readable ([[Christoph von Wittich]])
 +
 +
=== I8042PRT ===
 +
* Don't return if no keyboard or mouse is present. Instead continue detecting the devices.<br>This fixes the bug that you could not use the keyboard, when no mouse was plugged in. ([[Colin Finck]])
 +
* Simplified the code for connecting the interrupts. ([[Colin Finck]])
 +
* Only get the first two bytes in a loop and issue just one i8042ReadDataWait command for the last byte when resetting the mouse.<br>This reduces the "blank screen time" in Usetup from 45 seconds to 3 seconds on my ECS K7S5A Pro and some other boards, when no mouse is plugged in. ([[Colin Finck]])
 +
* Remove much code for the mouse initialization, which had been imported from the ancient "psaux.sys" driver.<br>Don't use the "Get ID" command anymore, which is not available on all systems. This way, some more mice should be detected now. ([[Colin Finck]])
 +
* First detect the mouse and then the keyboard. If we do it the other way round, some systems throw away settings like the keyboard translation, when detecting the mouse.<br>This solves the popular keyboard detection bug on real hardware in 0.3.4. ([[Colin Finck]])
 +
 +
=== KDCOM ===
 +
* Add arm_kprintf for early kernel debugging ([[ReactOS Portable Systems Group]])
 +
 +
=== NDIS ===
 +
* Fixing a typo in ndis rename NdisGetSystemUptime to NdisGetSystemUpTime for the stub ([[Magnus Olsen]])
 +
* Implemented NdisSystemProcessorCount, NdisGetCurrentProcessorCounts, NdisGetSystemUptime, thanks KJK for the help optimizing it, NdisScheduleWorkItem, thanks to [[Art Yerkes]] for help ([[Magnus Olsen]])
 +
* Add a missing struct NDIS_WORK_ITEM and missing prototype NdisScheduleWorkItem ([[Magnus Olsen]])
 +
 +
=== NTFS ===
 +
* Implemented NtfsFsdDispatch to dispatch some IO requests (use it with implemented functions that need it) ([[Pierre Schweitzer]])
 +
* Implemented NtfsIsIrpTopLevel (From Rajeev Nagar), NtfsAllocateIrpContext ([[Pierre Schweitzer]])
 +
* Added stubs for CC R/W functions (fixes TODO from r32610) ([[Pierre Schweitzer]])
 +
* Rewritten NtfsFsdDirectoryControl (using IrpContext, etc) ([[Pierre Schweitzer]])
 +
* Added more checks when mounting a volume (based on: http://technet2.microsoft.com/windowsserver/en/library/8cc5891d-bf8e-4164-862d-dac5418c59481033.mspx) ([[Pierre Schweitzer]])
 +
* Check cluster size when mounting a volume ([[Magnus Olsen]], [[Pierre Schweitzer]])
 +
* Set mounted volume to FILE_DEVICE_DISK_FILE_SYSTEM ([[Pierre Schweitzer]])
 +
* Added more checks ([[Pierre Schweitzer]])
 +
* Get back DO_DIRECT_IO flag that has been removed in r31747 ([[Pierre Schweitzer]])
 +
* Renamed functions that are called by IO to NtfsFsd* (similar to Windows NTFS driver) ([[Pierre Schweitzer]])
 +
* Use NTAPI instead of STDCALL to have MSVC compatibility ([[Hervé Poussineau]], [[Pierre Schweitzer]])
 +
* Reorganized functions order with increasing index ([[Pierre Schweitzer]])
 +
* Removed some useless debug ([[Hervé Poussineau]], [[Pierre Schweitzer]])
 +
* Renamed all control block structures to (P)NTFS_xCB ([[Pierre Schweitzer]])
 +
* Added an identifier field to those structures ([[Pierre Schweitzer]])
 +
* Fill in Identifier field when creating NTFS_xCB ([[Pierre Schweitzer]])
 +
* Check whether we have a valid VCB before creating FCB ([[Pierre Schweitzer]])
 +
* Fill FCB structures with more informations, add them to linked list and remove them when released ([[Pierre Schweitzer]])
 +
* Check we have a FCB before releasing it ([[Pierre Schweitzer]])
 +
* Changed a memset call to RtlZeroMemory ([[Pierre Schweitzer]])
 +
* Updated files headers ([[Pierre Schweitzer]])
 +
* Various code cleanup ([[Pierre Schweitzer]])
 +
 +
=== RAMDISK ===
 +
* Begin implementation of Ramdisk Port Driver ([[ReactOS Portable Systems Group]])
 +
 +
=== SERIAL ===
 +
* Always set DO_BUFFERED_IO or DO_DIRECT_IO, so that IRP_MJ_READ/IRP_MJ_WRITE work ([[Hervé Poussineau]])
 +
* Fix FileStandardInformation and FilePositionInformation classes ([[Hervé Poussineau]])
 +
 +
=== SERENUM ===
 +
* Pass all requests to next driver, even unknown ones ([[Hervé Poussineau]])
 +
 +
=== VIDEOPRT ===
 +
* Only increment VideoPortDeviceNumber, when IntVideoPortCreateAdapterDeviceObject and IntVideoPortFindAdapter succeeded.<br />This fixes loading the CL54xx miniport driver. Anyway, its DDI driver is still a problem. ([[Filip Navara]])
 +
 
== NT System Library (NTDLL) ==
 
== NT System Library (NTDLL) ==
 
== Static Libraries ==
 
== Static Libraries ==
 +
=== NTFSLIB ===
 +
* Added a stub for NtfsLib ([[Pierre Schweitzer]])
 +
 +
=== SCRNSAVE ===
 +
* Remove much Win9x-specific stuff from the library and make it more compatible to the MS version of the library. ([[Colin Finck]])
 +
 +
== Keyboard Layouts ==
 +
* Add the following keyboards: Albanian (AL), Russian Typewriter (RU1), US IBM Arabic 238_L layout (USA), Icelandic (IC), Canadian French Legacy (FC), Canadian Multilingual Standard (CAN), Dutch (NE), Estonian (EST), Georgian (GEO), Latvian (LV), Macedonian (MAC), Romanian (RO), Tatar (TAT), US Dvorak for left hand (USL), US Dvorak for right hand (USR), US International (USX), Serbian Cyrillic (YCC), Serbian Latin (YCL), Turkish Q (TUQ), Turkish F (TUF), Ukrainian Student (URS), Uzbek Cyrillic (UZB), Vietnamese (VNTC), Azeri Cyrillic (AZE), Azeri Latin (AZEL), Belarusian (BLR), Portuguese Brazilian ABNT2 (BR), Kazakh (KAZ) ([[Dmitry_Chapyshev|Dmitry Chapyshev]])
 +
* Add the following keyboards: Armenian Eastern [ARME], Armenian Western [ARMW], Arabic (101) [A1], Arabic (102) [A2], Arabic (102) AZERTY [A3] ([[Alexey_Komarov|Alexey Komarov]])
 +
* Add Korean keyboard layout template ([[Matthias Kupfer]], bug #3345)
 +
* Slovak keyboard layout update ([[Milan Margus]], bug #1251)
  
 
= USETUP =
 
= USETUP =
 
* Add functionality to allow translation of strings ([[Timo Kreuzer]])
 
* Add functionality to allow translation of strings ([[Timo Kreuzer]])
 +
* Fix a crash when no hdd is attached ([[Johannes Anderwald]])
 +
* Improve the generic list by allowing faster navigation with chars a-z ([[Christoph von Wittich]])
 +
* Fix 640x480 resolution ([[Christoph von Wittich]])
  
 
= Win32&trade; Personality =
 
= Win32&trade; Personality =
 
== User mode subsystem server (CSRSS) ==
 
== User mode subsystem server (CSRSS) ==
 +
* Implement GetConsoleAlias[A/W], AddConsoleAlias for doskey support ([[Johannes Anderwald]])
 +
* Always use Request->Status for return value ([[Christoph von Wittich]])
 +
* Remove old console window text hack ([[Timo Kreuzer]])
 +
 
== Kernel-mode subsystem server (Win32K) ==
 
== Kernel-mode subsystem server (Win32K) ==
 
 
* Implement NtGdiSelectBitmap, NtGdiSelectBrush, NtGdiSelectFont and NtGdiSelectPen based on NtGdiSelectObject and tests, move those functions to dc.c, remove NtGdiSelectObject ([[Timo Kreuzer]])
 
* Implement NtGdiSelectBitmap, NtGdiSelectBrush, NtGdiSelectFont and NtGdiSelectPen based on NtGdiSelectObject and tests, move those functions to dc.c, remove NtGdiSelectObject ([[Timo Kreuzer]])
 
* Fix some bugs in NtGdiSelectBitmap ([[Timo Kreuzer]])
 
* Fix some bugs in NtGdiSelectBitmap ([[Timo Kreuzer]])
Line 119: Line 456:
 
* Fix a wrong typecast in PALETTE_SetMapping ([[Timo Kreuzer]])
 
* Fix a wrong typecast in PALETTE_SetMapping ([[Timo Kreuzer]])
 
* Call PsGetCurrentThreadWin32Thread() and PsGetCurrentProcess() only once in IntGetWinstaObj ([[Timo Kreuzer]])
 
* Call PsGetCurrentThreadWin32Thread() and PsGetCurrentProcess() only once in IntGetWinstaObj ([[Timo Kreuzer]])
 +
* Fix a leakage during DC deletion (introduced in revision 773) ([[Samuel Serapion]])
 +
* Remove dereferencing a monitor object during successive attach branch in IntAttachMonitor ([[Aleksey Bragin]])
 +
* Rename and add two application compatibility flags to W32THREADINFO structure (one for ancient compat flags, and one for a bit more modern flags), implement GetAppCompatFlags() and GetAppCompatFlags2() ([[Aleksey Bragin]])
 +
* Unlink window when WM_CREATE message fails, fixes a crash ([[Johannes Anderwald]])
 +
* Call ExDeleteResourceLite() before freeing an ERESOURCE, otherwise it will remain in the system resource list ([[Samuel Serapion]])
 +
* Check if the menu object has really been found to avoid memory corruptions ([[Johannes Anderwald]])
 +
* Implemented DxEngLockHdev and DxEngUnlockHdev, thanks to Jim Tabor for the help with these two ([[Magnus Olsen]])
 +
* Added full trace for dxeng API in win32k ([[Magnus Olsen]])
 +
* Remove several deprecated NtUser functions, replacing them with appropriate functions ([[Stefan Ginsberg]])
 +
* Fix calculation of cwc parameter for NtGdiGetFontResourceInfoInternalW ([[Timo Kreuzer]])
 +
* Make some default text metric settings compatible to Windows XP ([[Timo Kreuzer]])
 +
* Zero out lfWidth member when returning logfont in IntGdiGetFontResourceInfo ([[Timo Kreuzer]])
 +
* Move WNDPROC_INFO structure from ntuser.h to win32k/include/class.h ([[Stefan Ginsberg]])
 +
* Use GDIOBJ_SetOwnership instead of GDIOB_CopyOwnership in DC_SetOwnership ([[Timo Kreuzer]])
 +
* Make DC structure more Windows XP compatible ([[Timo Kreuzer]])
 +
* (Int)EngGradientFill: if no CLIPOBJ is given, create a CLIPOBJ from bounds rect ([[Timo Kreuzer]])
 +
* EngLineTo: if no CLIPOBJ is given, create a CLIPOBJ from bounds rect ([[Timo Kreuzer]])
 +
* Free allocated style array in NtGdiExtCreatePen on failure ([[Timo Kreuzer]])
 +
* IntGdiLineTo: the dc pen might be deleted, don't ASSERT, instead fall back to BLACK_PEN ([[Timo Kreuzer]])
 +
* EngCreateClip: allocate CLIPGDI, not only CLIPOBJ ([[Timo Kreuzer]])
 +
* Make Simplecall definitions (NtUserCallXxx) compatible to different Windows versions ([[Timo Kreuzer]])
 +
* Split ntuser/misc.c into sysparams.c, simplecall.c and misc.c ([[Timo Kreuzer]])
 +
* Fix handling of unsafe string parameter in NtGdiGetFontResourceInfoInternalW ([[Timo Kreuzer]])
 +
* Fix cj parameter type in EngAllocUserMem (SIZE_T, not ULONG) ([[Timo Kreuzer]])
 +
* fix typecast of pointer (ULONG -> ULONG_PTR) in LdrGetProcedureAddress ([[Timo Kreuzer]])
 +
* Implement SPI_GET/SETSTICKYKEYS, SPI_GET/SETFILTERKEYS, SPI_GET/SETTOGGLEKEYS, SPI_GET/SETSERIALKEYS, SPI_GET/SETMOUSEKEYS, SPI_GET/SETKEYBOARDPREF, SPI_GET/SETSHOWSOUNDS, SPI_GET/SETACCESSTIMEOUT ([[Timo Kreuzer]], bug #3133)
 +
* Make the screensaver lib hide the cursor directly after creating it ([[Timo Kreuzer]], bug #2965)
 +
* NtUserCreateWindowEx: use RETURN() macro to not bypass cleanup ([[Timo Kreuzer]])
 +
* Improve appearance of disabled buttons by using DrawText 2 times instead of using DrawState ([[Timo Kreuzer]])
 +
* Rename 2nd parameter of NtUserGetClipboardData from Unknown1 to pBuffer nad use SEH to copy data ([[Timo Kreuzer]])
 +
* Change (Nt)UserGetWindowDC return type from DWORD to HDC ([[Timo Kreuzer]])
 +
* Fix several typecasts, making them 64bit safe ([[Timo Kreuzer]])
 +
* Use InterlockedExchangePointer instead of InterlockedExchange for pointers ([[Timo Kreuzer]])
 +
* NtUserEnumDisplaySettings: change returns type to NTSTATUS, remove SerLastError, fix parameter validation and return value ([[Timo Kreuzer]])
 +
* Fix wrong debug output when a process is terminated, by deleting it's objects in a proper order ([[Timo Kreuzer]], bug #2954)
 +
* Update the BaseObjects hHmgr field when converting an object to a stock object ([[Timo Kreuzer]])
 +
* Optmize NtGdiFlushUserBatch by locking the dc once instead of doing it for every object ([[Timo Kreuzer]])
 +
* Fix wrong pointer calculation in NtGdiFlushUserBatch ([[Timo Kreuzer]])
 +
* Remove hFirstBitmap from the WIN_DC_INFO structure ([[Timo Kreuzer]])
 +
* Use StockObject(DEFAULT_BITMAP) for the default bitmap when creating a memory dc ([[Timo Kreuzer]])
 +
* Use dc.DcLevel.hPal for the palette instead of using dc.PalIndexed and dc.w.hPalette ([[Timo Kreuzer]])
 +
* Fix palette implementation: use the surface's palette to crate the xlate objects, default to the device default palette. The dc palette defaults to stock object default palette ([[Timo Kreuzer]])
 +
* Implement IntCreateXlateForBlt, used in BitBlt etc functions to perform the needed operations to create the xlate object instead of duplicating the code ([[Timo Kreuzer]])
 +
* DxEngGetHdevData: return a DWORD_PTR instead of a DWORD, use DWORD_PTR as Data parameter ([[Timo Kreuzer]])
 +
* DxEngGetDcState: return a DWORD_PTR instead of a DWORD ([[Timo Kreuzer]])
 +
* Rename GDIOBJ_AllocObj to GDIOBJ_allocObjWithHandle and make it return a pointer to a locked object ([[Timo Kreuzer]])
 +
* Implement GDIOBJ_AllocObj that only allocates a memory object without a handle ([[Timo Kreuzer]])
 +
* Rename GDIOBJ_FreeObject to GDIOBJ_FreeObjByHandle ([[Timo Kreuzer]])
 +
* Implement GDIOBJ_FreeObj that only frees the memory object ([[Timo Kreuzer]])
 +
* Fix NtGdiCreateClientObject and NtGdiDeleteClientObject ([[Timo Kreuzer]])
 +
* NtGdiHfontCreate: use SEH instead of MmCopyFromCaller ([[Timo Kreuzer]])
 +
* Don't use shared locks, when modifying bitmaps ([[Timo Kreuzer]])
 +
* Move code from NtUserCallOneParam to UserShowCursor ([[Timo Kreuzer]])
 +
* Make NtUserSetCursor hide Cursor on hCursor = NULL ([[Timo Kreuzer]])
 +
* IntEngGradientFill: fix cleanup when calling the driver ([[Timo Kreuzer]])
 +
* Fix calculation of character height by preventing edx register to be clobbered in FT_MulFix and reenabling commented out code ([[Jeffrey Morlan]], bug #3346)
 +
* Fix coordinate transformation in NtGdiSetDIBitsToDevice ([[Jeffrey Morlan]], bug #3200, bug #3294)
 +
* GDIOBJ_FreeObjByHandly: unlock handle table entry when object to delete was locked ([[Timo Kreuzer]])
 +
* REGION_AllocRgnWithHandle: unlock region before trying to delete it on failure ([[Timo Kreuzer]])
 +
* Fix calculation of yBaseUnit in GdiGetCharDimensions ([[Timo Kreuzer]])
 +
* Fix an endless loop in IntDereferenceClass ([[Timo Kreuzer]], bug #2142)
 +
* Fix a crash in co_MsqTranslateMouseMessage, by correcting the callers next list entry, if it might have been deleted ([[Timo Kreuzer]], bug #2317)
 +
 +
== Services ==
 +
 +
=== services ===
 +
* Make services RPC interface more compatible with MS Windows ([[Hervé Poussineau]])
 +
* Make eventlog RPC interface more compatible with MS Windows ([[Hervé Poussineau]])
 +
 +
=== tcpsvcs ===
 +
* Rewrite service to support multiple connections from multiple clients across all services ([[Ged Murphy]])
 +
* Do not try to close or wait on a NULL handle ([[Christoph von Wittich]])
 +
* Only retrieve the last error code when needed ([[Christoph von Wittich]])
 +
 +
=== umpnpmgr ===
 +
* Make plug-and-play RPC interface more compatible with MS Windows ([[Hervé Poussineau]])
 +
* Fix possible memory leak ([[Christoph von Wittich]])
  
 
== Control panel applets ==
 
== Control panel applets ==
 +
=== Appwiz-New ===
 +
* Start writing a new Appwiz applet ([[Dmitry Chapyshev]])
 +
* Move variable declarations to the top to reduce flickering ([[Christoph von Wittich]])
 +
 +
=== Desk ===
 +
* Rename german dialog to match Windows XP SP2+ name ([[Johannes Anderwald]])
 +
* Fix compilation with MSVC ([[Johannes Anderwald]])
 +
* Allow environment variables to be used in the "Wallpaper" registry value. ([[Vytis Girdžijauskas]])
 +
* Do not display the file suffix after adding a wallpaper through the "Browse" dialog. ([[Vytis Girdžijauskas]])
 +
* After using the "Browse" dialog, select the newly added item and scroll to the bottom to show it. ([[Colin Finck]])
 +
* Add the LVS_SHOWSELALWAYS style to the ListViews, so items are also highlighted, when the ListView does not have the focus ([[Colin Finck]])
 +
 +
=== Input ===
 +
* Fix alignment issues of controls ([[Vytis Girdžijauskas]], bug #3169)
 +
* Fix some incorrect lengths passed to other functions ([[Colin Finck]])
 +
 +
=== Intl ===
 +
* Fix compilation with MSVC ([[Johannes Anderwald]])
 +
* Fix corruption of time/date when using 24 hour format ([[Carlo Bramix]], Alwyn Tan, bug #2437)
 +
* Prevent potenial buffer overflows when using GetCalendarInfo ([[Johannes Anderwald]])
 +
 +
=== Ncpa ===
 +
* Enumerate additional client protocols ([[Johannes Anderwald]])
 +
* Improve retrieving of service description ([[Johannes Anderwald]])
 +
* Change statistics to display number of bytes received / send instead of number of packets ([[Johannes Anderwald]])
 +
* Dont show a decimal seperator ([[Johannes Anderwald]])
 +
* Fix "connected time" for a network component ([[Johannes Anderwald]])
 +
 +
=== Usrmgr ===
 +
* Do not touch the new user name if the user cancels the rename action ([[Eric Kohl]])
 +
* Implement the creation and removal of user accounts ([[Eric Kohl]])
 +
* Check that the user name does not contain any illegal characters ([[Eric Kohl]])
 +
* Check that both passwords are the same ([[Eric Kohl]])
 +
* Limit the maximum user name length to 20 characters ([[Eric Kohl]])
 +
* Implement user options properly ([[Eric Kohl]])
 +
* Limit the maximum user name length to 20 characters when a user name is changed from within the users list ([[Eric Kohl]])
 +
* Check user name for illegal characters when it is changed from within the user list ([[Eric Kohl]])
 +
* Add code to create, delete and rename user groups ([[Eric Kohl]])
 +
* Rename CheckUserName() to CheckAccountName() and move it to a new source file (misc.c) ([[Eric Kohl]])
 +
* Add the general user properties page, settings are visible but cannot be changed yet ([[Eric Kohl]])
 +
 +
=== Sysdm ===
 +
* Replace IsUserAdmin (Wine API) with IsUserAnAdmin (Shell32 API) ([[Colin Finck]])
 +
 +
=== Timedate ===
 +
* Fix enumeration of available time zones ([[Johannes Anderwald]])
 +
 
== Win32&trade; Applications ==
 
== Win32&trade; Applications ==
 +
=== 3dtext ===
 +
* Reduce the amount of code significantly by using the scrnsave library ([[Colin Finck]])
 +
 +
=== Autochk ===
 +
* Added the support of untfs.dll to autochk.exe (and a bit reviewed code when loading provider) ([[Pierre Schweitzer]])
 +
 +
=== Blankscr ===
 +
* Reduce the amount of code to a minimum by using the scrnsave library ([[Colin Finck]])
 +
 +
=== Charmap ===
 +
* Do not link ntdll ([[Christoph von Wittich]])
  
 
=== Cmd ===
 
=== Cmd ===
 
* Implement GrowIfNecessary_dbg() using file and line from the caller to cmd_alloc_dbg memory. ([[Timo Kreuzer]])
 
* Implement GrowIfNecessary_dbg() using file and line from the caller to cmd_alloc_dbg memory. ([[Timo Kreuzer]])
 
* Fix memory allocation size, respecting the terminating 0 ([[Timo Kreuzer]], bug #2845)
 
* Fix memory allocation size, respecting the terminating 0 ([[Timo Kreuzer]], bug #2845)
 +
* Fix compilation with msvc8 ([[Johannes Anderwald]])
 +
* Avoid buffer overflow in copy command argument handling ([[Johannes Anderwald]], bug #3108)
 +
* Don't strip trailing spaces from the command line. ([[Colin Finck]], bug #1818)
 +
* Do not try to append when there is only one parameter given ([[Christoph von Wittich]], bug #3023)
 +
* Allow nested blocks ([[Christoph von Wittich]])
 +
* Do not print the new color value when echo is off ([[Christoph von Wittich]])
 +
* Support else handle negative values in special environmental variables, as stdin, out, and err cannot be redirected for GUI applications ([[Christoph von Wittich]])
 +
* Handle %dp0 ([[Christoph von Wittich]])
 +
* Handle call: Label fix goto: Label ([[Christoph von Wittich]])
 +
* Bugfix goto with stubs for setlocal and endlocal ([[Christoph von Wittich]])
 +
* ZeroMemory the batchfile path ([[Christoph von Wittich]])
 +
* Fix problems with length calculations ([[Christoph von Wittich]])
 +
* Set correct varNameLen for %~dp0 ([[Christoph von Wittich]])
 +
* Do not overwrite terminating \0 char ([[Christoph von Wittich]])
 +
* Move code to the correct position to handle all cases in 'if' ([[Christoph von Wittich]])
 +
* Display short version information for "ver" as default ([[Christoph von Wittich]])
 +
* Rewrote alias handling for doskey compatibility: Implemented AddConsoleAliasA, GetConsoleAliasesLengthA, GetConsoleAliasesLengthW, half implemented AddConsoleAliasW, GetConsoleAliasW, GetConsoleAliasesW ([[Christoph von Wittich]])
 +
* Add support for adding and deleting doskeys ([[Christoph von Wittich]])
 +
* Bugfix pipe working again from cmd ([[Magnus Olsen]])
 +
 +
=== Control ===
 +
* Improve control a bit so it that can execute cpl specified on the command line ([[Johannes Anderwald]])
 +
* Completely revamped "control.exe": ([[Colin Finck]])
 +
** Now uses shell32 functions for loading the control panel applets, so that the mutex is used as well (see bug #781)
 +
** Supports all built-in command-line parameters, which are supported by the WinXP version.<br />This also added support for opening shell folders.
 +
** Loads other possible parameters from the registry.
 +
** Opens the Explorer Shell Folder instead of providing a standalone Control Panel.
 +
 +
=== Downloader ===
 +
* Check if memory was correctly allocated and zero it before use ([[Pierre Schweitzer]])
 +
* Zero memory using HeapAlloc flag ([[Stefan Ginsberg]])
 +
 +
=== Dwnl ===
 +
* Zero memory using HeapAlloc flag ([[Stefan Ginsberg]])
 +
 +
=== Explorer ===
 +
* Fix some memory and resource leaks ([[Christoph von Wittich]], [[Johannes Anderwald]])
 +
* Use explicit braces to make GCC happy ([[Christoph von Wittich]])
 +
* Pass no hardcoded english title to RunFileDlg ([[Matthias Kupfer]], bug #3340)
 +
 +
=== Explorer_new ===
 +
* Implement the code for the "Run" and "Shutdown" menu items, create stubs for the other custom commands ([[Colin Finck]])
  
 
=== Fontview ===
 
=== Fontview ===
 
* Add fontview to bootcd and add ttf file association ([[Timo Kreuzer]], bug #1411)
 
* Add fontview to bootcd and add ttf file association ([[Timo Kreuzer]], bug #1411)
 +
 +
=== Magnify ===
 +
* Simplify blitting the screen bitmap and fix a graphical glitch under ROS ([[Carlo Bramini]], bug #3241)
 +
* Fix the position of the mouse cursor ([[Carlo Bramini]], bug #3245)
 +
 +
=== Matrix ===
 +
* Fix storing and loading of registry values ([[Christoph von Wittich]])
 +
 +
=== Mazescr ===
 +
* Make mazescr show fullscreen by ([[Vytis Girdžijauskas]], bug #3166)
 +
 +
=== Msconfig ===
 +
* Directly call CreateProcess for commands in the tools page ([[Johannes Anderwald]], bug #3027)
 +
* Fix over-translated strings ([[Johannes Anderwald]], bug #3027)
 +
* Load boot.ini into listbox ([[Johannes Anderwald]])
 +
* Only destroy objects which are valid ([[Christoph von Wittich]])
 +
 +
=== Notepad ===
 +
* Improve status bar handling ([[Christoph von Wittich]], bug #3011)
 +
* Save window position ([[Christoph von Wittich]])
 +
* Call WriteFile with the correct buffer instead of a NULL pointer ([[Christoph von Wittich]], bug #2121)
 +
* Use FILE_SHARE_READ | FILE_SHARE_WRITE to open files which are in use by another process ([[Christoph von Wittich]], bug #3011)
 +
* Disable search and call SearchDialog when SearchNext is called without a string to search for ([[Christoph von Wittich]])
 +
 +
=== Regedt32 ===
 +
* Implemented Regedt32, which just calls Regedit ([[Carlo Bramini]], bug #3248)
 +
 +
=== Taskmgr ===
 +
* Improve taskmgr code ([[Carlo Bramix]], bug #3075)
 +
* Pass no hardcoded english title to RunFileDlg ([[Matthias Kupfer]], bug #3340)
 +
 +
=== Vgafontedit ===
 +
* Wrote a graphical editor application for our VGA fonts ([[Colin Finck]])
  
 
== Win32&trade; Libraries ==
 
== Win32&trade; Libraries ==
 +
=== ADVAPI32 ===
 +
* Sync the advapi32 crypt functions to Wine 1.0-rc2, makes us pass more Wine tests ([[Samuel Serapión]])
 +
* Implement SystemFunction036 (RtlGenRandom) based on the pseudo-random number generator RtlRandom ([[Colin Finck]])
 +
 +
=== COMCTL32 ===
 +
* Use a ClipRegion when collapsing, so that the TreeView works correctly. ([[Timo Kreuzer]])
 +
 
=== D3D9 ===
 
=== D3D9 ===
 
* Implemented Direct3DCreate9() ([[Gregor Brunmar]])
 
* Implemented Direct3DCreate9() ([[Gregor Brunmar]])
Line 145: Line 699:
 
** GetDeviceCaps
 
** GetDeviceCaps
 
** GetAdapterMonitor
 
** GetAdapterMonitor
 +
 +
=== DirectX ===
 +
* Add stub for dvdif.idl ([[Magnus Olsen]])
  
 
=== GDI32 ===
 
=== GDI32 ===
Line 151: Line 708:
 
* Add some usermode handling to SelectObject, currently if'ed out, as it doesn't properly work yet ([[James Tabor]])
 
* Add some usermode handling to SelectObject, currently if'ed out, as it doesn't properly work yet ([[James Tabor]])
 
* Add GDI_OBJECT_TYPE_COLORSPACE to SelectObject using SetColorSpace ([[James Tabor]])
 
* Add GDI_OBJECT_TYPE_COLORSPACE to SelectObject using SetColorSpace ([[James Tabor]])
 +
* Code cleanup for DdDestroySurface ([[Magnus Olsen]])
 +
* Implement D3dContextCreate, DdCanCreateD3DBuffer, DdDestroyD3DBuffer, DdLockD3D, and DdUnlockD3D ([[Magnus Olsen]])
 +
* BugFix DdFlip: Add left surface. Implemented support for it ([[Magnus Olsen]])
 +
* BugFix DdCreateDirectDrawObject: Use DeleteDC since we are using shared memory for it now ([[Magnus Olsen]])
 +
* Implement callback interface DvpVideoport, DvpCreateVideoPort, DvpDestroyVideoPort, DvpFlipVideoPort, DvpGetVideoPortBandwidth, DvpColorControl, DvpGetVideoSignalStatus, DvpGetVideoPortFlipStatus, DvpCanCreateVideoPort, DvpWaitForVideoPortSync, DvpUpdateVideoPort ([[Magnus Olsen]])
 +
* BugFix DdGetDriverInfo: The videoport callback interface now sets the pUserDvdPort->dwFlags correctly ([[Magnus Olsen]])
 +
* BugFix DdCreateSurface  we pass down all usermode surface data to win32k. left todo is translate back all surface data. ([[Magnus Olsen]])
 +
* Implement Callbacks misc, misc2, Color Control,  NT callbacks ([[Magnus Olsen]])
 +
* implemented DdCreateD3DBuffer callbacks ([[Magnus Olsen]])
 +
* BugFix smaller bug in DdCreateSurface callbacks the surface handle count was setup wrong before it was pass down to win32k ([[Magnus Olsen]])
 +
* partly implement Escape ([[Magnus Olsen]])
 +
* Implemented commands GETCOLORTABLE, GETEXTENDEDTEXTMETRICS, and ABORTDOC in Escape ([[Magnus Olsen]])
 +
* Partially implement gdi32 Escape, needed for getting opengl icd driver working ([[Magnus Olsen]])
 +
* Implement command ENDDOC: Escape ([[Magnus Olsen]])
 +
* Implement command STARTDOC: Escape ([[Magnus Olsen]])
 +
* Bugfix CreateBitmapIndirect adding SetLastError(ERROR_INVALID_PARAMETER) when CreateBitmapIndirect fail, based on suggestion by Filip Navara ([[Magnus Olsen]])
 +
 +
=== GDIPLUS ===
 +
* Import gdiplus from Wine ([[Dmitry_Chapyshev|Dmitry Chapyshev]])
 +
 +
=== INETMIB1 ===
 +
* Import inetmib1 from Wine ([[Dmitry_Chapyshev|Dmitry Chapyshev]])
 +
 +
=== KERNEL32 ===
 +
* Implement GetConsoleAlias[A/W], AddConsoleAlias for doskey support ([[Johannes Anderwald]])
 +
* Implement EnumSystemLanguageGroupsA/W, EnumSystemLocalesA, EnumSystemGeoID, GetGeoInfoA/W (partially), EnumSystemCodePagesA/W, EnumLanguageGroupLocalesA/W, EnumUILanguagesA/W, GetUserGeoID, SetUserGeoID, SetDefaultCommConfigA/W, GetDefaultCommConfigA/W, BeginUpdateResourceA/W, UpdateResourceA/W, EnumResourceLanguagesA/W, EndUpdateResourceA/W, EnumResourceTypesA/W, GetCalendarInfoA/W, EnumDateFormatsW, EnumCalendarInfoA/W, EnumCalendarInfoExA/W, FindFirstVolumeA/W, FindNextVolumeA/W ([[Dmitry Chapyshev]])
 +
* Fix GetCommState, GetSystemInfo, IsProcessorFeaturePresent, LockResource, EnumSystemLocalesW ([[Dmitry Chapyshev]])
 +
* Don't reset the last error on an exception for the lstr* functions. Also handle more than just access violation exceptions.<br />Behaviour verified under Windows XP. ([[Colin Finck]])
 +
* Return 0 instead of false when return type is DWORD ([[Christoph von Wittich]])
 +
* Remove unused alias struct ([[Christoph von Wittich]])
 +
* Use FILE_SHARE_READ | FILE_SHARE_WRITE in CopyFileExW to also copy opened files. Thanks to Christoph for the hint. ([[Colin Finck]])
 +
 +
=== KSUSER ===
 +
* Implemeted KsCreateAllocator, KsCreateClock, KsCreatePin, KsCreateTopologyNode ([[Magnus Olsen]])
 +
 +
=== MSVCRT ===
 +
 +
* Sync floating point and regular exception handler/filter/signal code to WINE.([[Samuel Serapión]])<br>
 +
* Sync all file and IO functions with WINE.([[Fireball]])<br>
 +
* Ported from LIBC 1.1.32A http://www.retropc.net/x68000/software/develop/lib/libc1132a/index.htm ([[Samuel Serapión]])<br>
 +
** Implement ismbcl0, ismbcl1, ismbcl2, mbstowcs, mbctohira, mbctokata, mbscspn, mbsspnp.<br>
 +
** Fixed up ismbcalpha, ismbbkalnum, ismbbkpunct, ismbbpunct, ismbcdigit, ismbclower,  isleadbyte, ismbcprint, ismbbkana, ismbcupper, ismbbtrail, ismbclegal, ismbcspace,  ismbcsymbol, mbtowc, mbctolower, mbsncat, mbsspn, mbctoupper, mbsupr.<br>
 +
 +
=== SECUR32 ===
 +
* Stub QuerySecurityPackageInfoA and QuerySecurityPackageInfoW ([[Colin Finck]])
 +
 +
=== SHELL32 ===
 +
* Initialize bitbucket properties dialog ([[Johannes Anderwald]])
 +
* Partly implement TRASH_CanTrashFile ([[Johannes Anderwald]])
 +
* Make the color of the background for the desktop window color ([[Johannes Anderwald]])
 +
* Display properties title for recycle bin folder ([[Johannes Anderwald]], bug #3140)
 +
* Implement a dialog to change icon for a shell link ([[Johannes Anderwald]])
 +
* Fix a problem in shell link to retrieve changed icon data ([[Johannes Anderwald]])
 +
* Use a list box for the OpenWithDialog ([[Johannes Anderwald]])
 +
* Implement SHOpenWithDialog api ([[Johannes Anderwald]])
 +
* Rewrite OpenWithDialog item loading code ([[Johannes Anderwald]])
 +
* Display application icon and company name for each entry ([[Johannes Anderwald]])
 +
* Use comctl32 MRU api for handling OpenWithList entries ([[Johannes Anderwald]])
 +
* Highlight selected entry on focus in OpenWithDialog ([[Johannes Anderwald]])
 +
* Use FriendlyTypeName key for retrieving the specialized file description ([[Johannes Anderwald]])
 +
* Translate folder string in browser ([[Johannes Anderwald]])
 +
* Fix displaying file description type ([[Johannes Anderwald]])
 +
* Display FileExt-File for file extension w/o file description, i.e. XML-File ([[Johannes Anderwald]])
 +
* Move file description strings to resource strings ([[Johannes Anderwald]])
 +
* Fixed a bug with file version informations ([[Pierre Schweitzer]])
 +
* Use a Mutex, so that CPL applets cannot be launched multiple times. ([[Gabriel Ilardi]], bug #781)
 +
* Replace 100 with MAX_PATH for array length of folder name ([[Christoph von Wittich]])
 +
* Give the Run Dialog resources a default title ([[Matthias Kupfer]], bug #3340)
 +
* Add support for passing no title to RunFileDlg, so that it uses the default title ([[Matthias Kupfer]], bug #3340)
 +
 +
=== UEXT2 ===
 +
* Added an Ext2 provider (uext2.dll). It's not yet used by Autochk ([[Pierre Schweitzer]])
 +
 +
=== UNTFS ===
 +
* Added a stub for untfs.dll ([[Pierre Schweitzer]])
  
 
=== USER32 ===
 
=== USER32 ===
 
* Use PatBlt and SelectObject instead of Nt functions in FillRect ([[Timo Kreuzer]])
 
* Use PatBlt and SelectObject instead of Nt functions in FillRect ([[Timo Kreuzer]])
 +
* Sync CharLowerA/W and CharUpperA/W with Wine (after replacing Wine's SEH with PSEH). This makes us passing all user32 wsprintf Wine tests. ([[Colin Finck]])
 +
* Do not delete bitmap objects in case setting the desktop failed, as it does not belong to the calling process anymore ([[Christoph von Wittich]])
 +
* GetAppCompatFlags implemented but not SetAppCompatFlags yet ([[Magnus Olsen]])
 +
 +
=== WININET ===
 +
* Fix invalid uses of WriteFile in Wine code ([[Colin Finck]])
 +
 +
=== WS2_32 ===
 +
* Implement support for FIONREAD in WSAIoctl ([[Colin Finck]])
  
{{Changelog}}
+
{{Navigation Changelog}}
[[Category:ChangeLogs]]
 

Latest revision as of 14:05, 7 September 2008

This is the changelog for ReactOS™ version 0.3.5 (released 30 June, 2008), 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.4 (released 22 January, 2008).

Contents

General

Generic 0.3.5 Changes

Translations

  • Begin German translation of Kernel32 errorcodes (Timo Kreuzer)
  • Update German translation of Kernel32 errorcodes (Michael Fritscher)
  • Convert some Usetup translations to OEM charset, so that they're displayed correctly (Colin Finck)
  • Greek translation Update for Cmd, Format, Fdebug, Input.cpl, Joy.cpl, Sysdm.cpl (Apostolos Alexiadis, bugs #3152, #3161)
  • Added/updated Italian translation for Magnify, Mstsc (Carlo Bramini, bugs #3098, #3210, #3245)
  • Added/updated Italian translations for Appwiz-new.cpl, Desk.cpl, Downloader, Input.cpl, Joy.cpl, Main.cpl, Mmsys.cpl, Shell32, Shellext, Syssetup, User32, Usetup, Vgafontedit, Winhelp, xcopy (Paolo Devoti, bugs #3005, #3051, #3883, #3105, #3119, #3136, #3231, #3275)
  • Added/updated Ukrainian translations for Appwiz-new.cpl, Cmd, Desk.cpl, Devmgr, Downloader, Mmsys.cpl, Reactos (Setup tool under Windows), RosBE Config, Shell32, Usetup, Vgafontedit (Artem Reznikov, bugs #3020, #3038, #3039, #3044, #3049, #3070, #3089, #3106)
  • Added/updated Bulgarian translations for Access.cpl, Appwiz-new.cpl, Control, Desk.cpl, Downloader, Fontview, Format, Imagesoft, Kbswitch, Magnify, Mazescr, Mmsys.cpl, Mstsc, Ncpa.cpl, Netid, calc, kbswitch, Notepad, Rasapi, Serialui, Shdocvw, Shell32, Sol, Syssetup, Usetup, Vgafontedit, Vmwinst, WineMine, Winhelp, Write, Xcopy (Станев, bugs #3041, #3042, #3092, #3093, #3173, #3174, #3192, #3204)
  • Added/updated Slovak translations for Appwiz.cpl, Butterflies, Desk.cpl, Downloader, Explorer, Fdebug, Input.cpl, Joy.cpl, Mazescr, Mmsys.cpl, Msgina, Mstsc, Ncpa.cpl, Netid, fontview, dxdiag, vmwinst, userinit, win32csr, Newdev, Ntvdm, Packmgr, Powercfg.cpl, Reactos (Setup tool under Windows), Roscalc, Setupapi, Shdocvw, Shell32, Sysdm.cpl, Syssetup, magnify, access, intl, mmsys, kbswitch, Usetup, Winhelp, Winlogon, Write, Usetup (Mário Kačmár, bugs #2988, #2992, #2993, #3021, #3033, #3053, #3110, #3198, #3215, #3284)
  • Added/updated Polish translations for Appwiz-new.cpl, Blankscr, Butterflies, Cylfrac, Desk.cpl, Downloader, Dxdiag, Fontview, Imagesoft, Input.cpl, Magnify, Matrix, Mazescr, Mmsys.cpl, Packmgr, Roscalc, Shellext, Starfield, Systeminfo, Usetup, Vgafontedit, Write (Olaf Siejka, bugs #3014, #3037, #3043, #3047, #3066, #3088)
  • Added/updated Spanish translations for Circles, Desk.cpl, Devmgr, Downloader, Dxdiag, Input.cpl, Intl.cpl, Main.cpl, Modemui, More, Mstsc, Newdev, Notepad, Regedit, Shell32, Shellext, Sysdm.cpl, Syssetup, Taskmgr, Timedate.cpl, Usetup, Vgafontedit, Vmwinst, Winhelp, Wordpad (Javier Remacha, bugs #2984, #2986, #2994, #3142, #3172, #3184, #3196, #3229, #3282)
  • Added/updated Lithuanian translations for Control, kbswitch, Downloader, Mmc, Mstsc, Usetup, Winhelp, explorer-new, shimgvw (Vytis Girdžijauskas, bugs #2991, #3188, #3277, #3365)
  • Added/updated Czech translations for Cacls, Charmap, Expand, Find, Format, Hdwwiz, Kbswitch, Logoff, More, Notepad, Regsvr32, Rundll32, Solitaire, Userinit, Usetup (Radek Liška, bugs #3078, #3090, #3113, #3175, #3194)
  • Updated German translations for Csrss, Ntvdm (Andreas Dieringer)
  • Added/updated German translations for Appwiz-new.cpl, Desk.cpl, Input.cpl, Mmsys.cpl (Daniel Reimer)
  • Added/updated Korean translations (Seungju Kim, bugs #3144, #3145, #3149, #3151, #3153, #3154, #3155, #3156, #3157, #3165, #3180, #3182, #3261)
  • Added/updated French translations for Kbswitch, Desk.cpl, Dxdiag, Magnify, Main.cpl, Mmsys.cpl, Regedit, Shell32, Syssetup, Vgafontedit, Usetup (Pierre Schweitzer)
  • Added all missing Strings in Usetup for translation, added the English Strings to all USETUP resources and activated them. This makes translating easier. (Daniel Reimer)
  • Resort Rosapps, Setupapi and User32 RC Files. Now all Resource files except the ones synched with Wine are sorted the same way. (Daniel Reimer)
  • Remove all Manifests. They will be autogenerated in the future. This is one step to MSVC Support, too. (Daniel Reimer)
  • Checked for the right Font for Asian Languages and set a unified Font size for them. (Daniel Reimer)
  • Convert Greek translations in Usetup to code page 737 and enable (Christoph von Wittich)
  • Convert translations to DOS encodings by Vytis Girdžijauskas and Olaf Siejka (Christoph von Wittich, bug #3015)
  • Add/update German translations for kbswitch, explorer, format, expand, winlogon, syssetup, shell32 and devmgr. (Matthias Kupfer)
  • Add Korean translation for explorer-new by Seungju Kim. (Matthias Kupfer, bug #3368)
  • Massive Changes in almost all RC Files. Now all non Wine Synched RC Files use these rules:
 1. Use a DIALOGEX template instead of a DIALOG template.
 2. Set the DS_SHELLFONT flag in your dialog styles.
 3. Set the dialog font to "MS Shell Dlg".
 4. Remove DS_FIXEDSYS
 5. Remove DS_SETFONT
 6. Remove DS_3DLOOK
 -> Windows 2000+ Look

Host Tools

Buildno

CabMan

  • Add an -M option to specify, which compression codec shall be used (either "raw" or "mszip") (Colin Finck)
  • Enable the RAW codec in the SelectCodec() function (Colin Finck)
  • Fix parsing the -L and -P parameters, when there's no whitespace between the parameter and the value (Colin Finck)
  • Remove the version number as it was never updated (Colin Finck)
  • Fix setting the file attributes when extracting files (Colin Finck)
  • Add support for multiple search criterias, which are actually checked.
    This makes it possible to pass parameters like "*.rbuild *.txt" to the cabman command line for adding, displaying and extracting files in a cabinet. (Colin Finck)
  • Overhaul CreateSimpleCabinet, make it able to add multiple files to the cabinet using the new search criteria functions. (Colin Finck)
  • Fix setting the file offsets.
    This fixes the extraction of any file, which is not the first file in the cabinet. (Colin Finck)
  • Fix the extraction of files with more than 32 characters in the file name (Colin Finck)
  • Fix compilation with GCC 4.3.x (Colin Finck)

RBuild

Sysreg

Core

Bootloader (FreeLoader)

  • Develop and switch to the new, a lot more advanced memory manager, which is compatible both with ReactOS and NT-style boot types. Added: memory types for each allocation request, ability to alloc and free memory from the heap, ability to use 1 megabyte of low memory too (which was just wasted previously), removed: a bunch of hacky stuff. (Aleksey Bragin)
  • Added a real heap manager (based on bget) into the memory manager, and switched all small memory allocations inside FreeLdr to this heap manager.(Aleksey Bragin)
  • New way of storing hardware configuration tree (compatible).(Aleksey Bragin)
  • Developed an NT kernel boot support module (codename "winldr") and integrated it into FreeLdr.(Aleksey Bragin)
  • Allow runtime enabling of caching support in FreeLdr's filesystem layer.(Aleksey Bragin)
  • Change in FreeLdr's build process: Build FreeLdr the same way other modules are built, by using gcc -Wl. This allows us to get rid of the /math directory and use -lgcc instead. - Get rid of -ffreestanding, -fno-builtin and -O2. The former are not needed anymore since we're properly building a "freestanding" image anyway, just like the kernel. The latter is removed since optimization flags come from the project settings. Update code to fix warnings caused since we've removed -ffreestanding. GCC now warns about printf, sprintf and other C calls (including a change from %wZ to %S in winldr.c's sprintf calls). Don't use printf anymore -- rename freeldr's implementation to TuiPrintf. Just like in the kernel, you can't use printf in freeldr (since it's not running in a standard/full CRT environment). 124kb saved!(Aleksey Bragin)
  • The bootloader must zero user shared data page before passing control to the kernel. This fixes the "invalid timer state", "assert(SharedUserData->NumberOfPages == 0" family of bugs after warm reboot. (Aleksey Bragin, bug #3085).
  • Make identifiers in configuration trees ASCII-strings, as they are in real NT.(Aleksey Bragin)
  • Map APIC pages, if they are present. Set the size of the memory new MM uses to 24Mb. Set heap size to 4Mb.(Aleksey Bragin)
  • Allocate memory for groups list dynamically, and make it enough (4096 bytes) for a really long list of groups. This makes Windows 2003 booting up to explorer without crashing.(Aleksey Bragin)
  • Heavily bugfix MmInitializeMemoryManager in freeldr, add slightly better bios memory map projection to the loader memory types, but this is still being investigated.(Aleksey Bragin)
  • Mark APIC's memory as WriteThrough / CacheDisabled.(Aleksey Bragin)
  • Fix a bug in MmAllocateMemoryWithType, where result of MmFindAvailablePages was checked against -1 in error case, when in reality it's 0 (spotted by Alex).(Aleksey Bragin)
  • WINLDR: Load drivers database (AppPatch/drvmain.sdb), so Windows could use it if needed.(Aleksey Bragin)
  • WINLDR: Don't store memory allocation descriptors inside the bootloader, since this memory is unmapped in kernelmode. Fixes a pagefault after switching to paged mode. Store the configuration data in the LPB.(Aleksey Bragin)
  • WINLDR: Different behavior for NT4 or NT5+ boot: NT4 requires text mode to be set up, and further version of Windows OS require a different preparation.(Aleksey Bragin)
  • WINLDR: Properly fill ACPI BIOS configuration entry (a couple of ACPI specification structures were added). This makes Windows 2003 initialize HAL (ACPI version) properly and be able to connect to the debugger.(Aleksey Bragin)
  • WINLDR: Fix an incorrect type of memory behind PDE, HAL mapping and kernel segment pagetables. They should be MemoryData (and change allocation algorithm slightly). With this change Windows 2003 boots up to the BSOD showing ACPI_BIOS_ERROR.(Aleksey Bragin)
  • WINLDR: Fix a typo in the if branch, which resulted in marking almost all memory above the bootloader as "FirmwareTemporary", even reserved ACPI pages. This should fix the ACPI BSOD Windows 2003 and XP show up. If a memory is marked as "free", leave it so, without transferring to FirmwareTemporary.(Aleksey Bragin)
  • Implement ramdisk support for FreeLoader (ReactOS Portable Systems Group)
  • Move architecture independent code out of arch/ folder (ReactOS Portable Systems Group)
  • Remove AcpiPresent flag from non-x86 builds, as it is x86 specific. Have ACPI detection set the appropriate flag for each architecture if detected (ReactOS Portable Systems Group)
  • Implement MachPrepareForReactOS as a generic pre-boot preparation routine, replacing the architecture specific functions (ReactOS Portable Systems Group)
  • Implement a proper ARM startup routine (ReactOS Portable Systems Group)
  • Fix bug in RamDiskInit that allowed reading from null pointers (ReactOS Portable Systems Group)
  • Build Freeloader with a static libgcc (ReactOS Portable Systems Group)
  • Implement returning a memory map on ARM (ReactOS Portable Systems Group)
  • Ramdisk support in ArmDiskGetBootVolume, with fixes for hex parameters and proper return values (ReactOS Portable Systems Group)
  • Fix command line parsing in Freeloader (ReactOS Portable Systems Group)
  • Enable ramdisk support so disk read/writes are handled by ramdisk routines (ReactOS Portable Systems Group)
  • Fix ramdisk start sector reporting (ReactOS Portable Systems Group)
  • Arm routines now use various i386 disk routines that were highly generic and work across platforms (ReactOS Portable Systems Group)
  • Remove redundant code for reading and writing to various ports and registers, making use of intrinsics instead (ReactOS Portable Systems Group)
  • Implement basic console support through the serial port, providing output when FreeLoader initializes (ReactOS Portable Systems Group)
  • Add support for ARM Versatile/PB platform, allowing qemu to emulate the ARM build of ReactOS (ReactOS Portable Systems Group)
  • Add support for PL011 UART, allowing for console output on the Versatile platform (ReactOS Portable Systems Group)
  • Define ARM_LOADER_BLOCK for use when FreeLoader passes control to the kernel (ReactOS Portable Systems Group)
  • Define region for storing TTB, aligned to 16KB (ReactOS Portable Systems Group)
  • Allocate the kernel, interrupt and abort stacks, idle thread and process, boot PRCB, ad PCR and PDR pages (ReactOS Portable Systems Group)
  • Map Versatile serial port into virtual memory (ReactOS Portable Systems Group)
  • Remove 1MB page hacks (ReactOS Portable Systems Group)
  • Setup NLS data in loader block (ReactOS Portable Systems Group)
  • Setup loader block extension fields needed to pass ExpIsLoaderValid (ReactOS Portable Systems Group)
  • Setup Registry data in the ARM loader block (ReactOS Portable Systems Group)
  • Convert all loader blocks to virtual addresses (ReactOS Portable Systems Group)
  • Erase the timer string when needed. bug #3046 (Seungju Kim, Aleksey Bragin)
  • Do not draw the standard UI in minimalistic mode (Christoph von Wittich)
  • Remove duplicated code (Christoph von Wittich)
  • Load system registry in ARM (ReactOS Portable Systems Group)
  • Add support for ARC Disk Information/Signature (ReactOS Portable Systems Group)

Kernel and Executive (NTOSKRNL)

Cache

  • Switch to using the cache bitmap (the cache manager uses one large memory region within the kernel address space and allocate/deallocate space from this block over a bitmap). It makes file copying process (not only in the 1st stage) a bit more stable. Cacheseg mapping region size enlarged to 256Mb. (bug #2872, Aleksey Bragin)
  • Support NtFlushInstructionCache for ARM (ReactOS Portable Systems Group)

CM

  • cmlib: Take into account non-fast/non-hash indices in CmPrepareHive, apply similar changes to freeldr's registry importing function (Filip Navara)
  • Fix out-of-bounds access in configuration manager, spotted by Christoph & GCC 4.3.0 (Aleksey Bragin)

EX

  • Fix ExReleaseResourceLock(), spotted by Alex (Aleksey Bragin)
  • Use C define for the bit in the wait block flags that we set to specify waiting, instead of a hardcoded "1" (Aleksey Bragin)
  • Fix broken code when trying to find the last wait block in several parts of the pushlock code (Aleksey Bragin)
  • Fix broken algorithm in the optimization of the pushlock waiter list (Aleksey Bragin)
  • The wake event for the pushlock should be a synchronization event, not a notification event (Aleksey Bragin)
  • Fix broken algorithm during the release of a pushlock (in shared cases) (Aleksey Bragin)
  • Fix broken code during "try to wake pushlock" (Aleksey Bragin)
  • Remove DbgPrints from inlined pushlock code during contention (Aleksey Bragin)
  • All of ex-changes are made thanks to Alex for noticing these bugs and providing advice on the fixes. This fixes lots of race issues in the handle table implementation
  • Replace KfRaise/LowerIrql with Ke instead (ReactOS Portable Systems Group)
  • Support ARM in SharedUserData->ImageNumberLow/High during ExpInitializeExecutive (ReactOS Portable Systems Group)
  • Fix interlocked list functions (ReactOS Portable Systems Group)

FSRTL

  • Implemented FsRtlDissectName based on MSDN description (Aleksey Bragin, Pierre Schweitzer)
  • Update FSRTL_ADVANCED_FCB_HEADER to support newer version headers, split Reserved into two bitfields: Reserved and Version (Aleksey Bragin)
  • Implemented FsRtlNotifyChangeDirectory: it just redirects to FsRtlNotifyFullChangeDirectory (which is *NOT* implemented) (Pierre Schweitzer)

IO

KD

KE

MM

OB

  • Fix leaking an entry in some cases during ObpFreeCapturedAttributes call. For more details: http://www.reactos.org/forum/viewtopic.php?t=5311 (Aleksey Bragin)
  • Fix initialiization of the object manager lookaside lists, don't leak object locks when destroying an object type, make directory objects and symbolic links case-insensitive, Create \KernelObjects directory during startup. (Aleksey Bragin)
  • Lock only the object header for an object instead of the entire object type, for better contention. Implement exclusive/shared lock and release routines around the existing lock slots in the object type (Aleksey Bragin)
  • Rewrite the SD Cache functions to use the Windows 2003 structures (thanks to Alex for providing them) (Aleksey Bragin)
  • Use pushlocks instead of the fast mutex that was previously used (Aleksey Bragin)
  • Implement the exported Ob APIs which were added in Windows XP to access the Sd cache ObReference/DereferenceSecurityDescriptor and ObLogSecurityDescriptor). These are used by file systems (such as NPFS) on Windows XP and higher (Aleksey Bragin)
  • Thanks to Alex for reporting all the CM issues.

PO

  • Fix of the "Pos InitData failed"-Error and "CreateEnergyList failed"-Error in power options. (Alexander Wurzinger, bug #2469)

PS

Hardware Abstraction Layer (HAL)

Run Time Library (RTL)

Kernel Mode Drivers

AFD

All filesystem drivers

  • Pass cache manager callbacks structure at every CcInitializeCacheMap() call, it's mandatory (Aleksey Bragin)
  • There is no reason for CDFS to use CcRos-specific functions, it ends up with the same CcRosInit/Uninit with the same CacheSegmentSize = PAGE_SIZE (Aleksey Bragin)
  • Remove ros-specific Cc functions usage (Aleksey Bragin)
  • Set default return of IRP_MJ_QUERY_INFORMATION to STATUS_INVALID_PARAMETER (Pierre Schweitzer)

BLUE

  • Add support for loading the PSF font file format (Christoph von Wittich)
  • Allow file mode 2 for PSF files (still ignoring unicode data) (Christoph von Wittich)
  • Read the VGA fonts from a "vgafonts.cab" file instead of "vgafont.bin" (ZIP format)
    This file is automatically created on every build by using the new CabMan simple cabinet functions (Colin Finck)

BOOTVID

EXT2

FASTFAT

I8042PRT

  • Don't return if no keyboard or mouse is present. Instead continue detecting the devices.
    This fixes the bug that you could not use the keyboard, when no mouse was plugged in. (Colin Finck)
  • Simplified the code for connecting the interrupts. (Colin Finck)
  • Only get the first two bytes in a loop and issue just one i8042ReadDataWait command for the last byte when resetting the mouse.
    This reduces the "blank screen time" in Usetup from 45 seconds to 3 seconds on my ECS K7S5A Pro and some other boards, when no mouse is plugged in. (Colin Finck)
  • Remove much code for the mouse initialization, which had been imported from the ancient "psaux.sys" driver.
    Don't use the "Get ID" command anymore, which is not available on all systems. This way, some more mice should be detected now. (Colin Finck)
  • First detect the mouse and then the keyboard. If we do it the other way round, some systems throw away settings like the keyboard translation, when detecting the mouse.
    This solves the popular keyboard detection bug on real hardware in 0.3.4. (Colin Finck)

KDCOM

NDIS

  • Fixing a typo in ndis rename NdisGetSystemUptime to NdisGetSystemUpTime for the stub (Magnus Olsen)
  • Implemented NdisSystemProcessorCount, NdisGetCurrentProcessorCounts, NdisGetSystemUptime, thanks KJK for the help optimizing it, NdisScheduleWorkItem, thanks to Art Yerkes for help (Magnus Olsen)
  • Add a missing struct NDIS_WORK_ITEM and missing prototype NdisScheduleWorkItem (Magnus Olsen)

NTFS

RAMDISK

SERIAL

  • Always set DO_BUFFERED_IO or DO_DIRECT_IO, so that IRP_MJ_READ/IRP_MJ_WRITE work (Hervé Poussineau)
  • Fix FileStandardInformation and FilePositionInformation classes (Hervé Poussineau)

SERENUM

VIDEOPRT

  • Only increment VideoPortDeviceNumber, when IntVideoPortCreateAdapterDeviceObject and IntVideoPortFindAdapter succeeded.
    This fixes loading the CL54xx miniport driver. Anyway, its DDI driver is still a problem. (Filip Navara)

NT System Library (NTDLL)

Static Libraries

NTFSLIB

SCRNSAVE

  • Remove much Win9x-specific stuff from the library and make it more compatible to the MS version of the library. (Colin Finck)

Keyboard Layouts

  • Add the following keyboards: Albanian (AL), Russian Typewriter (RU1), US IBM Arabic 238_L layout (USA), Icelandic (IC), Canadian French Legacy (FC), Canadian Multilingual Standard (CAN), Dutch (NE), Estonian (EST), Georgian (GEO), Latvian (LV), Macedonian (MAC), Romanian (RO), Tatar (TAT), US Dvorak for left hand (USL), US Dvorak for right hand (USR), US International (USX), Serbian Cyrillic (YCC), Serbian Latin (YCL), Turkish Q (TUQ), Turkish F (TUF), Ukrainian Student (URS), Uzbek Cyrillic (UZB), Vietnamese (VNTC), Azeri Cyrillic (AZE), Azeri Latin (AZEL), Belarusian (BLR), Portuguese Brazilian ABNT2 (BR), Kazakh (KAZ) (Dmitry Chapyshev)
  • Add the following keyboards: Armenian Eastern [ARME], Armenian Western [ARMW], Arabic (101) [A1], Arabic (102) [A2], Arabic (102) AZERTY [A3] (Alexey Komarov)
  • Add Korean keyboard layout template (Matthias Kupfer, bug #3345)
  • Slovak keyboard layout update (Milan Margus, bug #1251)

USETUP

Win32™ Personality

User mode subsystem server (CSRSS)

Kernel-mode subsystem server (Win32K)

  • Implement NtGdiSelectBitmap, NtGdiSelectBrush, NtGdiSelectFont and NtGdiSelectPen based on NtGdiSelectObject and tests, move those functions to dc.c, remove NtGdiSelectObject (Timo Kreuzer)
  • Fix some bugs in NtGdiSelectBitmap (Timo Kreuzer)
  • Add GdiBCSelObj to GdiFlushUserBatch (James Tabor)
  • Fix type field calculation in GDIOBJ_CovertToStockObject (Timo Kreuzer)
  • Change gdi object deleting mechanism to a windows compatible one (Timo Kreuzer)
  • Fix a DC handle leak in UserDrawIconEx (Timo Kreuzer)
  • remove GDIOB_XxxDbg functions (Timo Kreuzer)
  • Enhance backtracing and debug output for GDI_DEBUG (Timo Kreuzer)
  • Implement GDIOBJ_ValidateHandle() (Timo Kreuzer)
  • Simplify a check in UserGetDcEx (Timo Kreuzer)
  • Fix a check in UserGetDcEx (Timo Kreuzer)
  • Remove DCX_KEEPCLIPRGN flag when creating a clip region in UserGetDcEx, fixes a region leak (Timo Kreuzer)
  • Don't abuse GDIOBJ_LockObj to validate a handle, use GDIOBJ_ValidateHandle instead (Timo Kreuzer)
  • Add some additional debug output to GDIOBJ_LockObj (Timo Kreuzer)
  • Recurse into IntGdiDeleteDC directly, instead of going back to NtGdiDeleteObjectApp and pass Force parameter on (Timo Kreuzer)
  • Don't create a background brush for a new menu, fixes a brush leak (Timo Kreuzer)
  • Use intrinsic interlocked functions for gdi object locking (Timo Kreuzer)
  • Add a function to get a full stackbacktrace (Timo Kreuzer)
  • Remove obsolete syscalls NtUserGetDesktopWindow and NtUserGetParent (Stefan Ginsberg)
  • Fix a mem leak in bitmap code (Timo Kreuzer)
  • BITMAPOBJ_CopyBitmap: release lock and delete created bitmap on failure, copy flags, fixes a memory leak (Timo Kreuzer)
  • Rename ObmXxx functions to UserXxx functions (Timo Kreuzer)
  • Remove some macros (Timo Kreuzer)
  • Move function prototypes to object.h (Timo Kreuzer)
  • Implement UserReferenceObjectByHandle creating a reference to the object, used for cursoricon stuff so far (Timo Kreuzer)
  • Rewrite object manager functions to reasonably handle references (Timo Kreuzer)
  • Dereference cursoricons correctly, so they will really get deleted, fixes a cursoricon leak (Timo Kreuzer)
  • Destroy submenus in NtUserDestroyMenu, fixes a menu leak (Timo Kreuzer)
  • Free the buffer of the menu text, fixes a mem leak (Timo Kreuzer)
  • Delete old bitmaps in NtUserSetCursorContent, fixes a bitmap leak (Timo Kreuzer)
  • Delete monitor object on failure (Timo Kreuzer)
  • Move NtGdiFlushUserBatch prototype to ntgdi.h (Timo Kreuzer)
  • Move pool tags from ntgdihdl.h to win32k/tags.h (Timo Kreuzer)
  • Move DC struct from ntgdihdl.h to win32k/dc.h (Timo Kreuzer)
  • Replace GDIEMPTYHDR with BASEOBJECT (Timo Kreuzer)
  • Use BASEOBJECT in DC and GDIDEVICE structures (Timo Kreuzer)
  • Rename some NtGdiXxx functions that don't deserve that name and remove some that were defined by a macro, but don't exist on windows (#if 0'ed atm) (Timo Kreuzer)
  • Remove RetrieveDisplayHDC() prototype, function doesn't exist (Timo Kreuzer)
  • Remove typecasts PBITMAPOBJ <-> PSURFOBJ (Timo Kreuzer)
  • Use GDIOBJ_ShareLockObj / _UnlockObjByPtr instead of Eng(Un)LockSurface as BITMAPOBJ_Un/LockObj (Timo Kreuzer)
  • Add BASEOBJECT to bitmap, brush, palette, font and region structures (Timo Kreuzer)
  • Move bad ntuser syscalls in ntuser.h to the bottom (Stefan Ginsberg)
  • Sort win32k export list alphabetically (Stefan Ginsberg)
  • Remove obsolete Win32kInitialize and NtGdiGetAspectRatioFilterEx (Stefan Ginsberg)
  • Add missing exports to win32k.def (all from xp) (Timo Kreuzer)
  • Don't free the memory for the palette entries in IntSetPalette (Timo Kreuzer, bug #3072)
  • Reference CursorIcon before deleting it (Timo Kreuzer)
  • IntGetPaintMessage: Set MessageQueue->PaintCount to 0, if no dirty Window is found. Stops spamming the debuglog (Timo Kreuzer)
  • UserGetDCEx: Check if a dce's hDC is valid, if not warn and create a new one (Timo Kreuzer)
  • Don't dump the stack backtrace twice in GDIOBJ_Xxx functions (Timo Kreuzer)
  • Replace GDIOBJHDR with BASEOBJECT structure (Timo Kreuzer)
  • Remove HandleTable parameter from GDIOBJ_Xxx functions (Timo Kreuzer)
  • Fix a wrong typecast in PALETTE_SetMapping (Timo Kreuzer)
  • Call PsGetCurrentThreadWin32Thread() and PsGetCurrentProcess() only once in IntGetWinstaObj (Timo Kreuzer)
  • Fix a leakage during DC deletion (introduced in revision 773) (Samuel Serapion)
  • Remove dereferencing a monitor object during successive attach branch in IntAttachMonitor (Aleksey Bragin)
  • Rename and add two application compatibility flags to W32THREADINFO structure (one for ancient compat flags, and one for a bit more modern flags), implement GetAppCompatFlags() and GetAppCompatFlags2() (Aleksey Bragin)
  • Unlink window when WM_CREATE message fails, fixes a crash (Johannes Anderwald)
  • Call ExDeleteResourceLite() before freeing an ERESOURCE, otherwise it will remain in the system resource list (Samuel Serapion)
  • Check if the menu object has really been found to avoid memory corruptions (Johannes Anderwald)
  • Implemented DxEngLockHdev and DxEngUnlockHdev, thanks to Jim Tabor for the help with these two (Magnus Olsen)
  • Added full trace for dxeng API in win32k (Magnus Olsen)
  • Remove several deprecated NtUser functions, replacing them with appropriate functions (Stefan Ginsberg)
  • Fix calculation of cwc parameter for NtGdiGetFontResourceInfoInternalW (Timo Kreuzer)
  • Make some default text metric settings compatible to Windows XP (Timo Kreuzer)
  • Zero out lfWidth member when returning logfont in IntGdiGetFontResourceInfo (Timo Kreuzer)
  • Move WNDPROC_INFO structure from ntuser.h to win32k/include/class.h (Stefan Ginsberg)
  • Use GDIOBJ_SetOwnership instead of GDIOB_CopyOwnership in DC_SetOwnership (Timo Kreuzer)
  • Make DC structure more Windows XP compatible (Timo Kreuzer)
  • (Int)EngGradientFill: if no CLIPOBJ is given, create a CLIPOBJ from bounds rect (Timo Kreuzer)
  • EngLineTo: if no CLIPOBJ is given, create a CLIPOBJ from bounds rect (Timo Kreuzer)
  • Free allocated style array in NtGdiExtCreatePen on failure (Timo Kreuzer)
  • IntGdiLineTo: the dc pen might be deleted, don't ASSERT, instead fall back to BLACK_PEN (Timo Kreuzer)
  • EngCreateClip: allocate CLIPGDI, not only CLIPOBJ (Timo Kreuzer)
  • Make Simplecall definitions (NtUserCallXxx) compatible to different Windows versions (Timo Kreuzer)
  • Split ntuser/misc.c into sysparams.c, simplecall.c and misc.c (Timo Kreuzer)
  • Fix handling of unsafe string parameter in NtGdiGetFontResourceInfoInternalW (Timo Kreuzer)
  • Fix cj parameter type in EngAllocUserMem (SIZE_T, not ULONG) (Timo Kreuzer)
  • fix typecast of pointer (ULONG -> ULONG_PTR) in LdrGetProcedureAddress (Timo Kreuzer)
  • Implement SPI_GET/SETSTICKYKEYS, SPI_GET/SETFILTERKEYS, SPI_GET/SETTOGGLEKEYS, SPI_GET/SETSERIALKEYS, SPI_GET/SETMOUSEKEYS, SPI_GET/SETKEYBOARDPREF, SPI_GET/SETSHOWSOUNDS, SPI_GET/SETACCESSTIMEOUT (Timo Kreuzer, bug #3133)
  • Make the screensaver lib hide the cursor directly after creating it (Timo Kreuzer, bug #2965)
  • NtUserCreateWindowEx: use RETURN() macro to not bypass cleanup (Timo Kreuzer)
  • Improve appearance of disabled buttons by using DrawText 2 times instead of using DrawState (Timo Kreuzer)
  • Rename 2nd parameter of NtUserGetClipboardData from Unknown1 to pBuffer nad use SEH to copy data (Timo Kreuzer)
  • Change (Nt)UserGetWindowDC return type from DWORD to HDC (Timo Kreuzer)
  • Fix several typecasts, making them 64bit safe (Timo Kreuzer)
  • Use InterlockedExchangePointer instead of InterlockedExchange for pointers (Timo Kreuzer)
  • NtUserEnumDisplaySettings: change returns type to NTSTATUS, remove SerLastError, fix parameter validation and return value (Timo Kreuzer)
  • Fix wrong debug output when a process is terminated, by deleting it's objects in a proper order (Timo Kreuzer, bug #2954)
  • Update the BaseObjects hHmgr field when converting an object to a stock object (Timo Kreuzer)
  • Optmize NtGdiFlushUserBatch by locking the dc once instead of doing it for every object (Timo Kreuzer)
  • Fix wrong pointer calculation in NtGdiFlushUserBatch (Timo Kreuzer)
  • Remove hFirstBitmap from the WIN_DC_INFO structure (Timo Kreuzer)
  • Use StockObject(DEFAULT_BITMAP) for the default bitmap when creating a memory dc (Timo Kreuzer)
  • Use dc.DcLevel.hPal for the palette instead of using dc.PalIndexed and dc.w.hPalette (Timo Kreuzer)
  • Fix palette implementation: use the surface's palette to crate the xlate objects, default to the device default palette. The dc palette defaults to stock object default palette (Timo Kreuzer)
  • Implement IntCreateXlateForBlt, used in BitBlt etc functions to perform the needed operations to create the xlate object instead of duplicating the code (Timo Kreuzer)
  • DxEngGetHdevData: return a DWORD_PTR instead of a DWORD, use DWORD_PTR as Data parameter (Timo Kreuzer)
  • DxEngGetDcState: return a DWORD_PTR instead of a DWORD (Timo Kreuzer)
  • Rename GDIOBJ_AllocObj to GDIOBJ_allocObjWithHandle and make it return a pointer to a locked object (Timo Kreuzer)
  • Implement GDIOBJ_AllocObj that only allocates a memory object without a handle (Timo Kreuzer)
  • Rename GDIOBJ_FreeObject to GDIOBJ_FreeObjByHandle (Timo Kreuzer)
  • Implement GDIOBJ_FreeObj that only frees the memory object (Timo Kreuzer)
  • Fix NtGdiCreateClientObject and NtGdiDeleteClientObject (Timo Kreuzer)
  • NtGdiHfontCreate: use SEH instead of MmCopyFromCaller (Timo Kreuzer)
  • Don't use shared locks, when modifying bitmaps (Timo Kreuzer)
  • Move code from NtUserCallOneParam to UserShowCursor (Timo Kreuzer)
  • Make NtUserSetCursor hide Cursor on hCursor = NULL (Timo Kreuzer)
  • IntEngGradientFill: fix cleanup when calling the driver (Timo Kreuzer)
  • Fix calculation of character height by preventing edx register to be clobbered in FT_MulFix and reenabling commented out code (Jeffrey Morlan, bug #3346)
  • Fix coordinate transformation in NtGdiSetDIBitsToDevice (Jeffrey Morlan, bug #3200, bug #3294)
  • GDIOBJ_FreeObjByHandly: unlock handle table entry when object to delete was locked (Timo Kreuzer)
  • REGION_AllocRgnWithHandle: unlock region before trying to delete it on failure (Timo Kreuzer)
  • Fix calculation of yBaseUnit in GdiGetCharDimensions (Timo Kreuzer)
  • Fix an endless loop in IntDereferenceClass (Timo Kreuzer, bug #2142)
  • Fix a crash in co_MsqTranslateMouseMessage, by correcting the callers next list entry, if it might have been deleted (Timo Kreuzer, bug #2317)

Services

services

tcpsvcs

umpnpmgr

Control panel applets

Appwiz-New

Desk

  • Rename german dialog to match Windows XP SP2+ name (Johannes Anderwald)
  • Fix compilation with MSVC (Johannes Anderwald)
  • Allow environment variables to be used in the "Wallpaper" registry value. (Vytis Girdžijauskas)
  • Do not display the file suffix after adding a wallpaper through the "Browse" dialog. (Vytis Girdžijauskas)
  • After using the "Browse" dialog, select the newly added item and scroll to the bottom to show it. (Colin Finck)
  • Add the LVS_SHOWSELALWAYS style to the ListViews, so items are also highlighted, when the ListView does not have the focus (Colin Finck)

Input

Intl

Ncpa

Usrmgr

  • Do not touch the new user name if the user cancels the rename action (Eric Kohl)
  • Implement the creation and removal of user accounts (Eric Kohl)
  • Check that the user name does not contain any illegal characters (Eric Kohl)
  • Check that both passwords are the same (Eric Kohl)
  • Limit the maximum user name length to 20 characters (Eric Kohl)
  • Implement user options properly (Eric Kohl)
  • Limit the maximum user name length to 20 characters when a user name is changed from within the users list (Eric Kohl)
  • Check user name for illegal characters when it is changed from within the user list (Eric Kohl)
  • Add code to create, delete and rename user groups (Eric Kohl)
  • Rename CheckUserName() to CheckAccountName() and move it to a new source file (misc.c) (Eric Kohl)
  • Add the general user properties page, settings are visible but cannot be changed yet (Eric Kohl)

Sysdm

  • Replace IsUserAdmin (Wine API) with IsUserAnAdmin (Shell32 API) (Colin Finck)

Timedate

Win32™ Applications

3dtext

  • Reduce the amount of code significantly by using the scrnsave library (Colin Finck)

Autochk

  • Added the support of untfs.dll to autochk.exe (and a bit reviewed code when loading provider) (Pierre Schweitzer)

Blankscr

  • Reduce the amount of code to a minimum by using the scrnsave library (Colin Finck)

Charmap

Cmd

Control

  • Improve control a bit so it that can execute cpl specified on the command line (Johannes Anderwald)
  • Completely revamped "control.exe": (Colin Finck)
    • Now uses shell32 functions for loading the control panel applets, so that the mutex is used as well (see bug #781)
    • Supports all built-in command-line parameters, which are supported by the WinXP version.
      This also added support for opening shell folders.
    • Loads other possible parameters from the registry.
    • Opens the Explorer Shell Folder instead of providing a standalone Control Panel.

Downloader

Dwnl

Explorer

Explorer_new

  • Implement the code for the "Run" and "Shutdown" menu items, create stubs for the other custom commands (Colin Finck)

Fontview

  • Add fontview to bootcd and add ttf file association (Timo Kreuzer, bug #1411)

Magnify

  • Simplify blitting the screen bitmap and fix a graphical glitch under ROS (Carlo Bramini, bug #3241)
  • Fix the position of the mouse cursor (Carlo Bramini, bug #3245)

Matrix

Mazescr

Msconfig

Notepad

Regedt32

  • Implemented Regedt32, which just calls Regedit (Carlo Bramini, bug #3248)

Taskmgr

Vgafontedit

  • Wrote a graphical editor application for our VGA fonts (Colin Finck)

Win32™ Libraries

ADVAPI32

  • Sync the advapi32 crypt functions to Wine 1.0-rc2, makes us pass more Wine tests (Samuel Serapión)
  • Implement SystemFunction036 (RtlGenRandom) based on the pseudo-random number generator RtlRandom (Colin Finck)

COMCTL32

  • Use a ClipRegion when collapsing, so that the TreeView works correctly. (Timo Kreuzer)

D3D9

  • Implemented Direct3DCreate9() (Gregor Brunmar)
  • Implemented IDirect3D methods: (Gregor Brunmar)
    • GetAdapterCount
    • GetAdapterIdentifier
    • GetAdapterModeCount
    • EnumAdapterModes
    • GetAdapterDisplayMode
    • CheckDeviceType
    • CheckDeviceFormat
    • CheckDepthStencilMatch
    • CheckDeviceFormatConversion
    • GetDeviceCaps
    • GetAdapterMonitor

DirectX

GDI32

  • Add cGetTTFFromFOT stub to make gdi32 load on win xp (Timo Kreuzer)
  • Beginning of an implementation of SelectObject, using NtGdiSelectBitmap, NtGdiSelectBrush, NtGdiselectFont, NtGdiSelectPen and ExtSelectClipRgn instead of NtGdiSelectObject (Timo Kreuzer)
  • Add some usermode handling to SelectObject, currently if'ed out, as it doesn't properly work yet (James Tabor)
  • Add GDI_OBJECT_TYPE_COLORSPACE to SelectObject using SetColorSpace (James Tabor)
  • Code cleanup for DdDestroySurface (Magnus Olsen)
  • Implement D3dContextCreate, DdCanCreateD3DBuffer, DdDestroyD3DBuffer, DdLockD3D, and DdUnlockD3D (Magnus Olsen)
  • BugFix DdFlip: Add left surface. Implemented support for it (Magnus Olsen)
  • BugFix DdCreateDirectDrawObject: Use DeleteDC since we are using shared memory for it now (Magnus Olsen)
  • Implement callback interface DvpVideoport, DvpCreateVideoPort, DvpDestroyVideoPort, DvpFlipVideoPort, DvpGetVideoPortBandwidth, DvpColorControl, DvpGetVideoSignalStatus, DvpGetVideoPortFlipStatus, DvpCanCreateVideoPort, DvpWaitForVideoPortSync, DvpUpdateVideoPort (Magnus Olsen)
  • BugFix DdGetDriverInfo: The videoport callback interface now sets the pUserDvdPort->dwFlags correctly (Magnus Olsen)
  • BugFix DdCreateSurface we pass down all usermode surface data to win32k. left todo is translate back all surface data. (Magnus Olsen)
  • Implement Callbacks misc, misc2, Color Control, NT callbacks (Magnus Olsen)
  • implemented DdCreateD3DBuffer callbacks (Magnus Olsen)
  • BugFix smaller bug in DdCreateSurface callbacks the surface handle count was setup wrong before it was pass down to win32k (Magnus Olsen)
  • partly implement Escape (Magnus Olsen)
  • Implemented commands GETCOLORTABLE, GETEXTENDEDTEXTMETRICS, and ABORTDOC in Escape (Magnus Olsen)
  • Partially implement gdi32 Escape, needed for getting opengl icd driver working (Magnus Olsen)
  • Implement command ENDDOC: Escape (Magnus Olsen)
  • Implement command STARTDOC: Escape (Magnus Olsen)
  • Bugfix CreateBitmapIndirect adding SetLastError(ERROR_INVALID_PARAMETER) when CreateBitmapIndirect fail, based on suggestion by Filip Navara (Magnus Olsen)

GDIPLUS

INETMIB1

KERNEL32

  • Implement GetConsoleAlias[A/W], AddConsoleAlias for doskey support (Johannes Anderwald)
  • Implement EnumSystemLanguageGroupsA/W, EnumSystemLocalesA, EnumSystemGeoID, GetGeoInfoA/W (partially), EnumSystemCodePagesA/W, EnumLanguageGroupLocalesA/W, EnumUILanguagesA/W, GetUserGeoID, SetUserGeoID, SetDefaultCommConfigA/W, GetDefaultCommConfigA/W, BeginUpdateResourceA/W, UpdateResourceA/W, EnumResourceLanguagesA/W, EndUpdateResourceA/W, EnumResourceTypesA/W, GetCalendarInfoA/W, EnumDateFormatsW, EnumCalendarInfoA/W, EnumCalendarInfoExA/W, FindFirstVolumeA/W, FindNextVolumeA/W (Dmitry Chapyshev)
  • Fix GetCommState, GetSystemInfo, IsProcessorFeaturePresent, LockResource, EnumSystemLocalesW (Dmitry Chapyshev)
  • Don't reset the last error on an exception for the lstr* functions. Also handle more than just access violation exceptions.
    Behaviour verified under Windows XP. (Colin Finck)
  • Return 0 instead of false when return type is DWORD (Christoph von Wittich)
  • Remove unused alias struct (Christoph von Wittich)
  • Use FILE_SHARE_READ | FILE_SHARE_WRITE in CopyFileExW to also copy opened files. Thanks to Christoph for the hint. (Colin Finck)

KSUSER

  • Implemeted KsCreateAllocator, KsCreateClock, KsCreatePin, KsCreateTopologyNode (Magnus Olsen)

MSVCRT

  • Sync floating point and regular exception handler/filter/signal code to WINE.(Samuel Serapión)
  • Sync all file and IO functions with WINE.(Fireball)
  • Ported from LIBC 1.1.32A http://www.retropc.net/x68000/software/develop/lib/libc1132a/index.htm (Samuel Serapión)
    • Implement ismbcl0, ismbcl1, ismbcl2, mbstowcs, mbctohira, mbctokata, mbscspn, mbsspnp.
    • Fixed up ismbcalpha, ismbbkalnum, ismbbkpunct, ismbbpunct, ismbcdigit, ismbclower, isleadbyte, ismbcprint, ismbbkana, ismbcupper, ismbbtrail, ismbclegal, ismbcspace, ismbcsymbol, mbtowc, mbctolower, mbsncat, mbsspn, mbctoupper, mbsupr.

SECUR32

  • Stub QuerySecurityPackageInfoA and QuerySecurityPackageInfoW (Colin Finck)

SHELL32

UEXT2

UNTFS

USER32

  • Use PatBlt and SelectObject instead of Nt functions in FillRect (Timo Kreuzer)
  • Sync CharLowerA/W and CharUpperA/W with Wine (after replacing Wine's SEH with PSEH). This makes us passing all user32 wsprintf Wine tests. (Colin Finck)
  • Do not delete bitmap objects in case setting the desktop failed, as it does not belong to the calling process anymore (Christoph von Wittich)
  • GetAppCompatFlags implemented but not SetAppCompatFlags yet (Magnus Olsen)

WININET

  • Fix invalid uses of WriteFile in Wine code (Colin Finck)

WS2_32

  • Implement support for FIONREAD in WSAIoctl (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