Difference between revisions of "ChangeLog-0.3.0"

From ReactOS Wiki
Jump to: navigation, search
(Libraries shared with Wine)
Line 253: Line 253:
== Libraries shared with Wine ==
== Libraries shared with Wine ==
* rpcrt4.dll - Implement context handle support for servers and clients ([[Saveliy Tretiakov]])
== Win32™ Applications ==
== Win32™ Applications ==

Revision as of 07:54, 28 August 2006

This is the changelog for ReactOS™ version 0.3.0, 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.2.9 (released 23 December, 2005).


Generic 0.3.0 changes

  • Add library to deal with recycle bin (not used yet) (Hervé Poussineau)
  • Increased DirectX version number to 5.03.2600.2180 (Magnus Olsen)
  • CMD Alexander Wurzinger(Lohnegrim)' E-Mail 'Lohnegrim@gmx.net' fix follow bugs Commend "'type/p','dir/p','dir/s','dir/p/s' did not work with CTRL+C"\n"'pause' does not continue until you press Ctrl/Shift/Alt"
  • Added -fforce-addr -fmerge-all-constants -fmove-all-movables -funit-at-a-time to DBG=0. Old settings produced comctl32.dll with a size of 1.06MB - with the new settings the size is reduced to 940KB. It will produce smaller file size for all files. (Magnus Olsen)
  • Fix partily of bug 1149 (WineCalc), left todo is binary show. Follow thing : Hex, dec, oct should work fine now and convert betwin them (Magnus Olsen)
  • WineCalc adding binary convert tested between dec -> bin -> hex -> bin -> oct and works (Magnus Olsen)
  • MSI in function deformat_environment did cut of one letter of GetEnvironmentVariableW at beigner in second call. it try found example LLUSERSPROFILE but it mean ALLUSERSPROFILE. fixed by me (Magnus Olsen) and (Hervé Poussineau) (patch send to wine and accpect).
  • Adding same bugfix as rev : 20303 to vfprintf.c it did have same problem. thx for GvG bugfix. (Magnus Olsen)
  • usetup addig follow reslution to select betwin vbe_640x480x16, vbe_800x600x8, vbe_1024x768x8, vbe_1024x768x16 (Magnus Olsen)
  • strtod do not BSD in some test apps I have. it did not check if input buffer for the convert string was NULL or not. (Magnus Olsen)
  • advapi32/reg/reg.c do not call on NtQuerySecurityObject in RegQueryInfoKey for it will always fail on reactos. adding #ifndef __REACTOS__ around that code and should be remove when we have that call implement in reactos. (Magnus Olsen)
  • CMD Fix Bug 1217 with patch from bugzila by ravelo "If you type > or < in cmd and hit ENTER, cmd.exe crashes" commited by (Magnus Olsen)
  • new icon from mf
  • printf patch from GvG, it fixing the bug for calc = when it showing e-309, Bug 1195, it have even affected python and other apps trying writing out 0 as text string. committed by (Magnus Olsen)
  • fix cmd build with MSVC 2005 (Magnus Olsen)
  • patch from bradon fixing special key for other language's that English example Swedish keyboard layout. we can type now backslash again. it did regress in rev 19906 committed by (Magnus Olsen)
  • Implement XMillimeter and YMillimeter calculation, it not 100% correct for I assume the monitor DPI is always 72DPI (Magnus Olsen)
  • DirectX : fixed a member name in DD_SURFACECALLBACKS so it is equal to ddk (Magnus Olsen)
  • DirectX : update d3dhal.h it needs to be rewritten it does not contain all info we need. (Magnus Olsen)
  • DirectX : ddraw.dll : start to implement D3DParseUnknownCommand this is the ground (Magnus Olsen)
  • DirectX : ddraw.dll : Correct the HAL startup process thanks to Steffen Schulze to solv it He is working with close software He have wrote complete MoComp to us but am waiting with to commit that interface. Rember all code he have done is being use in close source apps and thuse apps will stay close source. In his source code overlay surface is working fine. This is frist step to correct HAL. Now we need fix the CreateSurface process. (Magnus Olsen)
  • DirectX : ddraw.dll :Implement Restore mode in DDraw interface (Magnus Olsen)
  • MSI : Fix Bug 1185 patch from j_anderw(j_anderw at sbox dot tugraz dot at) (Magnus Olsen)
  • DirectX : ddraw.dll : 1. Clean up Hal_DirectDraw_CreateSurface 2. Start implemenr createsurface overlay base on Steffen Schulze code. (Magnus Olsen)
  • patch from w3seek : compile with gcc4.1 again commited by (Magnus Olsen)
  • DirectX : ddraw.dll : This is frist directdraw version than can run reactos ddraw demo in windows with our own ddraw.dll 1. Implement DdBlt in ddraw it is not a complete implement it does not blt from a source surface to destination surface. for we do not create other types that primary surface for now. and it is always primary is the destination. Rember it does not working in fullscreen that is a bug. (Magnus Olsen)
  • RtlIntegerToUnicodeString increased the interal buffer size to 33bytes as wine does (Magnus Olsen)
  • RtlInt64ToUnicodeString increased the interal buffer size to 65bytes as wine does (Magnus Olsen)
  • RtlIntegerToUnicodeString/RtlIntegerToUnicodeString will take care of some intToChar Bugs. I have been locking of it for sometimes now thanks to crashfourit network patch and we talk I did found it. (Magnus Olsen)
  • Enhance Mouse Control Panel Applet (Johannes Anderwald)
  • Implement Power Configuration Applet (Alex Wurzinger, Johannes Anderwald, Martin Rottensteiner)
  • Start of Console Window Property Configuration (console.dll) (Johannes Anderwald)
  • Bug 1390 : patch from (Thomas Weidenmueller) : for imagesoft.exe, timedate.cpl,wordpad Don't use BOOL for 1 bit members in bitfields commited by (Magnus Olsen)
  • desk.cpl : Implement screensaver setting and preview of screen setting working in windows not tested in ReactOS (Magnus Olsen)
  • Bug 1363 : Bugfix patch from crashfourit, the patch accect with small change, review by me and hpoussin commited by (Magnus Olsen)
  • ntmarta : bug 1346 : patch from w3seek : Support SE_FILE_OBJECT in GetNamedSecurityInfo
  • bug 1457: patch by w3seek : VFAT: Implement FileEaInformation for FAT32 committed by (Magnus Olsen)
  • Gdi32 : DirectX : fixing a bug in gdientry3, found it when I wrote the doc how it should work. The doc also committed to ReactOS svn (Magnus Olsen)
  • CMD : Stop the footer from printing twice in 'dir'. Fixes 1084. (Brandon Turner)
  • User32/Kernel32/Win32k : Check to make sure pointer isnt null after allocation. Fixes bug 1103, 1102, 1110. (Brandon Turner)
  • SMSS : Implement system managed handling of page file creation sizes. Thanks to Arty, Thomas, and IRC::insulanus. (Brandon Turner)
  • CMD : Correctly handle malformed cmd input strings. Fixes a buffer overflow which caused many problems. (Brandon Turner)
  • CMD : Implement Tab completion with " in the path. Fixes bug 1238. (Brandon Turner)
  • Explorer : Include sndvol32 in the bootcd to fix a file not found error. Fixes bug 1754. (Brandon Turner)


  • exclude wine/w32api headers from msvc include paths (Johannes Anderwald)
  • MSVC backend/compilation improvements. Made almost every single module build with MSVC.(Alex Ionescu)
  • Added PCH (Precompiled Header) usage to almost every module. (Alex Ionescu)
  • MSVC backend improvements like PCH support and different configurations. (Christoph von Wittich)


  • Translation from and update of hu from transaltions team see wikis commited by (Magnus Olsen)
  • franch translation from bugzila http://www.reactos.org/bugzilla/show_bug.cgi?id=1150 commited by (Magnus Olsen)
  • Bug 1162 correct French translation by Jerome Signouret "ggcom" commited by (Magnus Olsen)
  • Bug 1163 French translation from Jerome Signouret "ggcom" by ReactOS French translation team commited by (Magnus Olsen)
  • Bug 1155, Bug 1157, Bug 1158 French translation from French translation team by zoken <mustang9 at gmail dot com commited by (Magnus Olsen)
  • Bug 1166 French translation from French translation team by Benoit Plante <cmoibenlepro at hotmail dot com> commited by (Magnus Olsen)
  • Dutch translations from the dutch translations team, cacls, getfirefox, msconfig, sndvol32, taskmgr by Maurus Cuelenaere, winemine by Maurus Cuelenaere winlogon by Eric Janssen

