• Announcements

    • xper

      MSFN Sponsorship and AdBlockers!   07/10/2016

      Dear members, MSFN is made available via subscriptions, donations and advertising revenue. The use of ad-blocking software hurts the site. Please disable ad-blocking software or set an exception for MSFN. Alternatively, become a site sponsor and ads will be disabled automatically and by subscribing you get other sponsor benefits.
Drugwash

KernelEx -- On building, debugging and related matters...

152 posts in this topic

Helpctr crashes, when i try to run it, in UNICOWS.DLL

The application overflowed its temporary memory area.

Module Name: UNICOWS.DLL

Description: Microsoft Layer for Unicode on Win9x Systems (MSLU)

Version: 1.1.3790.0

Product: Microsoft ® Windows ® 95, Windows ® 98, and Windows ® Millennium Operating Systems

Manufacturer: Microsoft Corporation

Application Name: Helpctr.exe

Description: Microsoft Help Center

Version: 4.90.0.2525

Product: Microsoft ® PCHealth

Manufacturer: Microsoft Corporation

--------------------

Revolutions Pack Core has altered Windows system files.

Module Name: RP8.DLL

Description: Revolutions Pack Core

Version: 9.7.2

Product: RP

Manufacturer: Tihiy

--------------------

Windows KB891711 component has altered Windows system files.

Module Name: KB891711.EXE

Description: Windows KB891711 component

Version: 4.10.2227

Product: Microsoft® Windows® Operating System

Manufacturer: Microsoft Corporation

--------------------

If the Taskbar is behaving strangely, try exiting Multimedia background task support module.

Module Name: mmtask.tsk

Description: Multimedia background task support module

Version: 4.90.3000

Product: Microsoft Windows

Manufacturer: Microsoft Corporation

0

Share this post


Link to post
Share on other sites

I tested the latest version and here are my results.

1. If you copy a file to the desktop, it DoNOT show up on the desktop, unless you right click the desktop and hit refresh.

2. If you log off and then log on without re-starting, you will NOT get the system tray icons. They DoNOT reappear.

3. NETAPI32.DLL display : link to missing export NetUserGetInfo error.

All other bugs I have reported seems to be fixed. Good work....... :w00t:

0

Share this post


Link to post
Share on other sites

Positive: project files are fixed, batch compiles now at first attempt without any changes whatsoever.

Negative: own builds (under 98SE and XP-SP3) still hang upon reboot, with no log created.

I've nailed this down to kexbases.dll. As soon as I replace mine with yours from latest package, system boots normally, but still no log file.

Further negatives:

- GOM Player's About window still loses mouse control and needs to be closed by keyboard

- my own toy MemPanel calculates mouse cursor position badly in Options - as soon as the skin ribbon is clicked, a much larger value is being sent to the program, causing the skin to dissapear. Upon exit, the settings ini file shows an out of range value (accepted are 1 to 32).

I believe the two are related. Upon uninstalling KernelEx, everything behaves correctly.

Questions:

- why doesn't the GitHub branch create any log? Is there any flag missing in the Debug project?

- why doesn't kexbases work, as long as it compiles without error on two different machines/operating systems?

0

Share this post


Link to post
Share on other sites
:ph34r: Edited by PROBLEMCHYLD
0

Share this post


Link to post
Share on other sites

Edited by Leyok
0

Share this post


Link to post
Share on other sites

@ Drugwash and coolman

Can one of you guys compile the latest repository. Wait, here is the catch. It needs to be compiled without PDH.DLL, MSIMG32.DLL, PSAPI.DLL. For starters, the SP has all of these files inside the SP3.CAB and they are the original Microsoft versions. Even if users don't use SP3.x, they can still copy the files to their system. PDH.DLL in KernelEX does NOT work at all. I tested a program a while back that required the PDH.DLL file. I got an error, this file is not compatible with your operating system, wrong version blah blah something. So I found a working version that gave a different message, The PDH.DLL is linked to missing export blah blah. What I'm saying is that the KernelEx versions of the files, regardless if some are stubs and some are full implementations. They are not equivalent to the originals included in SP. Many users have been reporting system crashes with SP3.19 and kernelEx. We all know that SP is pretty stable but KernelEx is not playing well with it.

