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  
LoneCrusader

Post-9x Hardware Experiment - "SDHost controllers"

Recommended Posts

Lots of background information to this experiment; mostly irrelevant (other than the fact that I solved a long-standing problem with this laptop that I had mentioned here and I had been unable to solve previously; maybe more on this later in an appropriate topic).

To make a long story short In the process of trying to set up Windows 98SE on a laptop I ran into some missing driver issues which in turn resulted in me experimenting to see if I can get a Windows 2000 driver stack for a "SDHost controller" device to load under Windows 98SE.

The Windows 2000 compatible files can be obtained from these sources (3 versions available; probably others somewhere).
https://www.driverguide.com/driver/detail.php?driverid=1697704
https://www.driverguide.com/driver/detail.php?driverid=1720873
https://support.lenovo.com/pa/en/downloads/ds003184
 

After unpacking these files and examining them for missing exports I found that the initial driver SDBUS.SYS is missing 5 WDM functions that are covered in the last WDMSTUB.SYS (from NUSB3.0e IIRC). The SFFDISK.SYS driver is missing another function, "IoSetHardErrorOrVerifyDevice" which is not covered; but that won't matter unless the first driver can be successfully loaded.

I modified the INF files to be Windows 9x compatible (including adding the correct corresponding lines for "NTMPDriver" and loading WDMSTUB.SYS with the SDBUS.SYS driver; note WDMSTUB and it's INF mentions are unnecessary if one has rloew's WDMEX package installed). (Also Note .SYS files also require changes that are part of rloew's WDMEX package; he may elaborate on this if he so chooses.) Attempted to install the driver.

The Add Device wizard crashes out on the "coinstaller" DLL file SDHCINST.DLL, and I get the following error.
"Setup cannot load the installer (sdhcinst.dll) for the SDHost hardware being installed. Contact your hardware vendor for assistance."

sdbuserror.bmp

I removed all references to the DLL file in the INF and the same error still happens, so the Add Device wizard has no other knowledge of the DLL file and thus the .SYS file must be calling it directly. (However this is a new "Class" of devices and it may be going to this file for [ClassInstall] properties; does Windows 98SE support a [ClassInstall32] section as used in the 2K INF?)

Has anyone ever seen an error like this? The 'net seems to know nothing about it (obviously excluding the specific DLL name and "SDHost" text from any search as these aren't going to produce 9x-relevant results).

I examined the DLL file under 98SE with Dependency Walker and no problems were reported. What could be causing Windows 98SE not to be able to load this DLL?

Share this post


Link to post
Share on other sites

Hmm... Hello :)

Send me these sys and dll, or all pack, in private, I try decompile and analyze it... 

Share this post


Link to post
Share on other sites
On 3/25/2019 at 3:32 AM, MERCURY127 said:

Hmm... Hello :)

Send me these sys and dll, or all pack, in private, I try decompile and analyze it... 

Hello again! :)

I've abandoned this experiment for the time being... I have not found any situation where a working SDHost controller will be of any benefit under 9x. The FlashMedia reader in the laptop I'm working on works under XP without the SDHost driver loaded so I'm not certain what purpose it serves. Also, the drivers for mounting "disks" from the SDHost bus link back to HAL.DLL and would require major rewrite/wrapping back to IOS.VXD in order to even use them with the 9x drive architecture. :unsure:

If you want to take a look at this all of the files I tried to use are contained in the linked packages. I did find later that the pictured DLL error was caused by an entry existing for the DLL file in a "Known16DLLs" section of the registry. I did not create this entry and I've not been able to figure out how it came to exist. Deleting this entry removed the error, and I can't make it reappear. However despite being able to "insall" the driver now, the SDHost controller just shows up with a Yellow Bang error in the Device Manager and does nothing.

Share this post


Link to post
Share on other sites

I was also trying to get the SDhost controller to work on my Dell laptops when Wdmcheck showed no missing imports on the sys files.  Dell uses Ricoh chips .  The drivers are in their download R141246.exe.  Files are dated late 2006.   there's an earlier version from mid 2006 or late 2005 but i cant find the exe package.

I wasn't able to make 9x inf files.  Maybe you can use something here since you have an inf file. 

Share this post


Link to post
Share on other sites
4 hours ago, farfigs11 said:

I was also trying to get the SDhost controller to work on my Dell laptops when Wdmcheck showed no missing imports on the sys files.  Dell uses Ricoh chips .  The drivers are in their download R141246.exe.  Files are dated late 2006.   there's an earlier version from mid 2006 or late 2005 but i cant find the exe package.

I wasn't able to make 9x inf files.  Maybe you can use something here since you have an inf file. 

I believe I came across those files but I didn't examine them further at the time because my laptop uses a Texas Instruments controller and the other packages I found provide a "generic" driver. I may revisit the issue... When I get an opportunity I will take a look and try to make a 9x-compatible INF for the Ricoh drivers that you can try.

Share this post


Link to post
Share on other sites

This dll is just placeholders. It doesn't any but return properly codes. 

Try inf for sdhost bus as we doing inf for hda bus.

Share this post


Link to post
Share on other sites
20 hours ago, MERCURY127 said:

This dll is just placeholders. It doesn't any but return properly codes. 

Try inf for sdhost bus as we doing inf for hda bus.

I got past the DLL error; somehow the registry entry I mentioned was keeping it from loading.

My INF is working, loading the SDBUS.SYS driver with WDMSTUB.SYS (or loading SDBUS by itself if rloew's WDMEX is present), but the device still has a Code 2 error in the Device Manager. No WDM functions are missing, so an existing called function must be different under 2K than it is under 9x or there is some other problem. :}

Another issue here is I have no way to really test the SDBUS.SYS driver even if it did load without an error. The FlashMedia card reader on the laptop works under 2K/XP without SDBUS.SYS being loaded.

19 hours ago, jaclaz said:

Thanks for the info! :thumbup

Still doesn't explain how the Known16DLLs entry was created at some point and now isn't created again when I follow the same process, but it's moot anyway. :wacko:

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...