KernelEx v4.5 RC 4 by Xeno86 2010-09-21 added kernel32.EncodePointer, DecodePointer, EncodeSystemPointer, DecodeSystemPointer SystemParametersInfo/SPI_GETHIGHCONTRAST call doesn't fail now when accessability pack is not installed or wrong uiParam parameter is passed (fixes Firefox 3.6.9/3.6.10) force usage of KernelEx's 'Known DLLs' when full system path is passed to LoadLibrary call fixed iGetProcAddress/kexGetProcAddress not taking into account relocation - fixes crashes revealed by RC 3 --------------------------------------- KernelEx v4.5 RC 3 by Xeno86 2010-09-10 added fix to prevent DLL circular-references --------------------------------------- KernelEx v4.5 RC 2 by Xeno86 2010-09-08 ported SysLink COMCTL32 class (from Wine project, fixes Google Picasa options dialog) added kernel32.SystemTimeToTzSpecificLocalTime, TzSpecificLocalTimeToSystemTime (from Wine project, for Google Picasa 3.8) implemented shell32.SHBindToParent (needed by Maxthon 1.6.7) [Tihiy] fixed TlsExt pointer not zeroed after freeing added WS2_32.getaddrinfo, freeaddrinfo, getnameinfo implementation based on wspiapi.h added WINMM.waveInGetDevCapsW, waveOutGetDevCapsW (makes Flash Player 10.1 volume control work) added USER32.SetParent fix to forbid deadly circular references (fixes VLC 1.1.2 crash) [ported from RP9] fixed handling of lpOverlapped parameter in kernel32.PostQueuedCompletionStatus restricted completion ports to NT only added kernel32.GetProcessId, CreateFiberEx replaced kernel32.ReadConsoleInputW from MSLU with custom implementation due to bugs in the former [Tihiy] --------------------------------------- KernelEx v4.5 RC 1 by Xeno86 2010-07-30 implemented kernel32.RtlCaptureContext for Firefox 4.0 Beta 2 reworked compatibility tab to allow resetting compatibility settings to default values compatibility tab is visible on all PE modules thus allowing to change compatibility options on per-module basis disallow resources with high ID (>32767) when KernelEx is disabled perform platform check when KernelEx is disabled added kernel32.GetComputerNameEx stubs which supposedly make Artweaver run simulate TrueType MS Sans Serif for VLC use ASCII table instead of ISO8859-1 for character conversion (fixes problem with national characters in paths) added ADVAPI32.FileEncryptionStatus stubs added get-post I/O completion ports functionality for Firefox 3.6.4 added a bunch of new user32 stubs allowing to run newer MPC-HC, includes: DefRawInputProc, GetRawInputBuffer, GetRawInputData, GetRawInputDeviceList, GetRawInputDeviceInfoA, GetRawInputDeviceInfoW, GetRegisteredRawInputDevices, RegisterRawInputDevices, PrintWindow more accurate object owner check in DeleteObject fixed missing ScriptCache unlock in case of error fixed crash on displaying of error message in KernelEx Setup program added a simple protection against footer corruption in jemalloc heap excluded jemalloc from handling limited size heaps added "Disable custom heap" configuration added "Default mode" configuration fixed GTA:SA crash on game load fixed Rally Championship '99 crash removed shell32.SHGetDiskFreeSpaceW as there is no such function in WIN32 api implemented missing SHELL32.SHGetDiskFreeSpaceEx on Windows 98 implemented SHELL32.SHGetDiskFreeSpaceW for Adobe Flash 10 removed positive PIDs patch as it causes incompatibility with MSYS and propably other apps too --------------------------------------- KernelEx v4.5 Beta 2 by Xeno86 2010-02-14 fixed incompatibility with Japanese WinME implemented USP font cache fix: kexFlushAppSettings didn't clear wildcard app settings fix: EnumFontFamiliesEx should only fill TEXTMETRIC structure if font is not TrueType FONTSIGNATURE sub-structure doesn't seem to contain valid information, accessing it could trigger a crash changed AddFontMemResourceEx and RemoveFontMemResourceEx stubs for Opera 10.50 beta compatibility implemented shell32.SHParseDisplayName [xp and above] implemented winspool.EnumPrintersW added advapi32.CreateProcessWithLogonW, InitiateSystemShutdownEx stubs replaced thread-pool implementation with custom code added timer-queue functions updated jemalloc to version from FF3.6 added checks to alloc/realloc/free to make jemalloc more fault tolerant - better match Windows 9x behaviour kexCOM: LoadLibrary(self) trick to prevent premature unload in buggy programs --------------------------------------- KernelEx v4.5 Beta 1 by Xeno86 2010-01-18 disable named/rcdata resource types mirroring changed obfuscator for non-negative PIDs fix crash when a process is created with '.exe' renamed to '.dll' added GDI anti-leaking code which forces NT destroying rules on font and bitmap objects. implemented extended TLS (Thread Local Storage), extends limit of 80 to ~1100 slots added Thunking Unicode Layer - set of user32 APIs which provides consistent Unicode window procedures conversion, allowing correct message conversion and mixture of window subclassing with NT-like rules. revamped non-shared api library loading process added jemalloc memory allocator, replacing standard Windows heap for applications fix: LoadShfolderProc could crash if shfolder.dll was unloaded by the application added USERENV library from Wine project changed module configuration settings storage - single module can now have different configurations under different processes (better accuracy, overriding is supported, recursive inheritance is supported, speed gains) change: Allow api library to be loaded even if some overridden modules aren't found (skips module tables) shell folder fix - display CSIDL_COMMON_* folders in start menu added support for environment variables in AppSettings database added kexCOM - implementing IShellLinkW and IExtractIconW interfaces for CLSID_ShellLink which are missing from Windows 98 shell Compatibility tab changes: * redesigned, added baloon tips * added option to disable configuration inheritance to child processes * added option to override module configuration with process'es configuration (debug only) * fixed COM implementation changes into the installer: * enforce reboot after install/uninstall before subsequent installation, * copy kernel32.bak to temporary file during uninstall before reboot * forbid direct downgrades API changes: fix GlobalLock and GlobalUnlock to work properly with HeapAlloc pointers make CreateFile ignore unsupported FILE_SHARE_DELETE flag make GetDiskFreeSpace, GetDiskFreeSpaceEx not fail on certain file paths implemented USERENV.GetUserProfileDirectory, GetAllUsersProfileDirectory, GetProfilesDirectory added various winspool unicode (unicows) apis and stubs added EnumServicesStatusEx stubs fix CreateDIBSection to behave consistently with NT fix GetTempFileName to behave consistently with NT make ExtCreatePen not fail on PS_USERSTYLE pen style replaced MSLU GetObjectW (bug: MSLU always returns full object size regardless of buffer size passed) with custom implementation replaced MSLU RegEnumValueW with custom implementation added support for REG_EXPAND_SZ and REG_MULTI_SZ in RegQueryValueExW fixed RegQueryValueExW not handling return values properly fix: win9x doesn't allow MB_ERR_INVALID_CHARS parameter to be set for UTF-7 or UTF-8 codepages in MultiByteToWideChar and WideCharToMultiByte calls fix: RegisterWaitForSingleObject should test object state once and return immediatelly when dwMiliseconds is zero implemented GDI32.GetCharABCWidthsI, ADVAPI32.RtlGenRandom, KERNEL32.GetModuleHandleEx fixed uxtheme return addresses implemented theme metric functions fix WTSGetActiveConsoleSessionId should return 0 = local session instead 0xffffffff = no session implemented kernel32.DelayLoadFailureHook, QueueUserWorkItem, RegisterWaitForSingleObject, RegisterWaitForSingleObjectEx, UnregisterWait, UnregisterWaitEx, IsWow64Process, ProcessIdToSessionId, WTSGetActiveConsoleSessionId, IsWow64Process removed shlwapi.StrCmpLogicalW (which is available with IE6-updated shlwapi) implemented advapi32.DeleteAce added stubs for advapi32.NotifyBootConfigStatus, QueryWindows31FilesMigration, SynchronizeWindows31FilesAndWindowsNTRegistry changed advapi32.CreateWellKnownSid change: logfont* is optional in gdi32.EnumFontFamiliesEx on NT but not on 9x added stubs for kernel32.HeapSetInformation, GetProcessIoCounters, RtlCaptureStackBackTrace support events signalling in ReadFile & WriteFile overlapped apis fixed system bug in user32.GetNextDlgTabItem - system crashes trying to get next control in dialog to tab when there is only one control on dialog fixed GetDefaultPrinterW replaced SHGetFolderLocation Wine implementation with custom implementation fix: custom SHGetFolderLocation shouldn't be enabled for shell32 >= 5.0 --------------------------------------- KernelEx v4.0 Final 2 by Xeno86 2009-08-20 fixed handling of forwarded exports broken in revision 32 fixed very rare crash which could occur at boot when module table pointer becomes invalid added algorithm similar to KnownDLLs for auxiliary libraries to be disabled when extensions are disabled perform stub upgrade on version mismatch, not only if it is lower than expected added SHLWAPI.StrCmpLogicalW added SHELL32.SHOpenFolderAndSelectItems stub fixed KERNEL32.lstrcpynW added kexAreExtensionsEnabled to SDK api logging should now work correctly --------------------------------------- KernelEx v4.0 Final by Xeno86 2009-07-23 added option to select between enabling KernelEx extensions for all applications and disabling them added KernelEx installation verifier migration to PSDK 2003, compilation on MSVC 6 without PSDK not possible change: delay-load usp10.dll, comdlg32.dll, shell32.dll and winspool.drv in kexbasen fix: loading Unicows.dll altered FPU flags and caused certain programs to crash on first start added option to kexcontrol to kill all processes depending on KernelEx disable api override for shared modules change: services have disabled extended api by default - this should hopefully fix shutdown problems change: shared api libraries are now referenced by all processes that reference any of non-shared api libraries change: Core's critical sections are now global - it should continue to function even after hosting process is terminated removed all process lock during initialization don't load MSLU on initialization remember and restore last error on MSLU load enable overrides for MSVCRT.DLL disable overrides for SPOOL32.DLL process fix: preload not yet loaded shared system DLLs GetOpenFileName / GetSaveFileName fix for 98 shell - file choose dialog in flash applets should work now remove check in psapi.EnumProcessModules that conflicts with debuggers change: accept CP_THREAD_ACP flag for MultiByteToWideChar and WideCharToMultiByte added api logging window (in debug Core) - based on listview, filtering, saving log to file added kexIsDebugCore api to sdk change: compatibility tab shows api log checkbox under debug Core implemented worldtransform APIs for GTK+ Cairo (thanks Tihiy) implemented RPCRT4.RpcStringFreeW, UuidFromStringW, UuidToStringW replaced buggy Unicows GDI32.EnumFontFamiliesExW, EnumFontFamiliesW with custom implementation implemented KERNEL32.GetVolumePathNameA/W (semi-stub) implemented WINSPOOL.GetDefaultPrinterA/W replaced Unicows kernel32.CompareStringW, GetStringTypeExW, GetStringTypeW, LCMapStringW, lstrcmpW, lstrcmpiW with Wine implementation replaced Unicows kernel32.GetAtomNameW, GetModuleFileNameW, GetModuleHandleW, LoadLibraryExW, LoadLibraryW with custom implementation replaced Unicows user32.CharLowerBuffW, CharLowerW, CharNextW, CharPrevW, CharToOemBuffW, CharToOemW, CharUpperBuffW, CharUpperW, IsCharAlphaNumericW, IsCharAlphaW, IsCharLowerW, IsCharUpperW, OemToCharBuffW, OemToCharW with Wine implementation added kernel32.FoldStringA, FoldStringW from Wine fixed not-working kernel32.GetSystemWindowsDirectoryW, CommandLineToArgvW --------------------------------------- KernelEx v4.0 RC 2 by Xeno86 2009-03-21 fixed uxtheme version check added compilation instructions fixed msimg32.AlphaBlend bug incorrectly calculating transparency added kernel32.GetVersionW to default configuration added advapi32.OpenSCManager stubs implemented kernel32.GetConsoleWindow modified CreateFile, ReadFile and WriteFile so that they now accept overlapped flag fixed non-working MoveFileWithProgressA fix: DirectX setup has disabled extensions added psapi.EmptyWorkingSet stub change: KernelEx will first load any other MPRServices before initializing added workaround for situation where some kernel driver hijacked system functions added missing disable resource check fix removed GetMessageW from kexbasen (already in kexbases) fixed issue where installer wouldn't complete on fresh system fixed BSOD or crashes on shutdown on certain configurations by preventing early unload fixed compatibility sheet not working properly for shortcuts implemented kernel32.IsProcessorFeaturePresent fix: check if last element in merge list does repeat fixed compilation issue with PSDK 2003 fixed Core not displaying error messages correctly --------------------------------------- KernelEx v4.0 RC 1 by Xeno86 2009-03-10 First public release of KernelEx rewritten from scratch and based on new architecture