ReactOS core

Kernel and Executive (NTOSKRNL)

  • patch from w3seek : create smss with a current directory (system path), Otherwise the current directory for all early processes will be NULL. Fixes some inf installation issues reported by Herve. commited by (Magnus Olsen)
  • Fix a bug in FsRtlNumberOfRunsInLargeMcb after compare http://www.jankratochvil.net/captive source changes of ReactOS ntoskrnl. (Magnus Olsen)
  • Respect the fact, that the driver can return NULL-pointer, instead of a string having 0 characters! (makes third-party drivers compatibility better) (Aleksey Bragin)
  • Move xbox's i2c support to a separate file, and add support of xbox's LEDs switching. Currently it initializes leds to red, and immediately after base init is done (means video has been initialized) they are turned to orange (good for debugging) (Aleksey Bragin)
  • Fix incorrect fast interlocks function prototypes (Aleksey Bragin)
  • Fix kernel mode executive atom implementation (mostly add SEH and tidy up the code). Then fix kernel32 implementation which was sending incorrect sizes, and also refactored the entire code, since most functions were quatriplicated. (Alex Ionescu)
  • Fixed a bug in RtlCreateAtomTable. (Alex Ionescu)
  • Fixed bugs in Profile implementation. Add support for segmented profile objects.(Alex Ionescu)
  • Implemented InterlockedBitTestAndReset, InterlockedBitTestAndSet, InterlockedExchangeAddSizeT. (Alex Ionescu)
  • Reimplemented Rundown Protection. (Alex Ionescu)
  • Implement YieldProcessor (Alex Ionescu)
  • KiAcquireSpinlock and KiReleaseSpinLock should be no-op functions on uniprocessor machines. (Alex Ionescu)
  • KiReleaseSpinLock does not need interlocked access to release the lock. (Alex Ionescu)
  • Use portable code for KiAcquireSpinLock. Also use interlocked bit operations since they are faster. (Alex Ionescu)
  • Rewrite Executive Interlocked Functions to actually work as supposed and also immensly increase their speed, most notably on non*SMP machines. (Alex Ionescu)
  • Fix shamefully dangerously broken Work Thread/Queue/Item implementation. (Alex Ionescu)
  • Implement a worker thread balance set manager. (Alex Ionescu)
  • Implement Pushlocks. (Alex Ionescu)
  • Optimized the dispatcher lock. It is now gone on non*SMP systems and IRQL is raised or lowered instead. (Alex Ionescu)
  • Fixed some places which werne't setting the dispatcher header's size member correctly. (Alex Ionescu)
  • Created separate cases for satisfying mutant, non*mutant and generic objects, to optimize wait satisfaction. (Alex Ionescu)
  • Fixed a case in KiCheckAlertability: we also need to check if the thread is alerted in Kernel-Mode, even if the wait mode given was user and user-mode is not alerted. (Alex Ionescu)
  • Fixed signaling checks across the wait code and removed KiCheckIfObjectSignaled. We must not consider the mutant as signaled if SignalState is = 1. (Alex Ionescu)
  • Fix code to check if the wait blocks' status is STATUS_TIMEOUT, because we do not need to check for signal state in that case. (Alex Ionescu)
  • Removed the exports for internal dispatcher lock routines. (Alex Ionescu)
  • Implemented Queued and In-Stack Queued Spinlocks (at DPC-Level). (Alex Ionescu)
  • Separate UP and MP spinlock functions. (Alex Ionescu)
  • Optimize UP spinlock functions so they don't call ntoskrnl anymore and only raise/lower irql. (Alex Ionescu)
  • Implemented Queued Spinlocks and In*Stack Queued Spinlocks for UP machines. (Alex Ionescu)
  • Implemented KeAcquireInStackQueuedSpinLock, KeReleaseInStackQueuedSpinLock, KeAcquireQueuedSpinLock, KeReleaseQueuedSpinLock, keTryToAcquireQueuedSpinLock, KeTryToAcquireQueuedSpinLockRaiseToSynch, KeAcquireQueuedSpinLockRaisetoSynch. (Alex Ionescu)
  • Rewrite ERESOURCE implementation. (Alex Ionescu)
  • Fix some bugs in Kernel Queue implementation (Alex Ionescu)
  • Handle special case where we have kernel apcs pending and your previous irql was below APC_LEVEL during the wait code. (Alex Ionescu)
  • Set the right Thread*>WaitTime dring waits (Alex Ionescu)
  • Initialize WaitBlock*>Thread during thread creation. (Alex Ionescu)
  • Make APCs queuable for the thread after it's created (Alex Ionescu)
  • Enable Timer Block optimization since it works now. This allows us not to always set*up for each wait, since most of its fields can remain static. (Alex Ionescu)
  • Properly link wait block together with the waitlist of the timer. (Alex Ionescu)
  • Remove KiServiceCheck and implement PsConvertToGuiThread in its place. Has support for detecting and returning errors in case of invalid cases, currently disabled code for doing the required 4kb*>12kb stack conversion, and handling certain failures.
  • Fix MmCreateKernelStack to actually take into account the GuiStack parameter. (Alex Ionescu)
  • Implement KeSwitchKernelStack (Alex Ionescu)
  • Enable code in PsConvertToGuiThread to create a new stack and switch to it. GUI Threads now get the 60KB of kernel stack space they deserve. (Alex Ionescu)
  • Implement (although non-optimally) MmGrowKernelStack for future use. (Alex Ionescu)
  • Fix some bugs in KiCallUserMode (Alex Ionescu)
  • Fix probably one of the most devastating hidden ROS bugs currently in trunk. KWAIT_BLOCK's WaitType was defined as USHORT instead of UCHAR, causing a KeWaitForMultipleObjects of 2 or more objects to overwrite the Thread's PreviousMode (an effect of this is that 99% of user-mode callbacks from win32k were being done with the mode set to Kernel-Mode instead of UserMode). A KeWaitForMultipleObjects of 3 or more objects, or the timer object itself in some cases would cause this conflict to occur with the ResourceIndex member, potentially corrupting the ERESOURCE owner table in my updated implementation. (Alex Ionescu)
  • Rewrite usermode callbacks. These changes should greatly optimize graphic operations. After these changes, my "idle" CPU Usage in taskmgr went from 7-8% to 4-5%, while on the performace page, from 15-18% to 10-13%. (Alex Ionescu)
  • Set KernelApcPending == TRUE in KiCheckForKernelApcDelivery if we are at APC_LEVEL. (Alex Ionescu)
  • Properly create, grow and delete the kernel stack. Fixes potential memory leaks introduced in 20806. (Alex Ionescu)
  • Update KeContextToTrapFrame to support separate ContextFlags parameters in the scenario where we want to convert more then the Context's flag specify (Alex Ionescu)
  • Rename some of the internal FPU flags to external names and make them global. (Alex Ionescu)
  • Improve context creation of new threads to initialize the virgin NPX state for new threads, to clear DR debug registers, to properly convert the context to a trap frame, to set the right segment registers, to set the debugging mark in the trap frame, and to properly set the initial eflags. (Alex Ionescu)
  • Don't bother with clearing the DRs in the CONTEXT, just clear DR7 in the trap frame after the conversion. (Alex Ionescu)
  • Fix some nasty context switch bugs (Alex Ionescu):
 ** We did not update the KPCR's stacklimit/initialstack with the new thread's stacklimit/initialstack.
 ** We always assumed V86 frame bias in KeInitializeThreadContext.
 ** We did not properly update ESP0 during context switch, to make space for the NPX frame and V86 bias.
 ** We did not update fs:18h to point to the new TEB.
 ** We did not clear out GS when switching processes, nor update the TSS's cr3.
 ** If a new LDT was being updated, we over-wrote EBP (which was supposed to point to the TSS) by the GDT pointer.
 ** We used a push/pop esp0 hack which hid the fact we never updated esp0.
  • Fix a bad bug in the system call handler and interrupt/trap exit code which was causing a jump to the incorrect epilogue if V86 mode was detected. (Alex Ionescu)
  • Make traps use the shared EOI (End Of Interrupt) helper instead of their own custom trap exit code. (Alex Ionescu)
  • Share some more trap code. (Alex Ionescu)
  • Increase total system call count in KPCR for performance counter. (Alex Ionescu)
  • Increase per*systemcall call count in the KiServiceTable if it was specified, for performance counters. (Alex Ionescu)
  • Add sanity checks to system call handler to detect. (Alex Ionescu)
  • Detect if exiting with incorrect IF state. (Alex Ionescu)
  • Detect if exiting with broken stack. (Alex Ionescu)
  • Detect if exiting with a broken trap frame (note: Disabled in Kei386EoiHelper beause this raises the assertion. The trap frame is valid, it's just that some old code is using DbgArgMark for other purposes. Will fix.) (Alex Ionescu)
  • Detect if exiting with invalid FS. (Alex Ionescu)
  • Detect if exiting with invalid Exception List. (Alex Ionescu)
  • Detect if exiting with incorrect exception list and/or incorrect previmous mode on the stack (to detect macro/calling type mismatch). (Alex Ionescu)
  • Use MmUserProbeAddress in the system call handler to verify the parametes we got from user-mode are valid and return STATUS_ACCESS_VIOLATION if the check fails. (Alex Ionescu)
  • Handle failure after PsConvertToGuiThread and return STATUS_INVALID_SYSTEM_SERVICE and/or FALSE and/or *1 on failure. (Alex Ionescu)
  • Made MCE/XMMI interrupts unexpected on-boot. (Alex Ionescu)

Run Time Library (RTL)

  • Use RtlComputeCrc32 instead of yet another inline implementation for calculating a CRC32 checksum. The attached patch fixes this. patch from (Thomas Weidenmueller)

Native Library (NTDLL)


  • Fix BSOD in IntPrepareDriver (bug 1321) (Hervé Poussineau)
  • Fix EnumDisplayDevicesA when it convert the struct DISPLAY_DEVICE to unicode it use ansi side of it. and that why it did fail. (Magnus Olsen)
  • Fix BSOD in NtGdiDdCreateDirectDrawObject, it is not correct fix, it is a work around, the HDC can be NULL. it prevent some bsod for my new test apps for directx (Magnus Olsen)
  • Fix a problem with NtGdiDdDeleteDirectDrawObject, it attempted to lock object 0x8d1f9ad8 that is deleted! problem. (Magnus Olsen)
  • Fix BSOD in DD_Cleanup thanks Thomas W, Implement second check for DrvGetDrawInfo (Magnus Olsen)
  • NtGdiDdQueryDirectDrawObject do not setup wrong callback to struct members. Check for some NULL parama that can not be NULL. (Magnus Olsen)
  • part of bug 252 : checking for null and correct memmroy leak patch by j_anderw commited by (Magnus Olsen)
  • update NtUserGetMouseMovePointsEx prototype to msdn (Magnus Olsen)
  • DIB_CreateDIBSection fix do not zero out memmory if it is a null pointer it got from ExAllocatePoolWithTag (Magnus Olsen)
  • DIB_MapPaletteColors do not try write to NULL pointer if ExAllocatePoolWithTag do return a NULLL pointer. (Magnus Olsen)
  • EngSetPointerShape did not check for NULL pointer when it alloc memmory. (Magnus Olsen)
  • DRIVER_RegisterDriver did not check for NULL pointer when it alloc memory. (Magnus Olsen)
  • IntRegisterClass did not check for NULL pointer when it alloc memory. (Magnus Olsen)
  • Fix memory leak in NtUserMonitorFromRect when it return in one case. (Magnus Olsen)
  • some case from win32k can call to RtlClearAllBits with NULL pointer. and check for null pointer after RtlClearAllBits. This take care of those case for moment. (Magnus Olsen)
  • InitTimerImpl did not check for NULL pointer when it alloc memory. (Magnus Olsen)
  • NtGdiCreatePalette did not check for NULL pointer when it alloc memory. (Magnus Olsen)
  • Fix a mouse bug for hide the cursor. It is working now with my test code for ShowCursor and NtShowCursor. The code for it is not finish. and it also working now hide the mouse with EngMovePointer(SurfObj,-1,-1,NULL); and that did not work before. (Magnus Olsen)
  • Implement ShowCursor, it is a issue with quake when you moving the mouse, the mousepointer will show, when you stand still with the mouse it will not show the mousepointer. (Magnus Olsen)
  • solv the issue with mouse poiter is hide, do not show the mousepointer when you are moving the mouse. tested in winquake (Magnus Olsen)
  • ShowCursor, gott a internal count to show the mouse or not, and return that value. as msdn descripe. (Magnus Olsen)
  • Fixing a small bug for hide mouse. Save the current surface under the mouse. But do not blt the mouse pointer. It takes care of small glitch I have seen in winquake. (Magnus Olsen)
  • fix some bugs wih org with strechblt. (Magnus Olsen)
  • Correct Streachblt in windows mode, it take accunt org and offset now. (Magnus Olsen)
  • Thanks GvG for helping put to gather a new math formula that make alot of calc not needed any longer. and correct fourmla for rounding fault. I did not think of it when I rewrote the streachblt. it feal strechblt is bit fasfer agains the old one. (Magnus Olsen)
  • check return value of RtlDeleteAtomFromAtomTable (Johannes Anderwald)
  • simply, optimize, bugfix UserRegisterClass (Johannes Anderwald)
  • allow de-registration for system classes (Johannes Anderwald)
  • set ERROR_CLASS_DOES_NOT_EXIST in case of errors (Johannes Anderwald)
  • fix UserGetClassLongPtr && UserSetClassLongPtr (Johannes Anderwald, Thomas Weidenmueller)
  • fix Bug 1376, patch from SuperTrax at gmx dot de (owner of supertrax dot de, nic.de lookup Mark Hipp)if a Window was showed normaly, GetWindowPlacement never returned a showCmd. commited by (Magnus Olsen)
  • Bug 252 commiting file desktop.c from bug 252 , the patch is from (j_anderw at sbox dot tugraz dot at) it make our win32k lile more stable commited by (Magnus Olsen)
  • Bug 1391 : patch from (Thomas Weidenmueller) for Some Ansi vs. Unicode fixes for window classes commited by (Magnus Olsen)
  • Bug 1393 : Patch from (Thomas Weidenmueller) Fix moving class objects between desktop heaps and the shared heaps commited by (Magnus Olsen)
  • fix 16 to 16 soyrce dest why the hell does th 16bitmap surface calls into this (Magnus Olsen)
  • Fix the xlate bug in 24dib correct fix more buttom showing right in firefox now (Magnus Olsen)
  • fast cleanup in dib/dib24bpp.c, Fixing a crash bug in dib32bpp.c (typo from me), xlate XO_TABLE can resive 0xffff or 0xffff or 0xffffff or 0xffffffff as color code for table, but the table is only 256 but in color&FF, That will stop firefox crash and translate the color right. (Magnus Olsen)
  • Bug : 1452  : patch from w3seek, some xlate obj fixes for indexed palettes, should fix a hack introduced in r21292 commited by (Magnus Olsen)
  • Win32k Header Rewrite (Alex Ionescu)
  • Fix flaw in win32k hardware message queue which used KMUTEX instead of KMUTANT, thus double*disabling Kernel APCs during the parsing of the queue, which would result in actually deliving hardware message callbacks with Kernel APCs disabled when going to user*mode. This was detected when my new user*mode callback rewrite added checks for this situation, and it originally caused a bugcheck. Since the message queue code is now fixed, the bugcheck has been re*enabled, hopefully no other such violations will be detected.(Alex Ionescu)
  • Clear Tcb*>Win32Thread during win32 cleanup. (Alex Ionescu)
  • Allow TLS usage for 1088 TLS slots, fixes part of Bug 191. Patch by Filip Navara (navaraf@reactos.com)(Alex Ionescu)
  • Remove NtGdiDeleteDC and refernces to it as it is not a real win32 API. (Brandon Turner)
  • Remove NtGdiCheckColorsInGamut and refernces to it as it is not a real win32 API. (Brandon Turner)
  • Replace NtGdiCreatePatternBrush and NtGdiCreateHatchBrush with NtGdiCreatePatternBrushInteral and NtGdiCreateHatchBrushInteral. (Brandon Turner)
  • Implement CreateHatchBrush, CreatePatternBrush (Brandon Turner)
  • Rename NtGdiGetTextExtentPoint to NtGdiGetTextExtent and correct the declaration. (Brandon Turner)
  • Implemented PS_DOT, PS_DASH and PS_INSIDEFRAME in IntGdiCreatePenIndirect (Christoph von Wittich)
  • Fixed LoadCursorIconImage - this made Thunderbird working (Christoph von Wittich)


Kernel mode drivers





  • OHCI controller driver was imported from Linux-2.5, UHCI imported also and works too. Port driver also is imported from Linux-2.5, but no WindowsXP-compatible interface has been developed yet. At the moment the drivers for mouse and keyboard are built-in and work, but this feature is unstable. (Aleksey Bragin)
  • Allow more than one USB controller (Hervé Poussineau)
  • Add support for USB mouse/keyboard (but only with a reboot now) (Hervé Poussineau)


  • Implement VideoPortGetAssociatedDeviceExtension and VideoPortCheckForDeviceExistence (Hervé Poussineau)


Win32™ Libraries


  • Registry functions of ADVAPI32 are tested against WINE's, 20+ failures fixed in RegEnumValueKeyA/W, RegOpenKeyA/W, and small fixes in corresponding NT Api functions (NtOpenKey). The only missing things for now are RegSaveKey/RegLoadKey which don't pass WINE tests yet. (Aleksey Bragin)
  • Bug 1345 : patch from w3seek Fixes for BuildTrusteeWithObjectsAndName, BuildTrusteeWithObjectsAndSid and GetTrusteeName. A test apps exits also from w3seek not commited. commited by (Magnus Olsen)



  • Implement CM_Add_IDA, CM_Add_IDW, CM_Add_ID_ExA, SetupCopyOEMInfA/W, SetupDiGetActualSectionToInstallExA/W, SetupDiGetClassDevPropertySheetsW, SetupDiGetClassImageIndex, SetupDiGetClassImageList, SetupDiGetClassImageListExA/W, SetupDiGetDeviceInfoListClass, SetupDiGetDeviceInfoListDetailW, SetupDiGetDeviceInstanceIdW, SetupDiGetDriverInfoDetailW, SetupDiGetSelectedDevice, SetupGetInfFileListW, SetupDiInstallClassExA/W, SetupDiInstallDeviceInterfaces, SetupDiLoadClassIcon, SetupDiSetClassInstallParamsW, SetupDiSetSelectedDevice (Hervé Poussineau)
  • Rewrite SetupDiGetActualSectionToInstallExW, to allow the exact semantics (platform extension, version...) (Hervé Poussineau)
  • Select the best driver when several are available (Hervé Poussineau)
  • Take care of Include and Needs directives in .inf files (Hervé Poussineau)

System control panel

Libraries shared with Wine

  • rpcrt4.dll - Implement context handle support for servers and clients (Saveliy Tretiakov)

Win32™ Applications


  • - Added support for NTLDR style freeloader GUI. (Alex Ionescu)