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. 


Sign in to follow this  
LLXX

Add functions to kernel32.dll

Recommended Posts

This patch was given to me by an individual that wishes to remain anonymous. It patches the kernel32.dll in Windows 98 and 98SE to add support for the previously NT-only APIs VirtualAllocEx, VirtualFreeEx, and CreateRemoteThread. Might be useful in getting a few more NT-only programs to run on 9x.

Source code is included.

win98updt0001.zip

Share this post


Link to post
Share on other sites

I don't have any NT-Based programs that I know of which call those API's so am Unable to test the functionality. However, I have downloaded and installed the patch.

Confirmed that the exports were installed using ExeScope... So far so good. System still stable and no problems have cropped up. Whoever this anonymous person is, I would like to thank them for extending support of the 9X Kernel. It is a great thing to be able to add additional API support to the 9X kernel and would love to see additional extentions in the future.

Anyone who continues to support 9X have my highest regards. Thank you everyone and many many thanks to the anonymous submitter.

Edited by Chozo4

Share this post


Link to post
Share on other sites
installed it

Don't kno wut is does

but my computer still workin

It just adds three more functions to the kernel, so that some NT-only programs may be able to run. Pleased to hear your system is still working fine.

Any reports on system (in)stability are greatly appreciated. This is currently a beta-test, as I am considering to ask for inclusion of this into the next version of 98SE USP.

Coming soon in a few months: LARGE DISK SUPPORT! :)

Edited by LLXX

Share this post


Link to post
Share on other sites

zis ist vonderbra just vonderbra :D you guys are really doing great with all of these modifications and stuff. Keep it up!!! :thumbup:thumbup:thumbup Three thumbs up for you.

Share this post


Link to post
Share on other sites

Good to see no problems so far.

Keep posting whether it works or not, so that in the event of any system instability being noticed I can try to resolve the problem as soon as possible. This is still in beta stage.

Share this post


Link to post
Share on other sites

And what about SetFilePointerEx function required by Adobe Reader 7 (AcroRd32.exe, reader_sl.exe)?

Would it be sufficient to run Adobe Reader 7 or also function SHGetFolderPathA required by ACE.DLL (Adobe Color Engine) has to be added to shell32.dll?

Or even this would not help to run AR7?

To run Excel 2003 Viewer and Word 2003 viewr it would be necessary to add the following function:

missing functions in kernel32.dll

VerifyVersionInfoW (required by MSO.DLL)

VerSetConditionMask (required by MSO.DLL)

SetFilePointerEx (required by OSE.DLL)

GetFileSizeEx (required by OSE.DLL)

CreateHardLinkW (required by OSE.DLL)

missing function in user32.dll

GetLastInputInfo

AllowSetForegroundWindow

SetLayeredWindowAttributes

SHGetFolderLocation

missing functions in advapi32.dll

LsaClose

LsaStorePrivateData

LsaRetrievePrivateData

LsaNtStatusToWinError

LsaOpenPolicy

ConvertSidToStringSidW

DecryptFileW

EncryptFileW

ConvertStringSecurityDescriptorToSecurityDescriptorW

ConvertSidToStringSidA

CheckTokenMembership

Petr

Share this post


Link to post
Share on other sites

Kernel32.dll

VerifyVersionInfoW (required by MSO.DLL) possible - but then what would 98SE identify itself as?

VerSetConditionMask (required by MSO.DLL) possible - see above

SetFilePointerEx (required by OSE.DLL) possible

GetFileSizeEx (required by OSE.DLL) possible

CreateHardLinkW (required by OSE.DLL) NTFS only, no chance

User32.dll

GetLastInputInfo probably unlikely

AllowSetForegroundWindow no functionality to be implemented

SetLayeredWindowAttributes too much work required to implement transparent windows

Shell32.dll

SHGetFolderLocation available in Windows ME shell32.dll (5.0 or later version)

AdvApi32.dll - All the functions below will require extensive work and thus won't be implemented - would a replacement ADVAPI32.DLL from a newer Windows version work?

LsaClose

LsaStorePrivateData

LsaRetrievePrivateData

LsaNtStatusToWinError

LsaOpenPolicy

ConvertSidToStringSidW

DecryptFileW

EncryptFileW

ConvertStringSecurityDescriptorToSecurityDescriptorW

ConvertSidToStringSidA

CheckTokenMembership

What about one for WinME also, LLX ?
This patch will also work on WinME if you disable the SFP, otherwise the original kernel will be restored. Edited by LLXX

Share this post


Link to post
Share on other sites

Well, LLXX, i'm not sure what it is so easy to add functions.

In the patch you've submitted, no new functions were added into export table - they were in 98 kernel, but unimplemented.

I know, adding functions to entry table is much harder. Are you sure that it is possible?

Share this post


Link to post
Share on other sites

Being new here I would like to thank al those skillful people overhere who keep updating and improving my old Win98se!

Sadly I must say that with this modified kernel I ran into a few problems. First I noticed that a dotnet 2.0 application (please dont ask, some sort of "hiding" thing) wasn't running anymore.

More important for me, I couldn't install a DVD-ram driver because my OS wasn't recognized, " Your OS is not suitable to install this software" ?

Not true offcourse. Is the date of my kernel32.dll, 27-02-06, causing this? Other programs install ok. I installed a new ZoneAlarm without a glitch.

Reverting back to original kernel32.dll from Win98 CD solved both these problems.

Hope that this info wil be of use.

off topic: A DVD-ram works fine with Win98, just like a very fast 4.6 gig floppydisk. See how capable this old OS still is!

Share this post


Link to post
Share on other sites

I think that's because this patch modifies GetVersionInfoEx build number hi word to detect itself;

propertly written applications should never examine buld number hi word.

Better not to rely on GetVersionEx, i hope it'll be solved in next patch version (?).

Share this post


Link to post
Share on other sites
Kernel32.dll

VerifyVersionInfoW (required by MSO.DLL) possible - but then what would 98SE identify itself as?

That's it! Now we are changing the kernel is it still w98?

Should it be recognized as NT-based (XP?!) ?

Should we install versions "for w98" or for "XP"?

Should the patch cheat installers by saying it's "XP" instead of 98?

How will react the "XP/2000-only" software community? Aren't they gonna be puzzled?

But awesome job anyway! Gonna test it soon! Thanks!

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.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...