Jump to content
Strawberry Orange Banana Lime Leaf Slate Sky Blueberry Grape Watermelon Chocolate Marble
Strawberry Orange Banana Lime Leaf Slate Sky Blueberry Grape Watermelon Chocolate Marble

MSFN is made available via donations, subscriptions and advertising revenue. The use of ad-blocking software hurts the site. Please disable ad-blocking software or set an exception for MSFN. Alternatively, register and become a site sponsor/subscriber and ads will be disabled automatically. 


jumper

KernelEx 4.5 Core Updates (4.5.2016.17)

Recommended Posts

I had kex version 4.5.2015.9 installed on this win-98se system. I copied (not moved) all the files in the \windows\kernelex directory to a backup folder. I downloaded Release.11.7z and unpacked it into \windows\kernelex\Release.11 folder. I ran the update.pif in the Release.11 folder, the system rebooted, ran the bat file, asked me if I wanted to replace a few files (I said yes), and then rebooted.

Upon restart, I got the message "Kernel32.dll performed an invalid page fault" shortly after the login window came up. Dismissing that, got a short cascade of other messages (other things trying to run, but didn't or couldn't). Bottom line, system not functional, no desktop. Reboot into dos.

There appears to be 3 dll files that are newer than what I had before in the kernelex folder:

kexbasen.dll

kexbases.dll

kernelex.dll

After a little bit of trial and error, I find that replacing kexbasen.dll with the previous version brings back full system functionality. So I'm now running with kernelex 4.5.2015.11 except for kexbasen.dll which is version 4.5.2015.9. In this state, I can post this message, watch youtube videos using opera 12.02 and vlc 2.0.8 works fine (don't know if those constitute a good kernelex test or not...). No functional issues noted so far.

Share this post


Link to post
Share on other sites

KEXBASEN.DLL 4.5.2015.12 will fix this, which you can download from the link in this post.

:yes:

Share this post


Link to post
Share on other sites

Use TaskInfo2000 or something similar to check the CPU, memory, and resource usage when it "freezes". Is CPU high and memory/resources increasing? If so, you may simply need to wait (much) longer.

 

On SeaMonkey 2.7.2 cpu usage stays at around 90% !! I waited one time 5 Minutes to see what happens but nothing changed.

I assume that this does not happens on your system, however, which one of the involved dll's might be the culcript ?

 

I noticed that the loaded ole32.dll is version 4.71.3328 (size 776 kB) but I also have a version with the same number but the size is only 761 kB !! On your list I see 4.71.2900 at 772 kB. I guess there is no other way than testing one by one ?

 

Added info: after upgrading iphlpapi.dll I was able to catch a different crash log.

..

..

1 fffa03cb  [XUL.DLL]109b38f8:<GDI32.DLL>SelectObject(bfa468b2)

1 fffa03cb  [XUL.DLL]109b38f8:<GDI32.DLL>SelectObject = 388

1 fffa03cb  [XUL.DLL]109b4425:<GDI32.DLL>GetCharWidthI(7d00c940)

1 fffa03cb  [XUL.DLL]109b4425:<GDI32.DLL>GetCharWidthI = 1

1 fffa03cb  [XUL.DLL]109b1600:<GDI32.DLL>SelectObject(bfa468b2)

1 fffa03cb  [XUL.DLL]109b1600:<GDI32.DLL>SelectObject = 388

1 fffa03cb  [XUL.DLL]10a43cf0:<GDI32.DLL>SelectObject(bfa468b2)

1 fffa03cb  [XUL.DLL]10a43cf0:<GDI32.DLL>SelectObject = 388

1 fffa03cb  [XUL.DLL]10a43d11:<GDI32.DLL>SetGraphicsMode(bfa48306)

1 fffa03cb  [XUL.DLL]10a43d11:<GDI32.DLL>SetGraphicsMode = 1

1 fffa03cb  [XUL.DLL]10a43674:<GDI32.DLL>SetWorldTransform(bfa483c3)

