Jump to content

Welcome to MSFN Forum
Register now to gain access to all of our features. Once registered and logged in, you will be able to create topics, post replies to existing threads, give reputation to your fellow members, get your own private messenger, post status updates, manage your profile and so much more. This message will be removed once you have signed in.
Login to Account Create an Account



Photo

Kext: DIY KernelEx extensions

- - - - -

  • Please log in to reply
288 replies to this topic

#101
jumper

jumper

    2014 All-American Masters HJ'er

  • Member
  • PipPipPip
  • 487 posts
  • Joined 21-January 11
  • OS:98SE
  • Country: Country Flag
Merry Christmas! :w00t:

Version 3 of the Posted Image Iphlpapi wrapper (2.55K) is now available with near XP-level support for GetAdaptersAddresses and partial support for GetPerAdapterInfo. (There is also a stub for GetTcpTable2.)

To use with KernelEx, copy to iphlpapi3.dll in your Windows\KernelEx folder and activate in one of these ways:
  • Spoiler
  • add individual function(s) to Kstub822.ini:
    [Iphlpapi.dll] ;any or all of the following:
    GetAdaptersAddresses=>iphlpapi3:
    GetPerAdapterInfo=>iphlpapi3:
    GetTcpTable2=>iphlpapi3:
To use without (or with) KernelEx:
  • place (a copy of) iphlpapi.dll in the folder with any app that needs it.
  • Disable KnownDLLs redirection for Iphlpapi.dll by deleting this key in the registry:
    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SessionManager\KnownDLLs\IPHLPAPI
Edit: First method not working yet; Last method most tested and working both with and without KernelEx.
Edit2: Needs to be named iphlpapi3.dll in KernelEx folder.
Edit3: Second method not working yet. Non-working methods hidden in Spoiler.

Edited by jumper, 05 January 2013 - 04:54 AM.

Design feedback requested:
IHAtool - IpHlpApi tester; call various functions and report results
--status-> framework is solid; 22 api's fully supported; preview release coming soon
ComDlg32 wrapper - ComDlgEx meets IpHlpApi wrapper
--status-> PrintDlgExW working in latest SumatraPDF 8^)
Future projects: ImportPatcher40 - dialog interface; Kexter - IP40+Ktree+Kexstubs


How to remove advertisement from MSFN

#102
MiKl

MiKl

    Member

  • Member
  • PipPip
  • 114 posts
  • Joined 01-December 11
  • OS:98SE
  • Country: Country Flag

Merry Christmas! :w00t:

Version 3 of the Posted Image Iphlpapi wrapper (2.55K) is now available with near XP-level support for GetAdaptersAddresses and partial support for GetPerAdapterInfo. (There is also a stub for GetTcpTable2.)


Unfortunately SeaMonkey 2.0.14 does not start with iphlpapi running.

#103
jumper

jumper

    2014 All-American Masters HJ'er

  • Member
  • PipPipPip
  • 487 posts
  • Joined 21-January 11
  • OS:98SE
  • Country: Country Flag

Unfortunately SeaMonkey 2.0.14 does not start with iphlpapi running.

What Iphlpapi dependencies does Dependency Walker list for SeaMonkey? GetAdaptersAddresses was written with Firefox in mind--I studied the 1.9.1 source code (nsNotifyAddrListener.cpp) and looked at the latest as well.

And what method did you use? Try using Kstub822.ini to add the functions one-by-one.

Note: Kexstubs definitions will override the local copy method. (In case you already have definitions from previous tests.)
Design feedback requested:
IHAtool - IpHlpApi tester; call various functions and report results
--status-> framework is solid; 22 api's fully supported; preview release coming soon
ComDlg32 wrapper - ComDlgEx meets IpHlpApi wrapper
--status-> PrintDlgExW working in latest SumatraPDF 8^)
Future projects: ImportPatcher40 - dialog interface; Kexter - IP40+Ktree+Kexstubs

#104
MiKl

MiKl

    Member

  • Member
  • PipPip
  • 114 posts
  • Joined 01-December 11
  • OS:98SE
  • Country: Country Flag


Unfortunately SeaMonkey 2.0.14 does not start with iphlpapi running.

What Iphlpapi dependencies does Dependency Walker list for SeaMonkey? GetAdaptersAddresses was written with Firefox in mind--I studied the 1.9.1 source code (nsNotifyAddrListener.cpp) and looked at the latest as well.

And what method did you use? Try using Kstub822.ini to add the functions one-by-one.

