Xeno86

KernelEx 4.5.2

1,561 posts in this topic

Joe, it's the ini file that matters the most. You should find in it a section per dependency listing the missing functions as follows:

missingfunction=Y

Then you just need to replace the Y by whatever function you want to replace it and rerun the tool which will patch accordingly. (If you want no change for a missing function which is best for what KernelEx already caters for then replace Y by the missing function such as: missingfunction=missingfunction).

0

Share this post


Link to post
Share on other sites

Bug-Report: Argyll CMS does not work

...when I manually set all the EXE files KernelEx mode to Win2k or higher, the program seemed to run. (I also installed the "Argyll CMS GUI" extension.)

Thank you for reporting that Argyll CMS v1.3.5 does indeed run on Win9x with the help of KernelEx set to Win2k mode.

The rest of your post, however, is the "no Win9x drivers for my hardware" problem with a twist: the app won't use the standard drivers, wants to use its own, but doesn't support Win9x.

If KernelEx 4.5.2 doesn't support all the advanced functions needed by the Win2k drivers, you'll need to find a Win9x driver solution.

I recommend reading this Argyll Installation on Microsoft Windows page for info on using alternative drivers; and this libusb-win32 page for the last version to support Win9x.

If you need more help with the hardware drivers, please start a new topic. I have many more ideas that should help, but would be way off-topic here!

0

Share this post


Link to post
Share on other sites

Joe, it's the ini file that matters the most. You should find in it a section per dependency listing the missing functions as follows:

missingfunction=Y

Then you just need to replace the Y by whatever function you want to replace it and rerun the tool which will patch accordingly. (If you want no change for a missing function which is best for what KernelEx already caters for then replace Y by the missing function such as: missingfunction=missingfunction).

Thanks, loblo.

I see now there is a new thread for Import Patcher :

I'll try this again once version 29 is released (apparently imminent).

Joe.

Edited by jds
0

Share this post


Link to post
Share on other sites

While looking at the code from sqlite, specifically, sqlite.c from the from this file:

http://www.sqlite.org/sqlite-amalgamation-3070900.zip

I can't help but notice that someone has attempted to write implementations of LockFile, UnlockFile, and LockFileEx, of the Windows API for Windows CE. I'm wondering if that code could be modified for KernelEx? Would the license the code is under be an issue? And yes, I'm aware that LockFile and UnlockFile are already part of Windows 9x's API.

Edit:

If you Google "LockFileEX" or "UnlockFileEx" with "Windows CE", you'll find code at msdn.

Edited by Steven W
0

Share this post


Link to post
Share on other sites

Oh, apparently LockFileEx and UnlockFileEx were already implemented with KernelEx 4.5.2. My mistake.

0

Share this post


Link to post
Share on other sites

>It suggests that the breadth of KernelEx application compatibility can be usefully expanded with a few added stubs.

Rebuilding all of KernelEx just to add a stub is overkill. There should be a way to just add a small expansion dll; perhaps this is what the undocumented api was meant to address.

I would like to see an .ini file where users can add "<module name>, <function name>, <return value>, <SetLastError value>" lines that would be loaded by KernelEx and turned into new stubs on-the-fly. (Core.ini can almost do this now....)

I haven't tried building KernelEx yet because I'm still using VC5. My response to loblo' s little hex hacks was to create a tool to automate import table patching. Unfortunately it mutated into a full-blown dependency walker before I could get it released. :(

I'm almost done with minf, so I'll clean up and formally release ImportPatcher next, then get to work on KernelEx.

-jumper

There is a special mechanism added in KernelEx v4.5.1 that is exactly what you might want - that is extending system API on-the-fly.

The thing to look for is 'KernelEx API Hook infrastructure'.

I used it specifically build a DLL to log all API calls from a chosen application to a file but you can use it to test new system APIs before applying to KernelEx API Libraries.

What you need to do build a DLL (HOOK DLL) and export two functions:

int kexApiHook_initonce(void)

PROC kexApiHook_register(const char* caller, const char* target, const char* api, PROC orig)

kexApiHook_initonce is called before any DllMain to prepare the hooks.

kexApiHook_register is called for any API imported by the application; you get information about requesting module name (caller), the library from which a function is requested (target), the function name that is requested (api) and previous function to chain if any (orig)

So to add a stub or whatever function you just do strcmp on 'target' and 'api' and return it from _register if you get a match.

What is important to keep in mind is that you HAVE TO disable extensions for your HOOK DLL.

Also you have to put a check near "Enable API Hook" in advanced properties on KernelEx tab.

And lastly, you have to compile KernelEx Core project in "Core - Win32 Release APIHOOK" configuration because this mechanism is very powerful, dangerous and useful for debugging only, it is not enabled in shipped KernelEx packages.

When you have working stubs or functions just submit them to me for inclusion in KernelEx.

I've no idea if you can compile KernelEx with VC5, you can compile a HOOK DLL however with any compiler you want. Use 'ApiLog' project as a reference (hope the code is documented well enough).

0

Share this post


Link to post
Share on other sites

This is very advanced for me, I know about Api's and somewhat of what they do. But can it improve video playback, streaming and gaming. Sorry if this seems like a dumb question. But I know loads about systems and have been working with them for years, sometimes though you can know a name or phase and not be completely sure of it actions. By the way, anybody need help let me know. Im here to contribute the best I can and also learn some things too. Peace

0

Share this post


Link to post
Share on other sites

With KernelEx 4.5.1 or 4.5.2 installed, DLLHOOK reports: Unknown version of KERNEL32.DLL.