1 fffa03cb  [XUL.DLL]10a43674:<GDI32.DLL>SetWorldTransform = 1

1 fffa03cb  [XUL.DLL]10a43d5b:<GDI32.DLL>SetMapMode(bfa4854a)

1 fffa03cb  [XUL.DLL]10a43d5b:<GDI32.DLL>SetMapMode = 1

1 fffa03cb  [XUL.DLL]10a4411a:<GDI32.DLL>GetGlyphOutlineW(7d00cc20)

1 fffa03cb  [XUL.DLL]10a4411a:<GDI32.DLL>GetGlyphOutlineW = 0

1 fffa03cb  [XUL.DLL]10a43cf0:<GDI32.DLL>SelectObject(bfa468b2)

1 fffa03cb  [XUL.DLL]10a43cf0:<GDI32.DLL>SelectObject = 94

1 fffa03cb  [XUL.DLL]10a43d11:<GDI32.DLL>SetGraphicsMode(bfa48306)

1 fffa03cb  [XUL.DLL]10a43d11:<GDI32.DLL>SetGraphicsMode = 1

1 fffa03cb  [XUL.DLL]10a43674:<GDI32.DLL>SetWorldTransform(bfa483c3)

1 fffa03cb  [XUL.DLL]10a43674:<GDI32.DLL>SetWorldTransform = 1

1 fffa03cb  [XUL.DLL]10a43d5b:<GDI32.DLL>SetMapMode(bfa4854a)

1 fffa03cb  [XUL.DLL]10a43d5b:<GDI32.DLL>SetMapMode = 1

1 fffa03cb  [XUL.DLL]109b38f8:<GDI32.DLL>SelectObject(bfa468b2)

1 fffa03cb  [XUL.DLL]109b38f8:<GDI32.DLL>SelectObject = 388

1 fffa03cb  [XUL.DLL]109b4425:<GDI32.DLL>GetCharWidthI(7d00c940)

1 fffa03cb  [XUL.DLL]109b4425:<GDI32.DLL>GetCharWidthI = 1

1 fffa03cb  [XUL.DLL]109b1600:<GDI32.DLL>SelectObject(bfa468b2)

1 fffa03cb  [XUL.DLL]109b1600:<GDI32.DLL>SelectObject = 388

1 fffa03cb  [XUL.DLL]10a43cf0:<GDI32.DLL>SelectObject(bfa468b2)

1 fffa03cb  [XUL.DLL]10a43cf0:<GDI32.DLL>SelectObject = 94

1 fffa03cb  [XUL.DLL]10a43d11:<GDI32.DLL>SetGraphicsMode(bfa48306)

1 fffa03cb  [XUL.DLL]10a43d11:<GDI32.DLL>SetGraphicsMode = 1

1 fffa03cb  [XUL.DLL]10a43674:<GDI32.DLL>SetWorldTransform(bfa483c3)

1 fffa03cb  [XUL.DLL]10a43674:<GDI32.DLL>SetWorldTransform = 1

1 fffa03cb  [XUL.DLL]10a43d5b:<GDI32.DLL>SetMapMode(bfa4854a)

1 fffa03cb  [XUL.DLL]10a43d5b:<GDI32.DLL>SetMapMode = 1

1 fffa03cb  [XUL.DLL]109b38f8:<GDI32.DLL>SelectObject(bfa468b2)

1 fffa03cb  [XUL.DLL]109b38f8:<GDI32.DLL>SelectObject = 388

1 fffa03cb  [XUL.DLL]109b4425:<GDI32.DLL>GetCharWidthI(7d00c940)

1 fffa03cb  [XUL.DLL]109b4425:<GDI32.DLL>GetCharWidthI = 1

1 fffa03cb  [XUL.DLL]109b1600:<GDI32.DLL>SelectObject(bfa468b2)

1 fffa03cb  [XUL.DLL]109b1600:<GDI32.DLL>SelectObject = 388