0

Share this post


Link to post
Share on other sites

@ Leyok:

To create the log file, open up Core\debug.cpp then uncomment "#define WRITETOLOG" and comment all other defines.
Thank you, that was all I needed to know.
When I have time, I'll find out why GOM Player's About window loses mouse control. You haven't got any problem with KernelEx 4.5.2, right ?
None whatsoever - GOM works fine on my main 98SE machine with 4.5.2 and worked with previous versions too.
For MemPanel, it's odd because it doesn't come from GetCursorPos (the values are correct). I'll see more about it.
In MemPanel, I use two macro functions provided by AutoHotkey: MouseGetPos and ControlGetPos, then calculate relative position.

MouseGetPos, mx, my, winid, ctrl, 2
ControlGetPos, cX, cY,,, Static2, ahk_id %hSet%
skin := 1+(mx-cX)//8

The skin variable above should get a value between 1 and 32 (Static2's width is 256px).

MouseGetPos is set to retrieve coordinates relative to the active window, not the screen - maybe that's where the bug lies (the directive is set to CoordMode, Mouse, Relative). You can look through the AHK sources and see what API it uses for the two functions. I can provide the source code for MemPanel too, if you need it.

1) Can you explain more with the GitHub branch log?
Your reply about uncommenting the #define made it clear already. I had wrongly assumed the WRITETOLOG was enabled by default in GitHub.
2) I don't really know why it hangs on your side, be sure to replace every files with your new ones.
I deploy every new GitHub pull in a new folder, so it wouldn't interfere with old files/settings. Everything is being built from scratch and if I rebuild, I always clean the project first.

I'll build with WRITETOLOG enabled, see where it stumbles. Might take a while, I'm not feeling well these days.

@ PROBLEMCHYLD:

Please provide the names (and links, if possible) to those applications that would not work with PDH.DLL, MSIMG32.DLL and PSAPI.DLL from KernelEx, so I could test them myself.

Currently I can build KernelEx but for some reason, one of its libraries (kexbases.dll) hangs my test system. I can replace it with Leyok's version, for testing purposes though.

EDIT: @ Leyok

I've enabled logging in my build. Apparently, OpenWindowStationA_new() fails in my kexbases.dll, then it gets stuck loading KEXBASEN again (as compared to a working log posted somewhere above):