Note: Kexstubs definitions will override the local copy method. (In case you already have definitions from previous tests.)


Hi Jumper,

unfortunately I am not that much into all this great stuff so I can only hope that I give you some good infos.
- I don't see Iphlpapi listed at all in DependencyWalker for SeaMonkey 2.0.14 !! I will try a later version asap because I seem to remember that they switched then to the Firefox gecko so it may work. Will report back but I have to set up a test machine again ...
DW lists however many other problems for 2.0.14 - especially in ntdll.dll.
- Did used the core.ini method.

Thx

Edit: Also the latest version 2.14.1 of SeaMonkey seem to not like iphlpapi.

Edited by MiKl, 02 January 2013 - 06:09 AM.


#105
jumper

jumper

    2014 All-American Masters HJ'er

  • Member
  • PipPipPip
  • 487 posts
  • Joined 21-January 11
  • OS:98SE
  • Country: Country Flag
I checked the SeaMonkey 2.6.1 package and didn't find any iphlpapi dependencies or even raw text references. I looked at the SeaMonkey sources and the only reference to iphlpapi is in nsNotifyAddrListener.cpp, the same version as used by FF2..20 and the 1.9.1 core, and the one I have already been using for reference. Apparently that file isn't linked into the 2.x builds of SeaMonkey.

So, any problem should also show up in FF2..20. But I've been running with no problems for the last week using the Core.ini method:
contents=std,iphlpapi,Kstub822,kexbases,kexbasen
You can try using the Kstub822.ini method and only add definitions for GetAdaptersAddresses and GetPerAdapterInfo as needed for other apps:
[Iphlpapi.dll] ;any or all of the following:
GetAdaptersAddresses=>iphlpapi:
GetPerAdapterInfo=>iphlpapi:
Iphlpapi.dll can also be renamed for testing in methods other than the local-app-directory method.

Edited by jumper, 08 January 2013 - 04:40 AM.

Design feedback requested:
IHAtool - IpHlpApi tester; call various functions and report results
--status-> framework is solid; 22 api's fully supported; preview release coming soon
ComDlg32 wrapper - ComDlgEx meets IpHlpApi wrapper
--status-> PrintDlgExW working in latest SumatraPDF 8^)
Future projects: ImportPatcher40 - dialog interface; Kexter - IP40+Ktree+Kexstubs

#106
jds

jds

    -DOS+

  • Member
  • PipPipPipPip
  • 603 posts
  • Joined 03-June 08
  • OS:98SE
  • Country: Country Flag

Merry Christmas! :w00t:

Version 3 of the Posted Image Iphlpapi wrapper (2.55K) is now available with near XP-level support for GetAdaptersAddresses and partial support for GetPerAdapterInfo. (There is also a stub for GetTcpTable2.)

Hi jumper,

Happy New Year!

OK, I've just had a quick play with this. I copied to the System directory and commented out all the IpHlpApi section in "stub822.ini". Unfortunately, after a reboot, my computer was sluggish, with WinGuage showing CPU usage at 100% (normally it's about 33%). When I tried SAPGUI, it started up but then stalled when I tried connecting to the server. When I tried HoverIP, it never produced a GUI. In both cases, I had to terminate these apps via the Ctl-Alt-Del thingie

Joe.

PS. A small request for ktree9 : If it isn't too much trouble, would it be possible to sort the DLL names listed under, eg. 'kexbasen'?

#107
jumper

jumper

    2014 All-American Masters HJ'er

  • Member
  • PipPipPip
  • 487 posts
  • Joined 21-January 11
  • OS:98SE
  • Country: Country Flag
> I copied to the System directory...
My IPHLPAPI.DLL is a wrapper, not a replacement. The System directory is the one place it cannot go!

> ...and commented out all the IpHlpApi section in "stub822.ini".
This isn't necessary unless you use the "content= iphlpapi, Kstub822" method (currently suspect, testing requested!).

> PS. A small request for ktree9 : If it isn't too much trouble, would it be possible to sort the DLL names listed under, eg. 'kexbasen'?
Like in this Nov 4 test build? :angel
Attached File  Ktree9h.7z   2.49KB   11 downloads