1 fffa03cb  [XUL.DLL]10a43cf0:<GDI32.DLL>SelectObject(bfa468b2)

1 fffa03cb  [XUL.DLL]10a43cf0:<GDI32.DLL>SelectObject = 94

1 fffa03cb  [XUL.DLL]10a43d11:<GDI32.DLL>SetGraphicsMode(bfa48306)

1 fffa03cb  [XUL.DLL]10a43d11:<GDI32.DLL>SetGraphicsMode = 1

1 fffa03cb  [XUL.DLL]10a43674:<GDI32.DLL>SetWorldTransform(bfa483c3)

1 fffa03cb  [XUL.DLL]10a43674:<GDI32.DLL>SetWorldTransform = 1

1 fffa03cb  [XUL.DLL]10a43d5b:<GDI32.DLL>SetMapMode(bfa4854a)

1 fffa03cb  [XUL.DLL]10a43d5b:<GDI32.DLL>SetMapMode = 1

1 fffa03cb  [XUL.DLL]109b38f8:<GDI32.DLL>SelectObject(bfa468b2)

1 fffa03cb  [XUL.DLL]109b38f8:<GDI32.DLL>SelectObject = 388

1 fffa03cb  [XUL.DLL]109b4425:<GDI32.DLL>GetCharWidthI(7d00c940)

1 fffa03cb  [XUL.DLL]109b4425:<GDI32.DLL>GetCharWidthI = 1

1 fffa03cb  [XUL.DLL]109b1600:<GDI32.DLL>SelectObject(bfa468b2)

1 fffa03cb  [XUL.DLL]109b1600:<GDI32.DLL>SelectObject = 388

1 fffa03cb  [XUL.DLL]10a43cf0:<GDI32.DLL>SelectObject(bfa468b2)

1 fffa03cb  [XUL.DLL]10a43cf0:<GDI32.DLL>SelectObject = 94

1 fffa03cb  [XUL.DLL]10a43d11:<GDI32.DLL>SetGraphicsMode(bfa48306)

1 fffa03cb  [XUL.DLL]10a43d11:<GDI32.DLL>SetGraphicsMode = 1

1 fffa03cb  [XUL.DLL]10a43674:<GDI32.DLL>SetWorldTransform(bfa483c3)

1 fffa03cb  [XUL.DLL]10a43674:<GDI32.DLL>SetWorldTransform = 1

1 fffa03cb  [XUL.DLL]10a43d5b:<GDI32.DLL>SetMapMode(bfa4854a)

1 fffa03cb  [XUL.DLL]10a43d5b:<GDI32.DLL>SetMapMode = 1

1 fffa03cb  [XUL.DLL]109b38f8:<GDI32.DLL>SelectObject(bfa468b2)

1 fffa03cb  [XUL.DLL]109b38f8:<GDI32.DLL>SelectObject = 388

1 fffa03cb  [XUL.DLL]109b4425:<GDI32.DLL>GetCharWidthI(7d00c940)

1 fffa03cb  [XUL.DLL]109b4425:<GDI32.DLL>GetCharWidthI = 1

1 fffa03cb  [XUL.DLL]109b1600:<GDI32.DLL>SelectObject(bfa468b2)

1 fffa03cb  [XUL.DLL]109b1600:<GDI32.DLL>SelectObject = 388

1 fffa03cb  [XUL.DLL]10a43cf0:<GDI32.DLL>SelectObject(bfa468b2)

1 fffa03cb  [XUL.DLL]10a43cf0:<GDI32.DLL>SelectObject = 94

1 fffa03cb  [XUL.DLL]10a43d11:<GDI32.DLL>SetGraphicsMode(bfa48306)

1 fffa03cb  [XUL.DLL]10a43d11:<GDI32.DLL>SetGraphicsMode = 1

1 fffa03cb  [XUL.DLL]10a43674:<GDI32.DLL>SetWorldTransform(bfa483c3)

1 fffa03cb  [XUL.DLL]10a43674:<GDI32.DLL>SetWorldTransform = 1