Otherwise (and demo limitations aside), it works great. :) It was very easy to write a DLL and export some stub functions--no DDK needed!

I made modifications to DLLHOOK.INI similar to those above and was able to call a fictitious function in Kernel32 from a test app and redirect it to my DLL. For people who don't use KernelEx, DLLHOOK plus a DLL of stubs might get them by. I imagine this is basically how the Kernel Update Project got started.

Unfortunately, since DLLHOOK doesn't coexist with KernelEx, it can't be used to extend KernelEx as I had hoped. :(

I set up an experimental Windows 98SE setup and installed KernelEx 4.5.2. I have analyzed the KernelEx Interface and been able to update DLLHOOK to overlay KernelEx.

0

Share this post


Link to post
Share on other sites

>...can it improve video playback, streaming and gaming.

KernelEx doesn't improve -- it enables playback, streaming and gaming for many applications that otherwise refuse to either install or run on Win98/ME.

>By the way, anybody need help let me know. Im here to contribute the best I can and also learn some things too.

Welcome to the Win9x sub-forum, mrsk565. :yes: We look forward your contributions as we attempt to grow our favorite platform's fan-base together!

-jumper

0

Share this post


Link to post
Share on other sites

There is a special mechanism added in KernelEx v4.5.1 that is exactly what you might want - that is extending system API on-the-fly.

...

And lastly, you have to compile KernelEx Core project in "Core - Win32 Release APIHOOK" configuration because this mechanism is very powerful, dangerous and useful for debugging only, it is not enabled in shipped KernelEx packages.

When you have working stubs or functions just submit them to me for inclusion in KernelEx.

I've no idea if you can compile KernelEx with VC5, you can compile a HOOK DLL however with any compiler you want. Use 'ApiLog' project as a reference (hope the code is documented well enough).

I made better progress today trying to build some of the sub-projects with VC5 than I previously did several months ago. ApiLog and Core are both close to building after numerous small mods to paths, pragmas, link options, pointer casts, etc.

Use of ApiHook in a special build is not what I had in mind, but might work. I'm looking for a method that will allow non-programmers to add stubs to the standard version of KernelEx by modifying an .ini file. For instance, Core.ini contains the section:


[WIN98.names]
KERNEL32.GetVersion=kexbases.1
KERNEL32.GetVersionExA=kexbases.2
KERNEL32.GetVersionExW=kexbases.2

I'd like to be able to add:


MYDLL.SomeFunction=stubs.5

to allow SomeFunction in MYDLL.dll to be replaced with function ordinal 5 in Windows\KernelEx\stubs.dll (stubs.dll is an actual dll built ten days ago containing a family of stubs along the lines of rloew's suggestions).

Well, that's it for now. I'll resume trying to get more of KernelEx to build tomorrow.

0

Share this post


Link to post
Share on other sites

I set up an experimental Windows 98SE setup and installed KernelEx 4.5.2. I have analyzed the KernelEx Interface and been able to update DLLHOOK to overlay KernelEx.

That's great news! Now folks using KernelEx will soon have the option to start creating files larger than 4GB...

...errr, does this mean I have to start adding large file support to all my programs? :blink: ... :lol::thumbup

0

Share this post


Link to post
Share on other sites

Yes, Enables playback and gaming, Thats right I just coudnt remember thanks. KernelEX is a great project and is in fact one of the most important parts of Win9x. If we didnt have this we would be behind in progress big time. I am trying to grasp what we are talking about here but i dont know much about API hooks and all. I know that games can use this but other then that, I need some clarity on what we are doing.

0

Share this post


Link to post
Share on other sites

I set up an experimental Windows 98SE setup and installed KernelEx 4.5.2. I have analyzed the KernelEx Interface and been able to update DLLHOOK to overlay KernelEx.

That's great news! Now folks using KernelEx will soon have the option to start creating files larger than 4GB...

...errr, does this mean I have to start adding large file support to all my programs? :blink: ... :lol::thumbup

Some maybe.

If your Program is likely to be used with large files, and needs to handle the >4GB Virtual File, rather than the segments actually stored on the Hard Drive, it could use the upgrade.

So far, I have only updated XFILE.

0

Share this post


Link to post
Share on other sites

Heyho,

there is this software called "LMMS" ( http://lmms.sourceforge.net/ ).

Someting like an audio-midi-sequencer I guess... Looks nice..

I couldn't try it because of this (roughly translated):

"The file LIBSNDFILE-1.DLL is connected with the missing Export-MSVCRT.DLL:___lc_codepage_func."

I think I never had an error of this kind... what is this "___lc_codepage_func" ?!

Comp.-mode doesn't help. Is there anything that might help?

My system is a win98se(ger) + everything official & unofficial like RP (no theme since themes lead to bugs with recent vlc-player for example), KEX, Autopatcher "dec2008" (seems to work great with the german version anyways..) & much from MDGx's site..

Bye

Flipp

Latest version of LMMS (0.4.12) runs if msvcrt.dll is replaced by msvcr70.dll. The vsteffects.dll in the plugins folder crashes though but it can be replaced by the vsteffects.dll from the previous version of LMMS (0.4.11) and then it all runs fine.

More about replacing msvcrt.dll in this thread:

0

Share this post


Link to post
Share on other sites

I need to update my system to include a dshow splitter that supports .flv files with AVC content and .webm. files and a decoder for VP8.

I have Win98SE with KernelEx 4.5.2. I use Zoom Player 8, in large part because it still works on Win 98.

Does anyone have any recommendations for how I should do this?

0

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.


Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.