Pardon the 10-second hourglass--that's the slow built-in sorting taking place that I've been wanting to correct before release. All the apis in each dll are already sorted, so I just need to do a custom merge-sort in most cases. Three later builds correcting various minor issues also exist, but aren't as usable.
Design feedback requested:
IHAtool - IpHlpApi tester; call various functions and report results
--status-> framework is solid; 22 api's fully supported; preview release coming soon
ComDlg32 wrapper - ComDlgEx meets IpHlpApi wrapper
--status-> PrintDlgExW working in latest SumatraPDF 8^)
Future projects: ImportPatcher40 - dialog interface; Kexter - IP40+Ktree+Kexstubs

#108
MiKl

MiKl

    Member

  • Member
  • PipPip
  • 114 posts
  • Joined 01-December 11
  • OS:98SE
  • Country: Country Flag

I checked the SeaMonkey 2.61 package and didn't find any iphlpapi dependencies or even raw text references. I looked at the SeaMonkey sources and the only reference to iphlpapi is in nsNotifyAddrListener.cpp, the same version as used by FF2..20 and the 1.9.1 core, and the one I have already been using for reference. Apparently that file isn't linked into the 2.x builds of SeaMonkey.

So, any problem should also show up in FF2..20. But I've been running with no problems for the last week using the Core.ini method:

contents=std,iphlpapi,Kstub822,kexbases,kexbasen
You can try using the Kstub822.ini method and only add definitions for GetAdaptersAddresses and GetPerAdapterInfo as needed for other apps:
[Iphlpapi.dll] ;any or all of the following:
GetAdaptersAddresses=>iphlpapi:
GetPerAdapterInfo=>iphlpapi:
Iphlpapi.dll can also be renamed for testing in methods other than the local-app-directory method.


Thanks Jumper. I have tried the kstub822.ini method but I am not sure if it had any effect on my system.
SeaMonkey 2.0.14 does now start and works perfectly but SeaMonkey 2.14.1 still crashes 'blaming' msvcr100.dll.

To avoid misunderstandings - I just c&p the four lines from post #101 into kstub822 (I did put them between credui and kernel32) and re-start, correct ?
When you have the time could you test SeaMonkey 2.14.1 on your system ?

Edited by MiKl, 03 January 2013 - 08:49 AM.


#109
jds

jds

    -DOS+

  • Member
  • PipPipPipPip
  • 603 posts
  • Joined 03-June 08
  • OS:98SE
  • Country: Country Flag

> I copied to the System directory...
My IPHLPAPI.DLL is a wrapper, not a replacement. The System directory is the one place it cannot go!

Doh!!! I knew it was a wrapper and still I made such a mistake - hmmm ... must do better!

Anyway, this time I renamed your DLL as IPHLPAPI.JMP and placed it in the System directory, then added the following registry entry :

REGEDIT4

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SessionManager\KnownDLLs]
"IPHLPAPI"="IPHLPAPI.JMP"
Now HoverIP and SAPGUI work just fine! :)

Pardon the 10-second hourglass--that's the slow built-in sorting taking place that I've been wanting to correct before release.

Hmmm ... I've noticed you mention using Bubble Sort a couple of times previously, AFAIK, it's the world's slowest sorting algorithm. I've had dramatic improvement in another project where I converted a Bubble Sort into a Shell Sort, only slightly more complicated - I highly recommend it (I ported the example from Peter Grogono's book 'Programming in Pascal').

Joe.

#110
jumper

jumper

    2014 All-American Masters HJ'er

  • Member
  • PipPipPip
  • 487 posts
  • Joined 21-January 11
  • OS:98SE
  • Country: Country Flag
> Thanks Jumper.
And Thanks to you, MiKl. :) There have been 26 downloads of v3, but only you and jds have reported your finding. :unsure:

> I have tried the kstub822.ini method but I am not sure if it had any effect on my system.
"No" effect is the best effect when it is not needed!

> SeaMonkey 2.0.14 does now start and works perfectly
Good. This is back to the "no" effect when not needed.

>... but SeaMonkey 2.14.1 still crashes 'blaming' msvcr100.dll.
If this means missing exports, you need to update to the latest msvcr100.dll package.

> To avoid misunderstandings - I just c&p the four lines from post #101 into kstub822 (I did put them between credui and kernel32) and re-start, correct ?
Yes, but that was so "2012". :lol: The "2013" method (see updated post #101) is to rename it iphlpapi3.dll and edit Kstub822.ini to match. The change is immediate--no reboot needed!

>When you have the time could you test SeaMonkey 2.14.1 on your system ?
I can't risk my FF2 setup, but I'll download SM and check it out.
Design feedback requested:
IHAtool - IpHlpApi tester; call various functions and report results
--status-> framework is solid; 22 api's fully supported; preview release coming soon
ComDlg32 wrapper - ComDlgEx meets IpHlpApi wrapper
--status-> PrintDlgExW working in latest SumatraPDF 8^)
Future projects: ImportPatcher40 - dialog interface; Kexter - IP40+Ktree+Kexstubs

