Goodmaneuver Posted July 5, 2019 Posted July 5, 2019 (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 July 29, 2019 by Goodmaneuver Problem Solved
schwups Posted July 6, 2019 Posted July 6, 2019 I use MSVCR.70.dll 7.0.9981.0 as msvcrt.dll. I'll test your version 8.0...... soon.
jumper Posted July 7, 2019 Author Posted July 7, 2019 (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 July 8, 2019 by jumper
schwups Posted July 10, 2019 Posted July 10, 2019 (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 July 10, 2019 by schwups
MiKl Posted July 10, 2019 Posted July 10, 2019 (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 ?? Edited July 11, 2019 by MiKl
Goodmaneuver Posted July 11, 2019 Posted July 11, 2019 (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 is not the one I chose. The SPs chose WinNT version which is bigger but I chose from Windows2000-KB935839-v22l-x86-ENU.exe vs 2.40.4532.3 and it is 616 KB. It is an important file & this vs needs a KEX setting NT6a or similar. 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 August 29, 2019 by Goodmaneuver Found source of Oleaut32
jumper Posted July 11, 2019 Author Posted July 11, 2019 @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!).
Goodmaneuver Posted July 15, 2019 Posted July 15, 2019 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.
MiKl Posted July 16, 2019 Posted July 16, 2019 (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 July 18, 2019 by MiKl
jumper Posted July 18, 2019 Author Posted July 18, 2019 > 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.
Goodmaneuver Posted July 18, 2019 Posted July 18, 2019 (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 July 25, 2019 by Goodmaneuver Improved - Old HDD still had IsProcessorFeaturePresent on same files just had to try some games
MiKl Posted July 21, 2019 Posted July 21, 2019 @ 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.
Goodmaneuver Posted July 21, 2019 Posted July 21, 2019 (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 July 27, 2019 by Goodmaneuver Improved MSFN S/Cs created from my profile
Goodmaneuver Posted July 25, 2019 Posted July 25, 2019 (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. Edited August 1, 2019 by Goodmaneuver Not Correct
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now