resolver_init() 
Stub found @ 0xbffd009c
Loading api configurations
Processing api configuration #0: DCFG1
Loading api library: KEXBASES...
(D:\free\KernelEx-master9\apilibs\kexbases\User32\_user32_apilist.c:272) GDI resources: 89%
(D:\free\KernelEx-master9\apilibs\kexbases\User32\_user32_apilist.c:273) System resources: 89%
(D:\free\KernelEx-master9\apilibs\kexbases\User32\_user32_apilist.c:274) USER resources: 94%
(D:\free\KernelEx-master9\apilibs\kexbases\User32\desktop.c:206) InputDesktop is NULL, don't allocate desktop handles yet
(D:\free\KernelEx-master9\apilibs\kexbases\User32\desktop.c:1141) About to switch desktop
(D:\free\KernelEx-master9\apilibs\kexbases\User32\desktop.c:1208) Switching to desktop object 0x82EE322C
(D:\free\KernelEx-master9\apilibs\kexbases\User32\desktop.c:1246) Switching to desktop 0x20 successful
(D:\free\KernelEx-master9\apilibs\kexbases\User32\desktop.c:450) Created ppi 0x82ee35d8 for Process 0x81c073ac because it was NULL
(D:\free\KernelEx-master9\apilibs\kexbases\User32\desktop.c:461) Created pti 0x82ee3604 for Thread 0x81c07588 because it was NULL
(D:\free\KernelEx-master9\apilibs\kexbases\User32\desktop.c:551) Input desktop has changed, redrawing screen... successful
(D:\free\KernelEx-master9\apilibs\kexbases\User32\thuni_stuff.c:49) ThunkLayer initialized: g_UserBase = 0x82471000, hUser16 = 0xBFF8902F, g_hUser32 = 0x1686
loaded @ 0xbfa40000...
(D:\free\KernelEx-master9\apilibs\kexbases\User32\desktop.c:450) Created ppi 0x82df864c for Process 0x81c0da58 because it was NULL
(D:\free\KernelEx-master9\apilibs\kexbases\User32\desktop.c:461) Created pti 0x82df8678 for Thread 0x81c0dc54 because it was NULL
ok
Loading api library: KEXBASEN...
loaded @ 0x7d000000...
ok
Parsing named api overrides
Processing api configuration #1: WIN95
Parsing named api overrides
Processing api configuration #2: WIN98
Parsing named api overrides
Processing api configuration #3: WINME
Parsing named api overrides
Processing api configuration #4: NT40
Parsing named api overrides
Processing api configuration #5: NT2K
Parsing named api overrides
Processing api configuration #6: WINXP
Parsing named api overrides
Processing api configuration #7: WIN2K3
Parsing named api overrides
Processing api configuration #8: VISTA
Parsing named api overrides
Processing api configuration #9: WIN2K8
Parsing named api overrides
Processing api configuration #10: NOHEAP
Parsing named api overrides
No more api configurations
Default api configuration is: DCFG1
API extensions are by default: enabled
resolver_hook()
Initialized successfully
(D:\free\KernelEx-master9\apilibs\kexbases\User32\desktop.c:450) Created ppi 0x82e8ede8 for Process 0x81c10f00 because it was NULL
(D:\free\KernelEx-master9\apilibs\kexbases\User32\desktop.c:461) Created pti 0x82e8eca4 for Thread 0x81c1113c because it was NULL
(D:\free\KernelEx-master9\apilibs\kexbases\User32\desktop.c:450) Created ppi 0x82e8ee14 for Process 0x81c1595c because it was NULL
(D:\free\KernelEx-master9\apilibs\kexbases\User32\desktop.c:461) Created pti 0x82e8ee40 for Thread 0x81c15b28 because it was NULL
Loading non-shared apilib: KEXBASEN req. by: MSVCRT.DLL [PID=fffe5f1f]
Post-Initializing KEXBASEN.DLL [PID=fffe5f1f]
(D:\free\KernelEx-master9\apilibs\kexbases\Kernel32\locale.c:222) (0x0418,0x0063f720,Řńc,-1079706944,0x000004e2,1)
(D:\free\KernelEx-master9\apilibs\kexbases\Kernel32\locale.c:222) (0x0418,0x00000000,(null),0,0x00000000,0)
(D:\free\KernelEx-master9\apilibs\kexbases\Kernel32\locale.c:222) (0x0418,0x0063f720,¸ńc,-1079706944,0x000004e2,1)
(D:\free\KernelEx-master9\apilibs\kexbases\Kernel32\locale.c:222) (0x0418,0x00000000,(null),0,0x00000000,0)
(D:\free\KernelEx-master9\apilibs\kexbases\User32\_user32_apilist.c:272) GDI resources: 89%
(D:\free\KernelEx-master9\apilibs\kexbases\User32\_user32_apilist.c:273) System resources: 89%
(D:\free\KernelEx-master9\apilibs\kexbases\User32\_user32_apilist.c:274) USER resources: 91%
(D:\free\KernelEx-master9\apilibs\kexbases\User32\desktop.c:295) Failed to open window station WinSta0
(D:\free\KernelEx-master9\apilibs\kexbases\User32\_user32_apilist.c:319) Trying to free some desktops
(D:\free\KernelEx-master9\apilibs\kexbases\User32\_user32_apilist.c:291) Dereferencing thread's desktop
(D:\free\KernelEx-master9\apilibs\kexbases\User32\_user32_apilist.c:319) Trying to free some desktops

Please note the code I built is the one before you disabled the Unicode API.

Edited by Drugwash
0

Share this post


Link to post
Share on other sites

@ PROBLEMCHYLD:

Please provide the names (and links, if possible) to those applications that would not work with PDH.DLL, MSIMG32.DLL and PSAPI.DLL from KernelEx, so I could test them myself.