#111
jumper

jumper

    2014 All-American Masters HJ'er

  • Member
  • PipPipPip
  • 487 posts
  • Joined 21-January 11
  • OS:98SE
  • Country: Country Flag
>> The System directory is the one place it cannot go!
> ...this time I renamed your DLL as IPHLPAPI.JMP and placed it in the System directory, then added the following registry entry...
Well, yes, this advanced method is the exception, but it's a global solution that affects the OS and all apps! Test versions cannot override it either by local installation (requires clearing the KnownDLLs entry) or by KernelEx/Kstubs. I recommend using the iphlpapi3.dll name for easier upgrading when the time comes.

> Now HoverIP and SAPGUI work just fine! :)
Good, hopefully Opera now does too.

> Hmmm ... I've noticed you mention using Bubble Sort a couple of times previously, AFAIK, it's the world's slowest sorting algorithm.
Actually, it's the fastest in practice (and nearly in theory) when the dataset is very small or presorted (or nearly so). The slowest in practice is a pure quicksort on reverse-sorted (worst-case scenario) data! Standard quicksorts shuffle (or bit-reversed-index) the data first to vastly decrease the likelyhood of a worst case scenario at the cost of slower average performance. The simple methods have low overhead but don't scale well; the more complex the algorithm, the larger the dataset must be before it become faster. Hybrid implementions often bubblesort small datasets and do a brief analysis on larger sets before selecting what will hopefully be the fastest method.

> I've had dramatic improvement in another project where I converted a Bubble Sort into a Shell Sort, only slightly more complicated - I highly recommend it (I ported the example from Peter Grogono's book 'Programming in Pascal').
Ktree processes presorted lists of api names from get_api_table() calls and raw DLL export tables. For the "All API's by name" list, I can do an insertion sort as I process, or load all lists then do a merge sort.
Design feedback requested:
IHAtool - IpHlpApi tester; call various functions and report results
--status-> framework is solid; 22 api's fully supported; preview release coming soon
ComDlg32 wrapper - ComDlgEx meets IpHlpApi wrapper
--status-> PrintDlgExW working in latest SumatraPDF 8^)
Future projects: ImportPatcher40 - dialog interface; Kexter - IP40+Ktree+Kexstubs

#112
schwups

schwups

    schwups

  • Member
  • PipPipPip
  • 417 posts
  • Joined 11-November 09
  • OS:ME
  • Country: Country Flag

Good, hopefully Opera now does too.


Method:

add individual function(s) to Kstub822.ini:
[Iphlpapi.dll] ;any or all of the following:
GetAdaptersAddresses=>iphlpapi3:
GetPerAdapterInfo=>iphlpapi3:
GetTcpTable2=>iphlpapi3:


Opera 12.10 and 12.12 crash on start.

Kstub822.log:

= Iphlpapi.dll:GetAdaptersAddresses=>iphlpapi3: = 

Supplement: Also Opera versions 12.5 build 1546 and higher crash on start.


µTorrent 2.0.4 runs fine.


Edited by schwups, 04 January 2013 - 12:02 PM.


#113
jds

jds

    -DOS+

  • Member
  • PipPipPipPip
  • 603 posts
  • Joined 03-June 08
  • OS:98SE
  • Country: Country Flag

> ...this time I renamed your DLL as IPHLPAPI.JMP and placed it in the System directory, then added the following registry entry...
Well, yes, this advanced method is the exception, but it's a global solution that affects the OS and all apps!

True, however, that's a reflection of my confidence level in your DLL. :angel

> Hmmm ... I've noticed you mention using Bubble Sort a couple of times previously, AFAIK, it's the world's slowest sorting algorithm.
Actually, it's the fastest in practice (and nearly in theory) when the dataset is very small or presorted (or nearly so). The slowest in practice is a pure quicksort on reverse-sorted (worst-case scenario) data! Standard quicksorts shuffle (or bit-reversed-index) the data first to vastly decrease the likelyhood of a worst case scenario at the cost of slower average performance. The simple methods have low overhead but don't scale well; the more complex the algorithm, the larger the dataset must be before it become faster. Hybrid implementions often bubblesort small datasets and do a brief analysis on larger sets before selecting what will hopefully be the fastest method.

