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


Posted (edited)

Just tested VLC3.04 all OK. I did not take any chances and started program with Win98SE and I do not have any errors on exiting. I use msvcrt of 8.0.31113.25 in the VLC directory or as a system file, I still have libqt_plugin.dll as left altered 'IsDebuggerPresent'. I have VLC2 installed in separate directory with a renamed VLC exe so it is recognized different in registry. Icecast stations are found but downloading the play list does not occur with VLC3. There are many more than VLC2.

I tested VLC3 with an unaltered libqt_plugin.dll message says VLC errorred in libqt_plugin.dll. It does not matter what mode VLC is using. VLC needs to be installed, unzipped from a reliable source or copied from another Win9X working directory. It does not play files if copied from Win7 I found? This was because OpenGL would not render the files on my system see page 43.

Edited by Goodmaneuver
Problem Solved

Share this post


Link to post
Share on other sites

I use MSVCR.70.dll 7.0.9981.0 as msvcrt.dll. I'll test your version 8.0...... soon.

Share this post


Link to post
Share on other sites
Posted (edited)

I'm still working on the .21 documentation, but here's Kexbases.22 (with some docs inside) anyway:

delta.22.7z - 130KB

Improved debug support is the focus. Also some additions from discussions in the DIY thread. Thanks to @schwups, @roytam1, and everyone continuing the discussion here.

New API's:
_kernel32_apilist.c (+ added, ^ changed, - removed)
+ DECL_API("ConvertFiberToThread", ConvertFiberToThread_stub),
+ DECL_API("DebugBreak", DebugBreak_stub),
+ DECL_API("DebugBreak", DebugBreak_new),
+ DECL_API("InitializeCriticalSectionEx", InitializeCriticalSectionEx_new),
+ DECL_API("IsDebuggerPresent", IsDebuggerPresent_no),
+ DECL_API("IsDebuggerPresent", IsDebuggerPresent_yes),
+ DECL_API("OutputDebugStringA", OutputDebugStringAW_stub),
+ DECL_API("OutputDebugStringA", OutputDebugStringA_new),
+ DECL_API("OutputDebugStringW", OutputDebugStringAW_stub),
^ DECL_API("OutputDebugStringW", OutputDebugStringW_new),
+ DECL_API("QueryThreadCycleTime", QueryThreadCycleTime_stub),

_ntdll_apilist.c
+ DECL_API("DbgBreakPoint", DbgBreakPoint_dbg),
+ DECL_API("DbgPrint", DbgPrint_dbg),
+ DECL_API("DbgPrintEx", vDbgPrintEx_dbg),
+ DECL_API("DbgPrompt", DbgPrompt_dbg),
+ DECL_API("vDbgPrintEx", vDbgPrintEx_dbg),
+ DECL_API("vDbgPrintExWithPrefix", vDbgPrintExWithPrefix_dbg),

_other_apilist.c (! oops neglected to export!)
! DECL_API("Lz32_SymGetSearchPathW_Dbghelp", Lz32_SymGetSearchPathW_Dbghelp_stub),
! DECL_API("Lz32_SymSetSearchPathW_Dbghelp", Lz32_SymSetSearchPathW_Dbghelp_stub),

More details:
apilibs\kexbases\kexbases.dsp (DevStudio Project)
+ .\kernel32\Debug.c
+ .\ntdll\Dbg.c

apilibs\kexbases\kernel32\_kernel32_stubs.c
+ ConvertFiberToThread =f0e120
+ QueryThreadCycleTime =f2e120

apilibs\kexbases\kernel32\Debug.c
+ DebugBreak_stub (no action; default)
+ DebugBreak_new (display message box, TBD:with stack trace)
+ IsDebuggerPresent_no (default)
+ IsDebuggerPresent_yes
+ OutputDebugStringAW_stub (no action; default)
+ OutputDebugStringA_new (display ansi text in message box)
+ OutputDebugStringW_new (display unicode text in message box)
:... moved from unikernel32.c
:... now uses OutputDebugStringA_new

apilibs\kexbases\kernel32\InitializeCriticalSectionAndSpinCount.c
+ InitializeCriticalSectionEx_new

apilibs\kexbases\kernel32\unikernel32.c
- OutputDebugStringW_new (moved to Debug.c)

apilibs\kexbases\ntdll\Dbg.c
+ DbgPrint_dbg (display formatted text in message box)
+ vDbgPrintEx_dbg (display formatted text in message box, aka DbgPrintEx)
+ vDbgPrintExWithPrefix_dbg (display formatted text in message box)
+ DbgBreakPoint_dbg (display message box with options)
:... options are: Abort app; Retry in debugger; Ignore breakpoint
+ DbgPrompt_dbg (display text prompt in message box, return no text)

apilibs\kexbases\ntdll\rtl.c
^ optimized RtlInitializeCriticalSection* heirarchy