Currently I can build KernelEx but for some reason, one of its libraries (kexbases.dll) hangs my test system. I can replace it with Leyok's version, for testing purposes though.

http://www.zabbix.com/downloads/1.4.4/zabbix_agents_1.4.4.windows.i386.tar.gz

If you have the original versions in the system directory, delete PDH.DLL and PSAPI.DLL. Install KernelEx and try run zabbix_agentd.exe. After you done that, uninstall KernelEx and place PDH.DLL and PSAPI.DLL in system directory from SP3.CAB and you'll see the difference in errors. I haven't really found one for MSIMG32.DLL, but I would assume it has the same issues as the other files.

0

Share this post


Link to post
Share on other sites

That thing wouldn't work with 4.5.2 either.

It requires PdhLookupPerfNameByIndexA and PdhOpenQueryA in PDH.DLL, which are not available in the SP3 version.

With KernelEx 4.5.2, those functions appear available, but it refuses to load PDH.DLL through DLL_PROCESS_ATTACH.

Furthermore, in KEx 4.5.2, I notice PSAPI.DLL can't properly recognize kernelex.dll in its rightful location (C:\Windows\KernelEx) - as shown by Dependency Walker - but it does when kernelex.dll is copied to C:\Windows\System.

0

Share this post


Link to post
Share on other sites

That thing wouldn't work with 4.5.2 either.

It requires PdhLookupPerfNameByIndexA and PdhOpenQueryA in PDH.DLL, which are not available in the SP3 version.

With KernelEx 4.5.2, those functions appear available, but it refuses to load PDH.DLL through DLL_PROCESS_ATTACH.

Furthermore, in KEx 4.5.2, I notice PSAPI.DLL can't properly recognize kernelex.dll in its rightful location (C:\Windows\KernelEx) - as shown by Dependency Walker - but it does when kernelex.dll is copied to C:\Windows\System.

My point exactly. It doesn't work at all. I know the app has missing exports, as I posted above, the thing is KernelEx forces Windows to use its version and it don't work. At least the one in the SP does work and it does load properly, maybe not for that particular app because of missing functions. There was other apps I tested that required PDH.DLL, thats why I added it. This is why I asked you to compile a version without the particular files. The ones in the Windows\System directory works just fine. Just because a dummy file was created and has stubs and implementations, doesn't mean its suitable, especially if they don't work.

So you pretty much just confirm the KEX version doesn't load/work or whatever label you put on it. Also the PdhLookupPerfNameByIndexA and PdhOpenQueryA, I never got this message, I always got a PSAPI.DLL missing export message

Edited by PROBLEMCHYLD
0

Share this post


Link to post
Share on other sites

@ PROBLEMCHYLD:

Please provide the names (and links, if possible) to those applications that would not work with PDH.DLL, MSIMG32.DLL and PSAPI.DLL from KernelEx, so I could test them myself.

Currently I can build KernelEx but for some reason, one of its libraries (kexbases.dll) hangs my test system. I can replace it with Leyok's version, for testing purposes though.

http://www.zabbix.com/downloads/1.4.4/zabbix_agents_1.4.4.windows.i386.tar.gz

If you have the original versions in the system directory, delete PDH.DLL and PSAPI.DLL. Install KernelEx and try run zabbix_agentd.exe. After you done that, uninstall KernelEx and place PDH.DLL and PSAPI.DLL in system directory from SP3.CAB and you'll see the difference in errors. I haven't really found one for MSIMG32.DLL, but I would assume it has the same issues as the other files.

Guys, perhaps you should know that programs requiring pdh.dll need to be put at least in Windows 2000 compatibility mode.