I entirely agree about your comparison of simple vs. complex sorting methods. That's why I didn't even mention Quicksort. However, Bubble Sort also doesn't scale well with the size of the data elements, not just their quantity. It doesn't take much for its inefficiency to show. If it's taking 10 seconds to sort, then it's the wrong algorithm. Just my 2c.

Joe.

#114
dencorso

dencorso

    Iuvat plus qui nihil obstat

  • Supervisor
  • 5,951 posts
  • Joined 07-April 07
  • OS:98SE
  • Country: Country Flag

Donator

For the "All API's by name" list, I can do an insertion sort as I process...

That's probably the way to go... Just my 2ยข, of course, too. Happy new year to both of you.

#115
schwups

schwups

    schwups

  • Member
  • PipPipPip
  • 417 posts
  • Joined 11-November 09
  • OS:ME
  • Country: Country Flag
Method:

add to core.ini contents: (with or without Kstub822)
contents=std,iphlpapi3,Kstub822,kexbases,kexbasen

KernelEX didn't work anymore. I reinstalled it.


After several attempts with different order it is sufficient to take iphlpapi3 out again. Usually reinstalling isn't necessary.


Edited by schwups, 06 January 2013 - 05:21 AM.


#116
jumper

jumper

    2014 All-American Masters HJ'er

  • Member
  • PipPipPip
  • 487 posts
  • Joined 21-January 11
  • OS:98SE
  • Country: Country Flag
Thanks to everyone for the testing and feedback. :)
In a slight change of plans, today I'm releasing Iphlpapi4 (Post #1 and Below) and updated Kexstubs.ini definitions (Below).

 
Iphlpapi wrapper

Usage with Kexstubs:
* Put iphlpapi4.dll in your Windows\KernelEx folder and activate the individual functions in Kstub822.ini:
[Iphlpapi.dll]
GetAdaptersAddresses=>iphlpapi4:
GetPerAdapterInfo=>iphlpapi4:
Usage without Kexstubs (or without KernelEx):
* Put a copy renamed to iphlpapi.dll in the folder with any app that needs it.
* Disable KnownDLLs redirection for Iphlpapi.dll by deleting this key in the registry:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SessionManager\KnownDLLs\IPHLPAPI History:
:) Iphlpapi3 implemented GetAdaptersAddresses with information from GetAdapterInfo. Also stubs for GetPerAdapterInfo, GetTcpTable2.
:} Iphlpapi4 implements GetAdaptersAddresses with information from GetIfTable. This adds the Loopback interface to the results as well as real MTU, OperStatus, and link speeds. But lost is DhcpEnabled status (and potentially Gateway and DNS details that I hadn't implemented yet). Stubs for CancelIPChangeNotify, EnableRouter, FlushIpNetTable, GetBestInterfaceEx, GetExtendedTcpTable, GetExtendedUdpTable, GetIpStatisticsEx, GetPerAdapterInfo, GetTcpStatisticsEx, GetTcpTable2, GetUdpStatisticsEx, UnenableRouter.
:( Iphlpapi5 is to be the best of 3+4 and more. But I've been finding lots of errors in MS and third-party documentation and sample code, so I need empirical data to clarify how things should actually work. I will be converting a number of console test apps (based on MSDN samples) into one Win32 app that can be run on any 32-bit Windows platform. Results from dual-boot and VM systems should provide the needed clarity!

 
Updated Kexstubs.ini (Kstub822.ini):
Spoiler

Kstub_KnownDLLs.reg
REGEDIT4

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SessionManager\KnownDLLs]
"CREDUI"="LZ32.DLL"
"DBGHELP"="LZ32.DLL"
"DNSAPI"="LZ32.DLL"
"WINHTTP"="LZ32.DLL"

Edit: removed ActCtx / Active Context and Msvcr* definitions
Edit2: struck Kex from stubs.ini

Edited by jumper, 04 February 2013 - 04:04 PM.

Design feedback requested:
IHAtool - IpHlpApi tester; call various functions and report results
--status-> framework is solid; 22 api's fully supported; preview release coming soon
ComDlg32 wrapper - ComDlgEx meets IpHlpApi wrapper
--status-> PrintDlgExW working in latest SumatraPDF 8^)
Future projects: ImportPatcher40 - dialog interface; Kexter - IP40+Ktree+Kexstubs

#117
jumper