apilibs\kexbases\other\_other_stubs.c
+ Lz32_SymGetSearchPathW_Dbghelp =f3e120
+ Lz32_SymSetSearchPathW_Dbghelp =f3e120
:... stubs for Dbghelp.Sym* when using HKLM...SM\KnownDLLs:Dbghelp=LZ32.dll


Edited by jumper

Share this post


Link to post
Share on other sites
Posted (edited)


 

Thanks for the update. jumper, is it your intention or more a bug, that we must change the KernelEx mode for some apps from default to Base (Kexbases,Kexbasen) or Legacy Base enhancements with regard to the error "...missing export Kernel32.dll: IsProcessorFeaturePresent"? Does this remain now?

Goodmaneuver, I have not been able to fix the Vlc errors on exit yet. I think, that your msvcrt is the renamed MSVCR.80.dll 8.0.31113.25 or not?

 Like I said, I don't get these errors with KerneEx 4.5.2



 

Edited by schwups

Share this post


Link to post
Share on other sites
Posted (edited)

Hi Jumper, still in the process of limiting/removing ReactOS on my system but I tested
the new kexbases.22 and I receive error messages regarding:
ntdll.vDbgPrintExWithPrefix - ComponentID: 4294967295
I think this is caused by mpr.dll from ReactOS - hope I can get rid of it soon but I thought
I'll let you know just in case it might hint at something.
Thank you for all your hard work !!

Update:
O.K., I am through now and kexbases.22 seem to be fine now. Will check the new core.ini again soon.
Quick question. Now that I do not have msvcrt.dll as an auxilliary anylonger the VLC player won't start. Was there another solution for that ? I seem to remember that it was recommended to deactivate KernelEx in system's msvcrt.dll ??
 

kexbases22.jpg

Edited by MiKl

Share this post


Link to post
Share on other sites
Posted (edited)

Schwups yes or 8.0.40209.38 see page 35. 8.040209.38 from LH4093 looks very similar to 8.0.31113.25 but altered slightly so I use this now as msvcrt.dll. I must say the oleaut32.dll chosen by ME SP1 and other SPs is not the one chosen by Microsoft as the update. The SPs chose WinNT version which is bigger but I chose (when I find the update) one which represented WinME and it is 616 KB, it is an important file. I think your exit error is probably due to KEX settings but lets see what the msvcrt.dll brings. I have msvcrt set to *\MSVCRT.DLL NT2K settings on the drive I used for VLC3 KEX21 test. These vs work in Win2K and the Unplug or Eject Hardware tray functioning is not affected in Win9X. MSVCR70 as MSVCRT did stop some programs as well eg DivX player.

Edited by Goodmaneuver
The webvw resource file speeds up system but I have decided to remove comment

Share this post


Link to post
Share on other sites

@schwups - There is no change regarding IsProcessorFeaturePresent. It continues to be deactivated in Core.ini for non-NT modes. Try NT4 or W2K mode for apps/modules that need it. I'll see about creating an ITO(*) version that can be safely enabled for all modes.

(*) ITO - ImportTable-Only. A "little" implementation or stub that is only used when a module won't load without it (Implicit link). KernelEx ITO functions do not resolve when delay-loaded (Explicit link) by apps probing for functions they want/hope to find.


@MiKl - Yes, that message box is the new vDbgPrintExWithPrefix I just added. Thanks for posting the image--this is the very first time I've seen it (I was unable to actually test it). I'll change the ComponentID to display as hex (4294967295 is 0xFFFFFFFF or -1) and correct the va_list parameter affecting the Message text (already done, but not tested!).

Share this post


Link to post
Share on other sites

I have PowerDVD7 set to KEX disabled and I get KernelEx - Ntdll.DbgPrint error window occurring on startup and shut down. Same error occurs with Maxthon  2.5.18.1000 on startup and shut down. I do not know if or what individual module makes this happen but it is exclusive to these programs so far. Both programs still operate only occurring since last KEX21.
 

Share this post


Link to post
Share on other sites
Posted (edited)

@ Jumper. While 'cleaning' my system I noticed that I do not even need kstub any longer !!
At least for the kernelex-depending apps that I use now. Awesome !!!!
Everything works great with core.ini up to 18. incl. notepad++ 7.6.6 !

But when using a newer version of core.ini notepad 7.6.6 does not work. Depending on the comp-setting
it either complains about 'IsProcessorFeaturePresent' or crashes right away.
Please let me know if you want/need any error reports.

 

Update: In the current setup Irfanview 4.5.2 now works !!
Unfortunately settings don't stick so it does not remember
to (re-)open in fullscreen, etc.
Follow up: As a workaround you can activate write-protection on irfanview's ini-file. It then uses a temp-ini which keeps some but not all settings.

 