1 fffa03cb  [XUL.DLL]10a43d5b:<GDI32.DLL>SetMapMode(bfa4854a)

1 fffa03cb  [XUL.DLL]10a43d5b:<GDI32.DLL>SetMapMode = 1

1 fffa03cb  [XUL.DLL]109b38f8:<GDI32.DLL>SelectObject(bfa468b2)

1 fffa03cb  [XUL.DLL]109b38f8:<GDI32.DLL>SelectObject = 388

1 fffa03cb  [XUL.DLL]109b4425:<GDI32.DLL>GetCharWidthI(7d00c940)

1 fffa03cb  [XUL.DLL]109b4425:<GDI32.DLL>GetCharWidthI = 1

1 fffa03cb  [XUL.DLL]109b1600:<GDI32.DLL>SelectObject(bfa468b2)

1 fffa03cb  [XUL.DLL]109b1600:<GDI32.DLL>SelectObject = 388

1 fffa03cb  [XUL.DLL]10a43cf0:<GDI32.DLL>SelectObject(bfa468b2)

1 fffa03cb  [XUL.DLL]10a43cf0:<GDI32.DLL>SelectObject = 94

1 fffa03cb  [XUL.DLL]10a43d11:<GDI32.DLL>SetGraphicsMode(bfa48306)

1 fffa03cb  [XUL.DLL]10a43d11:<GDI32.DLL>SetGraphicsMode = 1

1 fffa03cb  [XUL.DLL]10a43674:<GDI32.DLL>SetWorldTransform(bfa483c3)

1 fffa03cb  [XUL.DLL]10a43674:<GDI32.DLL>SetWorldTransform = 1

1 fffa03cb  [XUL.DLL]10a43d5b:<GDI32.DLL>SetMapMode(bfa4854a)

1 fffa03cb  [XUL.DLL]10a43d5b:<GDI32.DLL>SetMapMode = 1

1 fffa03cb  [XUL.DLL]109b38f8:<GDI32.DLL>SelectObject(bfa468b2)

1 fffa03cb  [XUL.DLL]109b38f8:<GDI32.DLL>SelectObject = 388

1 fffa03cb  [XUL.DLL]109b4425:<GDI32.DLL>GetCharWidthI(7d00c940)

1 fffa03cb  [XUL.DLL]109b4425:<GDI32.DLL>GetCharWidthI = 1

1 fffa03cb  [XUL.DLL]109b1600:<GDI32.DLL>SelectObject(bfa468b2)

1 fffa03cb  [XUL.DLL]109b1600:<GDI32.DLL>SelectObject = 388

Edited by MiKl

Share this post


Link to post
Share on other sites

> So I put this ntdll.dll into the kernelex/ros-folder and made the knowndlls-entry in the registry.

Experimenting with system files from others OSes is encouraged. :thumbup

If you use them as a KernelEx auxiliary DLL, please report results in KernelEx Auxiliary DLL Updates

If you use them with Kexstubs, please report results in Kext: DIY KernelEx extensions


> On SeaMonkey 2.7.2 cpu usage stays at around 90% !! I waited one time 5 Minutes to see what happens but nothing changed. ...I assume that this does not happens on your system....

It doesn't happen...until it does! After much debugging and tracing, I've concluded that the hang isn't caused by KernelEx. SeaMonkey versions 2.7-2.9 are simply yet more apps that don't fully work with Win9x even with the help of KernelEx. I recommend version jumping to SeaMonkey 2.32 which does work (with glitches, but without hanging). Then go backwards to find faster versions with fewer glitches or forward (if you have a fast machine) to test more recent versions. Report all findings in a separate thread dedicated to SeaMonkey compatibility results.


@loblo and everyone

Use the WindowsSystem registry patch or manually disable KernelEx extensions on all system files including:

AVICAP32.DLLCOMDLG32.DLLDNSAPI.DLLMPR.DLLMSIMG32.DLLMSVCRT.DLLMSVCRT20.DLLMSVFW32.DLLOLE32.DLLOLEDLG.DLLSHELL32.DLLUNICOWS.DLLWINSPOOL.DRV
Clean your stubs.ini file of these and any other duplicate definitions:
[ADVAPI32.DLL]ConvertSidToStringSidA[KERNEL32.DLL]GetModuleHandleExA[KERNEL32.DLL]SetDllDirectoryA[KERNEL32.DLL]SetDllDirectoryW


> Note that more of Ley0k's code has been integrated including his versions of [COMDLG32.DLL] PrintDlgExA and PrintDlgExW.

Actually the PrintDlgEx functions are still stubs, not much better than the original stubs. I've been working on improving the ComDlgKs and ReactOS versions, but they are not ready yet.

In addition to better

[Comdlg32.dll]PrintDlgExA

[Comdlg32.dll]PrintDlgExW

we also need:

[Winspool.drv]EnumFormsW

[Winspool.drv]GetPrinterW

These will all go into a future version of Kexbasen.dll.

Share this post


Link to post
Share on other sites

> On SeaMonkey 2.7.2 cpu usage stays at around 90% !! I waited one time 5 Minutes to see what happens but nothing changed. ...I assume that this does not happens on your system....

It doesn't happen...until it does! After much debugging and tracing, I've concluded that the hang isn't caused by KernelEx. SeaMonkey versions 2.7-2.9 are simply yet more apps that don't fully work with Win9x even with the help of KernelEx. I recommend version jumping to SeaMonkey 2.32 which does work (with glitches, but without hanging). Then go backwards to find faster versions with fewer glitches or forward (if you have a fast machine) to test more recent versions. Report all findings in a separate thread dedicated to SeaMonkey compatibility results.

 

Thank you Jumper !!

You mentioned SM2.32 already a few months ago but it did and does not start on my systems. I always get a error message from 'XulRunner' that 'XPCOM' could not be loaded. Xpcom.dll is not part of the package anymore and I unfortunately do not know what to do  :blushing: 

Share this post


Link to post
Share on other sites

I've noticed that Opera 12.02 no longer puts up its popup notification at the bottom right when a download is completed.

I assume that all such messages are now not working.

It was fine using KernelEx 4.5.2015.10, and I'm pretty sure it was OK with 4.5.2015.11 too when I had the registry fix applied using the original files.

I think it probably stopped working when I replaced the 4.5.2015.11 version of kexbasen.dll with the 4.5.2015.12 version to fix the startup problem.

I will do some tests.

I do seem to remember this Opera problem happening once before, but I can't remember what the fix was!

:)

Share this post


Link to post
Share on other sites
On 27/02/2016 at 1:29 AM, jumper said:

@loblo and everyone

Use the WindowsSystem registry patch or manually disable KernelEx extensions on all system files including:
...

Clean your stubs.ini file of these and any other duplicate definitions:

...

I disabled KernelEx on the suggested system dlls and a bunch of others. After reboot I had no flashing cursor anymore in any of Opera's edit fields and this with both UI and inside web pages. Reverting changes fixed it but only after reboot. I don't know disabling which system dll is the cause for it.

Neither disabling dlls or cleaning up kstub822.ini of duplicates helped with the windowscodecs.dll crashes I get with latest kexbases.dll.

On the positive side, and before any of those changes, some apps that did crash in kexbases.dll and that I could only run from within Dependency Walker now run fine on their own with the latest version of this dll. 

Share this post


Link to post
Share on other sites
On 27/02/2016 at 4:51 PM, loblo said:
On 27/02/2016 at 1:29 AM, jumper said:

@loblo and everyone

Use the WindowsSystem registry patch or manually disable KernelEx extensions on all system files including:

I disabled KernelEx on the suggested system dlls and a bunch of others. After reboot I had no flashing cursor anymore in any of Opera's edit fields and this with both UI and inside web pages. Reverting changes fixed it but only after reboot. I don't know disabling which system dll is the cause for it.