And that zabbix program executes without pdh.dll error message with 4.5.2 in 2K compat mode. (Whether it's actually useable is another story)

0

Share this post


Link to post
Share on other sites

Edited by Leyok
0

Share this post


Link to post
Share on other sites

Thanks loblo yes it does work in compatible mode. You have help solve part of the issue.

Screenshot 1 is with KernelEx installed and Screenshot 2 is without KernelEx installed. If I place the PDH.DLL from SP3.CAB file in the Windows\System directory without KEX, I do NOT get a PDH.DLL error. I get a PSAPI.DLL error. So I'm not sure the errors Drugwash is getting. So yes I can confirm the Windows version PDH.DLL does NOT cause problems and it does work. Like I said, this wasn't the only app, there are others. Screenshot 3 is the error I get when PDH.DLL is installed without KernelEx. This means I can't use certain apps because KEX forces Windows to use it build even though it don't work. I guess as long as we are running the latest browsers, then any other issues that arises doesn't matter. This is why I'm not a KEX power user and probably will never be..I though I could expand the SP with KernelEx but that is clearly not going to happen. I got it. Thanks guys :w00t:

Edited by PROBLEMCHYLD
0

Share this post


Link to post
Share on other sites

I only tested it without KernelEx on the test machine, then opened it in Dependency Walker to see missing functions.

Then I tested it on main machine with KernelEx 4.5.2 installed, but no compatibility mode and it's thrown that PDH.DLL error. No further testing until loblo mentioned compatibility, at which point I ran it on my main machine and no error message popped up - only a brief DOS window that closed eight away and no running process in the background.

While profiling it through Dependency Walker, I could briefly see the word 'error' in the DOS window that pops up. Exit code is 0xFF.

Latest version working in Win9x appears to be 1.1 (1.1.7 sources available), which can be found on the Zabbix site, in the Old releases area. Actually, not even that one works in 98SE, either with default compatibility or Win2k compatibility. If it doesn't work, I don't need it. Period. :(

Edited by Drugwash
0

Share this post


Link to post
Share on other sites

default compatibility or Win2k compatibility. If it doesn't work, I don't need it. Period. :(

Thats because its missing function in PSAPI.DLL. Thats the whole point of the project right? To do the impossible.

I was hoping if we got the missing functions implemented, then just maybe we have a shot at running it.

0

Share this post


Link to post
Share on other sites

Edited by Leyok
0

Share this post


Link to post
Share on other sites

default compatibility or Win2k compatibility. If it doesn't work, I don't need it. Period. :(

Thats because its missing function in PSAPI.DLL. Thats the whole point of the project right? To do the impossible.

I was hoping if we got the missing functions implemented, then just maybe we have a shot at running it.

That thing, on the page I linked to above, in line with version 1.1 says "Windows i386". That's the first available version and it's quite old. Subsequent version says "Windows NT4,, XP, 2000, 2003, Vista" and then further versions say "Windows (all)". Well, obviously those guys never took into account that on this Earth there is an operating systems family (un)officially called Windows9x that a lot of people still use. Not even the first version of that thing was ever compatible with Windows9x. I've built the agent from the 1.1.7 sources yesterday; it got built right off the bat, with no changes whatsoever, under my 98SE+VC6. But it didn't work - neither in default mode, nor Win2k compatibility. The precompiled executables for version 1.1 didn't work either.

At this point, considering where things are going to on the bigger scale, I was thinking whether we wouldn't be better off taking XP, labeling it "Windows 98", changing to Classic Theme and get over with it. Because we sure go that way with all this "upgrading".

I wanna go another way: disect the newer standards, build 9x-compatible support for them and then build my own applications that are 100% 9x-compatible and 100% compatible with newer standards. Oh and of course 0% compatible with NT-based platforms - give'em a taste of their own medicine, why not!?

Of course, this is purely my personal opinion and it means no disrespect to anybody's work, here or elsewhere.

0

Share this post


Link to post
Share on other sites

Hi Leyok,

EDIT : I implemented the native NTDLL C runtime functions, I will do a test release tomorrow.

Great to see your advances with KernelEx. :thumbup

... because the unicows.dll version U98SESP3 uses is 1.1.3790.0 (07/12/2004).

Is there a problem with version 1.1.3790.0? That's the version that's installed by 'unicows.exe' from MS.

Joe.

0

Share this post


Link to post
Share on other sites

Edited by Leyok
0

Share this post


Link to post
Share on other sites

Changelog for this dev version :

- Added native NTDLL C runtime (like _strcmpi)

- Remade most of the unicode functions

- Fixed MemPanel showing the wrong cursor position

However, the GOM Player's about window is still not fixed, I don't actually know where it comes from, you're right, only the keyboard is working and the mouse is like "Frozen" (it can't interact with windows, but still can be moved).

I will see more of it.

@PROBLEMCHYLD, well, then forgive me, I don't really know why it crashes in unicows, since we are running the same version. Anyway, can we make a peace and stop flaming each other ?

I never really had a problem with you. I do forgive you because I don't know how to hold grudges and hate a person. Remember, when you have people like LoneCrusader and loblo who constantly adding fuel to the fire, we are always going to have problems. This forum has there favorites and them 2 are not mines and I know I'm not theirs. I apologize for disrespecting you on another forum and bad mouthing you since MSFN don't allow us to express our frustrations. So will you forgive me? I can work with you. In case you didn't know, I do have a lot of friends behind the scenes. I do respect you as a man, and it took courage to admit when you are wrong. We both was wrong. Lets learn from this and not let others break our unity and have us competing with each other.
0

Share this post


Link to post
Share on other sites

Is the GitHub in sync with latest changes? I see latest commit was two days ago (at least by my side). I'll try to build sometime later, got some domestic chores to attend to right now.

I'm glad you found the problem with MemPanel, good job!:thumbup Out of curiosity: what was it exactly? I may try to perform some extra testing, to make sure everything's alright.

I'm sure GOM Player will come around at some point. Too bad they stopped supporting 98SE, but they apparently still keep ME in the boat so maybe we can trick it into installing on 98SE anyway, with help from KernelEx.

Oh and I love it when it's peace and understanding. Let's try and keep it that way, OK? B)

I'll be back! :D

0

Share this post


Link to post
Share on other sites

I know we are all in different time zones, but Drugwash and Ley0k, I think we can probably get something going. I think we should grab a few testers from each one of our ends and work behind the scenes, since so many users are $h!+ starters. Its hard for any of us to focus when you have people in denial. You guys can get exclusive SP updates for testing. I wish rloew would chime in. He is a great programmer as well. He don't like all this taking sides and fighting and bickering. I don't either, but I'm not backing down and I wouldn't expect anyone else too either. Enough ranting. You guys let me know how you feel and we can go from there. If all goes well, I can extend the SP with extensions. I'm ready when you are. It really helps when users have multiple systems, so no one messes up their main one.

Edited by PROBLEMCHYLD
0

Share this post


Link to post
Share on other sites

Edited by Leyok
0

Share this post


Link to post
Share on other sites
I'm glad you found the problem with MemPanel, good job!:thumbup Out of curiosity: what was it exactly? I may try to perform some extra testing, to make sure everything's alright.

I'm sure GOM Player will come around at some point. Too bad they stopped supporting 98SE, but they apparently still keep ME in the boat so maybe we can trick it into installing on 98SE anyway, with help from KernelEx.

For MemPanel, it was because of GetForegroundWindow_fix, I removed it from window.c, it retrieves the current foreground window from the thread's desktop current foreground window.

But the foreground on the desktop is only changed by a call of SetForegroundWindow_fix, and not from the USER's window manager directly.

GOM Player is like messed up on my side anyway, when I install it, it fails to call DllRegisterServer with "Could not load: GVF.ax, but I can still run it, however there are no languages, every strings are dashes.

If all goes well, I can extend the SP with extensions. I'm ready when you are. It really helps when users have multiple systems, so no one messes up their main one.

Do you mean you can extend the SP with extensions ? KernelEx is a separate package, and actually it has many incompatibilities, so you shouldn't.

And I'm glad we're back to normal talk ;)

Yes, I mean the SP. I mean updated system components addons whatever name you want to give it etc.....I meant this would be in the future once everything is stable. I found the GOM bug. I did this for you Drugwash. The bug is in VKRNLEX.VXD. I deleted this file, rebooted, got an error saying VKRNLEX.VXD was missing, blah blah. But the about GOM tabs worked. Also when you log off and re-log on, the system tray icons are missing. Also get a missing function with NETAPI32.DLL:NetGetDCName. I also got the DllRegisterServer you got Leyok. Edited by PROBLEMCHYLD
0

Share this post


Link to post
Share on other sites

Edited by Leyok
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.