Edited by MiKl

Share this post


Link to post
Share on other sites

> I have PowerDVD7 set to KEX disabled and I get KernelEx - Ntdll.DbgPrint error window occurring on startup and shut down.

Disabling KernelEx on an app does not disable it on submodules that are set to use a specific mode. The app needs to also be set to Override settings of individual modules. You are seeing the DbgPrint error windows now because DbgPrint is no longer a stub! The stub is still there and you can reenable it by specifying NTDLL.DbgPrint=kexbases.1
in Core.ini. This is already fixed in the next version.
On the other hand, it's good to finally be seeing the error message so we can fix the underlying problem(s). What is/are the error message(s)?

> I noticed that I do not ... even need kstub any longer !!
Neither do I. It is still useful for testing new definitions and for working around UPX incompatibilities.

> But when using a newer version of core.ini notepad 7.6.6 does not work.

The default mode has changed so you need to manually set it to Win2000 (or as needed). Lowering the default mode should reduce the number of problems for new users and incompatibilities with various unofficial service and update packs.

Share this post


Link to post
Share on other sites
Posted (edited)

>What is/are the error message(s)? :- There is no error message inside the window the title bar says KernelEx - Ntdll.DbgPrint

DbgPrint is a function of NTDLL so why was it stubbed? Does it mean that KEX was just unable to report errors? If it gets stubbed again next vs would it be able to enabled with Core.ini?

I have found that DbgPrint errors are probably from the registry. When I loaded KMPlayer from a different directory the DbgPrint error did not occur. That meant KMP file association, which it has many, was not directed to player in reg. I then fixed the DbgPrint error by unassociating formats then reassociating formats from within the player. There are probably remnants of Maxthon 1.6 in reg I estimate and there are a lot of reg settings associated to Maxthon. I think from my memory I have manually assigned reg settings across from Maxthon 1.6 which might be the mistake.

I did read that there is a maximum of 25 programs that can be used in the settings but I cannot find the post, it was you Jumper. There is more to this post and there is another figure of 100 or thereabouts, I did not know exactly what you meant. Are the DLLs included and is this number the max number of loaded modules with individual settings?

ACM files. why are they not included in KEX settings. (when trying to solve DbgPrint with modern HDD build) opening an ASF file with MP42 & 160 or 161 audio using MPLAYER2.EXE :- (which does not have DbgPrint error), loaded DIVX32.ACM as it did not have compatible audio decoder, DIVX32.ACM was not working though. I solved this ASF playback issue with WMP9 and WMP6.4 by using WMASF.AX from WMP11, 11.0.5721.5238.

Edited by Goodmaneuver
Improved - Old HDD still had IsProcessorFeaturePresent on same files just had to try some games

Share this post


Link to post
Share on other sites

@ Goodmaneuver. You seem to be quite good in getting apps to run !! Much better than me.
Can you maybe look into SeaMonkey 2.9. or 2.9.1 ?? Both are available as zip-files on Seamonkey's ftp.
Higher versions won't run at all I think.

Share this post


Link to post
Share on other sites
Posted (edited)

Miki I spent hours on this but am not a programmer see MSFN_Here & MSFN_Here 

The KEX delta updates are a bit tricky, make sure your KernelEx folder has these files in it.

                      dd/mm/year
KernelEx.dll    26/10/2018  4.5.2016.19
Kexbasen.dll  28/05/2019  4.5.2016.21
kexbases.dll   08/07/2019  4.5.2016.22
KexCOM.dll   12/09/2017  4.5.2016.18
Sheet.dll        24/01/2019  4.5.2016.19
Verify.exe      05/10/2018  4.5.2016.18
VKrnlEx.vxd   04/09/2017
Core.ini         11/06/2019

Jumper you mentioned from p40

>Regarding GDI32.GetCharABCWidthsI, the Kernel4.5.2 source code states in UberGDI.c:
//NOTE: usp10 is probing for that function, don't forget to exclude it

There is no import functions missing with DW. If KEX is disabled on USB10 then it would not work if it is probing for GetCharABCWidthsI wouldn't it? Unless 4.5.2 is suggesting keep it disabled otherwise it will probe for it? I do not use updated GDI32 from ME SP if that is what the UberGDI.c is referring to?

Edited by Goodmaneuver
Improved MSFN S/Cs created from my profile

Share this post


Link to post
Share on other sites
Posted (edited)

I found out what the DbgPrint error is possibly caused by the latest KEX not updating registry like it should. The file created times are not working (new files). I have even viewed with other HDD with 4.5.2 and the new file created times are not working. This came good by going back to KEX18. Another fault I have but not on all HDD so may not be KEX fault, certain files do not want to register.

Image1.jpg

Edited by Goodmaneuver
Not Correct

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   0 members

    No registered users viewing this page.

×
×
  • Create New...