It's unicows.dll and there is no need to reboot if the change is made through the file property dialog, it seems settings change aren't applied  immediately if they are made in the registry as I did yesterday.

Share this post


Link to post
Share on other sites

> I have not tried so far to see if disabling system dlls would help with the Gimp plugins and git crashes as I am still using original kexbasen.dll.

Fixing Gimp was the primary purpose of disabling extensions on the system DLL's, however it should increase both performance and stablility in all apps.
Also, using the original Kexbasen with the latest update releases is unsupported. Please don't do it except for temporary test comparisons.

> It's unicows.dll

What is Unicows? The problem or the solution to what?

> it seems settings change aren't applied immediately if they are made in the registry

For performance reasons, KernelEx does not monitor the registry. The property sheet updates the registry and then alerts KernelEx to reload the settings.

Edited by jumper

Share this post


Link to post
Share on other sites

With unicows disabled I don't have a flashing cursor in Opera's edit fields as is obvious by reading the whole post.

Now with msvcrt disabled, Gimp does not fully start and I can't run chess engines (standalone console executables) in ChessWizard anymore.

But OK, I'll try all that with latest kexbasen soon and will let you know. I don't use latest kexbasen because of Gimp and Git issues as I use Gimp and Mintty very frequently.

Share this post


Link to post
Share on other sites
On 29/02/2016 at 10:20 AM, jumper said:

For performance reasons, KernelEx does not monitor the registry. The property sheet updates the registry and then alerts KernelEx to reload the settings.

I now understand why such registry change didn't "take" some time ago when I performed some tests.

Is there a way to (programmatically or not) have KernelEx acknowledge the registry settings changes for one or more files and update the property sheets accordingly? That is, the exact reverse of the current/normal behavior.

FYI, currently I have no 9x test machine so can't be of any use here other than maybe some ideas.

Share this post


Link to post
Share on other sites

OK so, with all latest KernelEx files, system dlls disabled and kstub822.ini pruned of every duplicate there is no change whatsoever with all the issues/regressions I previously reported.

unicows disabled > no flashing cursor in Opera's edit fields.

msvcrt disabled > Gimp not starting and chess engines not running in Chess Wizard.

msvcrt enabled > Gimp runs but plugins are crashing.

Git crashes when I run Mintty regardless whether msvcrt is enabled or disabled.

No change with windowscodecs.dll crashes.

Share this post


Link to post
Share on other sites
Use the WindowsSystem registry patch or manually disable KernelEx extensions on all system files including:

 

After manually disabling those system DLLs, same trouble with VLC Media Player v2.1.5 as before (with winsys reg patch):

  VLC media player could not start.  Either the command line options were invalid or no plugins were found.

The main culprit was MSVCRT.dll; resetting back to "default" allowed VLC to (at least) start (did not do more-extensive testing).  Using v7.00.9981.0 for MSVCRT; no KExt/KStub.  

- Doug B.

Share this post


Link to post
Share on other sites

Unless some application overrides the default library search path, one could place a copy of the troublesome library (i.e. msvcrt.dll as in DougB's situation) in application's folder where main executable resides and then set the appropriate compatibility mode. This should theoretically override the global library by loading the local copy instead.

 

This may however introduce complications and one may tend to forget about the local copy, later on trying to work on the global one without success.

Share this post


Link to post
Share on other sites

Unless some application overrides the default library search path, one could place a copy of the troublesome library (i.e. msvcrt.dll as in DougB's situation) in application's folder where main executable resides and then set the appropriate compatibility mode. This should theoretically override the global library by loading the local copy instead.

 

This may however introduce complications and one may tend to forget about the local copy, later on trying to work on the global one without success.

 

Hah -- DLL HELL!!!  The situation i'm trying to avoid by keeping, as much as reasonable, the "system"-type DLLs only in the Windows\System\ folder.  But your suggestion is a good one when my approach might not work. 

 

- Doug

Edited by DougB

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   1 member

×
×
  • Create New...