jumper

    2014 All-American Masters HJ'er

  • Member
  • PipPipPip
  • 487 posts
  • Joined 21-January 11
  • OS:98SE
  • Country: Country Flag

SeaMonkey 2.0.14 does now start and works perfectly but SeaMonkey 2.14.1 still crashes 'blaming' msvcr100.dll.
...
When you have the time could you test SeaMonkey 2.14.1 on your system ?

SeaMonkey 2.0.14 is an W2K-compatible version; SeaMonkey 2.14.1 is the latest XP+ version, is not W2K-compatible, and is NOT a minor upgrade to 2.0.14!

I suggest trying 2.6.1. It should work with the new Kexstubs definitions.

After that, try 2.9.1 -- it is the last W2K version. ImportPatcher.37 reports the following for SeaMonkey.exe and plugin-container.exe:
...
[DLL replacements]
RASDLG.dll=

[RASAPI32.dll]
RasGetAutodialAddressW=
RasGetAutodialEnableW=
RasGetAutodialParamW=
RasSetAutodialAddressW=

[RASDLG.dll]
RasDialDlgW=
RasPhonebookDlgW=
...
Thus it requires these additional Kstub definitions for SeaMonkey.exe and plugin-container.exe:
[Lz32.dll] --- all API's in functions that use KnownDLLs to forward to LZ32 ---
RasDialDlgW=
RasPhonebookDlgW=

[RASAPI32.dll]
RasGetAutodialAddressW=
RasGetAutodialEnableW=
RasGetAutodialParamW=
RasSetAutodialAddressW=

[;RASDLG.dll] --- see Lz32 ---
RasDialDlgW=
RasPhonebookDlgW=
(Note how easy that was to cut and paste from one .ini to another!)

and this addition to the registry:
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SessionManager\KnownDLLs]
"RASDLG"="LZ32.DLL"
Now back to 2.14.1 -- its plugin-container.exe requires many more new definitions that will probably be more difficult to implement. Its SeaMonkey.exe does not require the 1.9.1 additions, however, and should work with the new definitions. Try disabling plugin-container.exe (and thus plug-ins) by renaming or deleting it.

Finally, if someone could look up those Ras functions above and recommend proper definitions, that would be great! :yes:
Design feedback requested:
IHAtool - IpHlpApi tester; call various functions and report results
--status-> framework is solid; 22 api's fully supported; preview release coming soon
ComDlg32 wrapper - ComDlgEx meets IpHlpApi wrapper
--status-> PrintDlgExW working in latest SumatraPDF 8^)
Future projects: ImportPatcher40 - dialog interface; Kexter - IP40+Ktree+Kexstubs

#118
jumper

jumper

    2014 All-American Masters HJ'er

  • Member
  • PipPipPip
  • 487 posts
  • Joined 21-January 11
  • OS:98SE
  • Country: Country Flag
Ktree9 has been posted. :hello:

I was over-thinking the sorting thing. The solution was to do all inserting at the end, then make one call to TreeView_SortChildren for each group once the inserting was done. Load time is now less than one second :blushing: !
Design feedback requested:
IHAtool - IpHlpApi tester; call various functions and report results
--status-> framework is solid; 22 api's fully supported; preview release coming soon
ComDlg32 wrapper - ComDlgEx meets IpHlpApi wrapper
--status-> PrintDlgExW working in latest SumatraPDF 8^)
Future projects: ImportPatcher40 - dialog interface; Kexter - IP40+Ktree+Kexstubs

#119
MiKl

MiKl

    Member

  • Member
  • PipPip
  • 114 posts
  • Joined 01-December 11
  • OS:98SE
  • Country: Country Flag
Hi Jumper, with iphlpapi4 running both Sunbird 0.5 and OpenOffice 3.2 crash on start on my system so I had to go back to #3.

#120
schwups

schwups

    schwups

  • Member
  • PipPipPip
  • 417 posts
  • Joined 11-November 09
  • OS:ME
  • Country: Country Flag
My first results for post 116 (Kstub822.ini and iphlpapi4): 

µTorrent 2.0.4: It doesn't start. Message: C:\Windows\System\iphlpapi.dll: IpHlpDll Entry not found (7b340000 0) 

Kstub822.log:

[Kstub822]
= Iphlpapi.dll:GetAdaptersAddresses=>iphlpapi4: =
= Lz32.dll:MiniDumpWriteDump =
= Kernel32.dll:CreateActCtxW=t1e =
= Iphlpapi.dll:GetAdaptersAddresses=>iphlpapi4: =


