LLXX
Feb 26 2006, 06:07 PM
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.
Chozo4
Feb 26 2006, 06:49 PM
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.
Tihiy
Feb 26 2006, 11:59 PM
Excellent.
PROBLEMCHYLD
Feb 27 2006, 01:56 AM
installed it
Don't kno wut is does
but my computer still workin
LLXX
Feb 27 2006, 04:13 AM
QUOTE (PROBLEMCHYLD @ Feb 27 2006, 01:56 AM)

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!
StateS
Feb 27 2006, 04:25 AM
zis ist vonderbra just vonderbra

you guys are really doing great with all of these modifications and stuff. Keep it up!!!

Three thumbs up for you.
LLXX
Feb 27 2006, 08:51 PM
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.
Petr
Feb 28 2006, 12:52 AM
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
eidenk
Feb 28 2006, 09:29 AM
What about one for WinME also, LLX ?
LLXX
Feb 28 2006, 10:03 PM
Kernel32.dllVerifyVersionInfoW (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)
possibleGetFileSizeEx (required by OSE.DLL)
possibleCreateHardLinkW (required by OSE.DLL)
NTFS only, no chanceUser32.dllGetLastInputInfo
probably unlikelyAllowSetForegroundWindow
no functionality to be implementedSetLayeredWindowAttributes
too much work required to implement transparent windowsShell32.dllSHGetFolderLocation
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
QUOTE ('eidenk)
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.
Tihiy
Mar 1 2006, 01:07 AM
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?
noguru
Mar 3 2006, 02:32 PM
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!
Tihiy
Mar 3 2006, 03:23 PM
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 (?).
PROBLEMCHYLD
Mar 20 2006, 10:02 PM
Can we x-pec an update soon?
Fredledingue
Mar 23 2006, 02:12 AM
QUOTE ("XXLL")
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!
MDGx
Mar 23 2006, 12:08 PM
I have tested kernel32.dll with NTx enhancements.
Got an error when trying to install .Net Framework Redistributable (NFR), any version:
http://www.mdgx.com/add.htm#NFRI had to restore original kernel32.dll file in order to install NFR. ;(
Hope this helps.
LLXX
Mar 24 2006, 10:02 PM
I probably won't be continuing development on this. I'm too busy with other things.
It's open-source and public domain, so you can easily fix it yourself
PROBLEMCHYLD
Mar 25 2006, 08:15 PM
Another gr8 project gone 2 waste.
Will somebody please continue 2 work on this project if possible?
This could be a big step 4 Win98 users
Xeno86
Mar 26 2006, 02:35 PM
WIN98UPDT0002Hello to everyone!
I have been playing with this expansion pack for Windows 98 for the last week.
I have made it possible to add new exports into existing export table and also fixed other function which added modified export table at the end of the file.
Here are the results:
* add GlobalMemoryStatusEx() EXPERIMENTAL!
* removed GetVersionEx modification
- changed the way of checking if patch was previously applied - now checks if UPDATE section existsOfcourse it is still open-source
Now the bad things:
My implementation of GlobalMemoryStatusEx() seems to be quite buggy
It works nice with NFS:MW and the provided testapp.exe but it does not with Q4 and Doom3 and also causes trouble with GCC.
For this reason there are two exe's inside - one which adds GlobalMemoryStatusEx() and one without it

Does anybody here know asm and is able to fix it?
Please test it with .Net apps which caused problems with previous version.
Also tell me whether "Method 1" (recommended) of adding new functions to export table works for you.
Cheers,
Xeno86
Click to view attachment
Tihiy
Mar 26 2006, 03:01 PM
Very nice! I'm impressed, but I can't test now: i'm falling asleep.
I'll explore into this tomorrow... Also, Xeno86, make sure you're targeting kernel32.dll 4.10.2225: it has significally less space between sections so i'm not sure in Method 1.
Xeno86
Mar 27 2006, 06:03 AM
I'm using kernel version 4.10.2225 myself (SP 2.02) and I think that it shouldn't be a problem - the kernel32.dll I'm using (PL) has 1529 bytes which can be used for new exports (one export needs length of name + 1 [null] + 10 [table enteries]) and if there still isn't enough space I may consider putting export names into other section so one entry will only use 10 bytes then.
But as for now I need some people to test it with kernel versions and/or language versions so that is works for everyone

btw. to remove the patch just type in:
win98updt0002 --remove
LLXX
Mar 28 2006, 01:56 AM

Good to see someone else taking over the development.
Tested with 4.10.2222A kernel, haven't noticed any problems so far.
noguru
Mar 28 2006, 06:17 AM
Thanks for doing this Xeno86,
Overhere OK too with 4.10.2222A. My problems with version 0001 (.net, GetVersionEx) are fixed!
I hope you keep improving wat LLXX??? started. I think it will make many happy if they can install Doom3 on Win98 without using a hexeditor. And that is just one example.
Xeno86
Mar 29 2006, 03:10 PM
GlobalMemoryStatusEx works ok with Q4 and D3.
There will be an update soon so stay tuned
noguru
Mar 30 2006, 08:21 AM
I found a problem with the last version in Sisoft Sandra Standard version ANSI [win32 x86] 2004.10.9.133. I know this is obsolete software but perhaps the problem is also there in other software.
The program chrashes when I want to open the drive-info module.
it says " This application has requested the Runtime to terminate in a unusual way ".
It also chrashes when opening the summary module and mainboard info:
CODE
SANDRA heeft een fout met betrekking tot een ongeldige pagina veroorzaakt in
module <onbekend> op0000:0000e3d2.
Registers:
EAX=00000001 CS=017f EIP=0000e3d2 EFLGS=00210206
EBX=000f0892 SS=0187 ESP=0082b828 EBP=0083fa64
ECX=0082b7d4 DS=0187 ESI=0082ba00 FS=42ef
EDX=000124b8 ES=0187 EDI=00000000 GS=0000
Bytes in CS:EIP:
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Stackdump:
0048d7f9 0082ba00 00000001 01b61820 00000000 00000000 00000000 000000ff 01b602a0 00000000 00000000 00000000 00000000 00000000 00000000 00000000
I hope this info wil be of help with improving. I stay tuned!
LLXX
Mar 30 2006, 09:58 PM
QUOTE (noguru @ Mar 30 2006, 08:21 AM)

I found a problem with the last version in Sisoft Sandra Standard version ANSI [win32 x86] 2004.10.9.133. I know this is obsolete software but perhaps the problem is also there in other software.
The program chrashes when I want to open the drive-info module.
it says " This application has requested the Runtime to terminate in a unusual way ".
It also chrashes when opening the summary module and mainboard info:
CODE
SANDRA heeft een fout met betrekking tot een ongeldige pagina veroorzaakt in
module <onbekend> op0000:0000e3d2.
Registers:
EAX=00000001 CS=017f EIP=0000e3d2 EFLGS=00210206
EBX=000f0892 SS=0187 ESP=0082b828 EBP=0083fa64
ECX=0082b7d4 DS=0187 ESI=0082ba00 FS=42ef
EDX=000124b8 ES=0187 EDI=00000000 GS=0000
Bytes in CS:EIP:
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Stackdump:
0048d7f9 0082ba00 00000001 01b61820 00000000 00000000 00000000 000000ff 01b602a0 00000000 00000000 00000000 00000000 00000000 00000000 00000000
I hope this info wil be of help with improving. I stay tuned!
Are you sure this was caused by the patch? This line:
CODE
Bytes in CS:EIP:
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
is especially strange... trying to execute a null buffer?

The pagefault itself is not in the kernel though.
noguru
Mar 31 2006, 12:32 AM
To be honest I don't have any clue what is wrong here.
The only thing I am sure about is that Sandra is running fine on the original 4.10.2222 kernel32.dll. I just run the program, not trying to run nul buffers or anything???
It's only the modules I mentioned that cause problems, rest of Sandra functions normal.
Xeno86
Apr 2 2006, 03:54 PM
TbbW
Apr 13 2006, 07:23 PM
argh switched to the old forum when i posted to many tabs on firefox. someone suld lock this coz i will prolly not be the last one.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please
click here.