OpenOffice 3.2.1: The Installation failed. Message: The E/A process was canceled because of a thread end or an application request.
Log => no entry.

Opera 12.5+: Still no success. 

Version 12.5 build 1583 and 12.12 build 1707

Log:
[Kstub822]
= Iphlpapi.dll:GetAdaptersAddresses=>iphlpapi4: =



Thanks for your efforts. I hope.  :)

Edited by schwups, 09 January 2013 - 12:49 PM.


#121
jds

jds

    -DOS+

  • Member
  • PipPipPipPip
  • 603 posts
  • Joined 03-June 08
  • OS:98SE
  • Country: Country Flag

Ktree9 has been posted. :hello:

Nice!!! :yes:

Hi Jumper, with iphlpapi4 running both Sunbird 0.5 and OpenOffice 3.2 crash on start on my system so I had to go back to #3.

FWIW, version 4 works fine with HoverIP and SAP GUI for Java (so too does version 3, of course).

Joe.

Edited by jds, 09 January 2013 - 11:17 PM.


#122
jumper

jumper

    2014 All-American Masters HJ'er

  • Member
  • PipPipPip
  • 487 posts
  • Joined 21-January 11
  • OS:98SE
  • Country: Country Flag
Thanks again to everyone for testing. It seems I've make too many changes all at once and it's not clear where something has gone wrong.

@MiKl: Sunbird 0.5 (zip version) does not require KernelEx (Depends and IP36 both give it a clean bill of health). It runs fine in 98SE for me with Kex disabled or in any mode. It does link to Iphlpapi.dll but has no problems with iphlpapi4 using either the Kexstubs or local copy method. Using the local copy method I can see in a process viewer (TaskInfo2000) that both the original and wrapper are loaded. Questions: Are you using the new definitions? Are you using the Kstub or local-copy method? "Crash" is extremely vague--can you provide some details?

@schwups: "...IpHlpDll Entry not found (7b340000 0)" is my debug message from the DLL startup function as the load is about to fail. 7b340000 is the address returned by LoadLibrary for C:\Windows\System\iphlpapi.dll and 0 is the address returned by GetProcAddress for ??? (silly me for not including the API name in the debug message :wacko: ). It appears from the log that it actually loaded successfully on the first call to GetAdaptersAddresses, then failed on the second call--this could be because it follows a call to CreateActCtxW (that has caused trouble in the past) or something to do with how KernelEx hooks GetProcAddress. Try commenting out Kernel32:CreateActCtxW (and rebooting); if that doesn't help, please try the local-copy method.

@jds: Can you test using the Kexstubs method (clear the KnownDLLs entry and use the new definitions)? It looks like the global- and local-copy methods might be immune to something that is ailing the Kexstubs method.

For anyone experiencing R6034 runtime errors in OpenOffice or other apps, try commenting out the Msvcr90 and/or the Msvcr sections-> "[;Msvcr90.dll]", "[;Msvcrt.dll]". [ reference1, reference2 ]

If the three of you can confirm that apps that worked with iphlpapi3 and older definitions also work with iphlpapi3 and the new definitions, that will isolate iphlpapi4 as the problem. If modifications to the new definitions are needed to get iphlpapi3 to work again, perhaps iphlpapi4 will also work.

Edited by jumper, 10 January 2013 - 06:39 AM.

Design feedback requested:
IHAtool - IpHlpApi tester; call various functions and report results
--status-> framework is solid; 22 api's fully supported; preview release coming soon
ComDlg32 wrapper - ComDlgEx meets IpHlpApi wrapper
--status-> PrintDlgExW working in latest SumatraPDF 8^)
Future projects: ImportPatcher40 - dialog interface; Kexter - IP40+Ktree+Kexstubs

#123
MiKl

MiKl

    Member

  • Member
  • PipPip
  • 114 posts
  • Joined 01-December 11
  • OS:98SE
  • Country: Country Flag
Error message from Sunbird. Text is unfortunately in German.

SUNBIRD verursachte einen Ausnahmefehler 03H in Modul KERNEL32.DLL bei 0187:bff768a1.
Register:
EAX=c0030900 CS=0187 EIP=bff768a1 EFLGS=00000246
EBX=00000000 SS=018f ESP=00c9fbb8 EBP=00c9fbec
ECX=ffffff64 DS=018f ESI=7813221e FS=39df
EDX=00000000 ES=018f EDI=00000000 GS=0000
Bytes bei CS:EIP:
c3 cc cc 55 8b ec 56 57 68 c0 d4 fc bf e8 01 d9
Stapelwerte:
78132236 9c193b66 00000000 78130000 822e65f8
0000000a 00000004 00c9fbbc 00c9f9d0 00c9fdb4
78138ced e4cb8bd2 fffffffe 00c9fdc4 78132348
78130000

After closing the error box another message appears saying that NEGOTIAT.DLL is missing.
Hope that helps.

Will test more later this evening.
Follow up:
When using the new defs Sunbird and OpenOffice crash no matter if iphlpapi 3 or 4 is 'called'. Is this the correct term ?
Follow up #2:
Commenting out the msvcr... sections seem to have no positive effect on my system.

Edited by MiKl, 10 January 2013 - 05:48 PM.


#124
jumper

jumper

    2014 All-American Masters HJ'er

  • Member
  • PipPipPip
  • 487 posts
  • Joined 21-January 11
  • OS:98SE
  • Country: Country Flag
MiKl> SUNBIRD verursachte einen Ausnahmefehler 03H in Modul KERNEL32.DLL bei 0187:bff768a1.
A Google search for "03H KERNEL32.DLL bff768a1" led me to this post by jds, so clearly the Active Context (*ActCtx*) stubs are not working and need to be removed. SAP GUI for Java will surely break for jds when he tests with the "new" definitions because of this regression.

Also, make sure you have the Kex default in Core.ini [ApiConfigurations] set to "default=2" (WIN98). default=5 is incorrect. Your system seems to have mismatched msvcrt DLLs or other DLLs used by Sunbird that are causing the problem, not Sunbird itself. If your default is already at "2", please disable KernelEx extensions completely on Sunbird.

> After closing the error box another message appears saying that NEGOTIAT.DLL is missing.
This has to do with Directory Services. Maybe Sunbird is trying to access Outlook? This doesn't seem to be related to Kex or Kext.

> When using the new defs Sunbird and OpenOffice crash no matter if iphlpapi 3 or 4 is 'called'. Is this the correct term ?
"Called" is okay; "active", "used", "being used" might be better. The Active Context stubs seem to be the problem, not iphlpapi4--this is good.

>Commenting out the msvcr... sections seem to have no positive effect on my system.
Okay, thanks.

It now looks like iphlpapi4 is probably okay; the problem seems to be the ActCtx definition regression. I'll correct post #116
Design feedback requested:
IHAtool - IpHlpApi tester; call various functions and report results
--status-> framework is solid; 22 api's fully supported; preview release coming soon
ComDlg32 wrapper - ComDlgEx meets IpHlpApi wrapper
--status-> PrintDlgExW working in latest SumatraPDF 8^)
Future projects: ImportPatcher40 - dialog interface; Kexter - IP40+Ktree+Kexstubs

#125
jds

jds

    -DOS+

  • Member
  • PipPipPipPip
  • 603 posts
  • Joined 03-June 08
  • OS:98SE
  • Country: Country Flag

@jds: Can you test using the Kexstubs method (clear the KnownDLLs entry and use the new definitions)? It looks like the global- and local-copy methods might be immune to something that is ailing the Kexstubs method.

Hi jumper, here are the results :

1) HoverIP : Seems OK.

2) SAP GUI : crashed with the following :

JAVAW caused an exception 03H in module KERNEL32.DLL at 0187:bff768a1.
Registers:
EAX=c0030900 CS=0187 EIP=bff768a1 EFLGS=00000246
EBX=00000000 SS=018f ESP=1818e604 EBP=1818e638
ECX=ffffff64 DS=018f ESI=7813220d FS=5c27
EDX=00000000 ES=018f EDI=00000000 GS=0000
Bytes at CS:EIP:
c3 cc cc 55 8b ec 56 57 68 c0 d4 fc bf e8 01 d9 
Stack dump:
78132225 bf4d735b 00000000 78130000 81daa5d8 0000000a 00000004 1818e608 1818e41c 1818e800 78138ad1 df4ede3b fffffffe 1818e810 78132337 78130000
3) In addition, Dependency Walker didn't run (no error message) and Open Office 3.2 produced an error R6034 when I double-clicked an XLSX file.

Then I commented out all the evil *ActCtx* functions in 'Kstub822.ini' and rebooted. Then everything worked OK.

Joe.

Edited by jds, 11 January 2013 - 01:43 AM.





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users