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. 

MERCURY127

Want try run HDA on 9x, need any possible help...

Recommended Posts

MERCURY127    9
15 minutes ago, Nomen said:

IHV kit issue was still kicking around in 2007:

http://www.freelists.org/post/wdmaudiodev/UAA-Driver-Information,1
 

yes, this link give some useful info:

https://msdn.microsoft.com/windows/hardware/drivers/audio/high-definition-audio-ddi 

https://msdn.microsoft.com/windows/hardware/drivers/audio/hd-audio-bus-driver

but i cant find here any source code, only recommendation to use sys provided by MS.

in short, here is hints for vendors, how write driver with using ms uaa api.

Share this post


Link to post
Share on other sites
MERCURY127    9
Quote

For each logical device, class driver builds a  Windows Kernel Streaming filter to expose its audio  functionality to system

this feature (KS) is exist in 9x? i remember file ks.inf...

Share this post


Link to post
Share on other sites
LoneCrusader    95
On Sunday, November 20, 2016 at 2:33 AM, MERCURY127 said:

also i see many unicode calls to ntoskrnl, such so RtlGetVersion. are this all work on 9x?

Those functions are missing from Windows 9x but are included in WDMEX. More below.

16 hours ago, MERCURY127 said:

this feature (KS) is exist in 9x? i remember file ks.inf...

Yes, it's there. The ME USB1 drivers depend on KS.SYS but work under 98 so the 98 version is sufficient for them.
The ME version of KS.SYS may or may not be useful for HD Audio if we get that far.

Here's what we know so far:

HDAUDBUS.SYS is missing these functions (a long list :() under Windows 98SE without any WDMSTUB/WDMEX loaded:
MmAllocatePagesForMdl
MmFreePagesFromMdl
MmAllocateContiguousMemorySpecifyCache
MmFreeContiguousMemorySpecifyCache
MmMapLockedPagesSpecifyCache
ExFreePoolWithTag
PsGetVersion
MmGetSystemRoutineAddress
KdDebuggerEnabled
IoFreeWorkItem
IoQueueWorkItem
IoAllocateWorkItem
ZwSetSecurityObject
ObOpenObjectByPointer
IoDeviceObjectType
RtlGetDaclSecurityDescriptor
RtlGetSaclSecurityDescriptor
RtlGetGroupSecurityDescriptor
RtlGetOwnerSecurityDescriptor
RtlLengthSecurityDescriptor
SeCaptureSecurityDescriptor
SeExports
RtlAddAccessAllowedAce
RtlLengthSid
RtlAbsoluteToSelfRelativeSD
RtlSetDaclSecurityDescriptor
RtlCreateSecurityDescriptor

rloew's WDMEX covers these functions but we have no way to know if HDAUDBUS.SYS is expecting a different return value for any of these.

I experimented further and found that a "HKR,,DevLoader,,*NTKERN" line must be present in the INF or the driver will do absolutely nothing. It will "load" without errors in the Device Manager this way even without WDMEX loaded, so it can't be doing anything and it's no wonder there is no enumeration.
"Enumeration" is NOT the problem based on this; so we need to see what is the cause of the BSOD I mentioned before we can know anything else.

I put the required line back in my INF and now I get this BSOD when Windows 98SE boots and attempts to load the driver:
Fatal Exception 0E at 0028:FF097160 in VXD hdaudbus(01) + 000050C0
This can be dismissed but then the system hangs here before the desktop loads and must be reset.

Share this post


Link to post
Share on other sites
MERCURY127    9

yes... it bad news. here is list of functions, exported by wdmstub:

Spoiler

WmiCompleteRequest
WmiSystemControl

KeLeaveCriticalRegion
KeEnterCriticalRegion
IoInitializeRemoveLockEx
IoReleaseRemoveLockAndWaitEx
IoReleaseRemoveLockEx
IoAcquireRemoveLockEx

MmMapLockedPagesSpecifyCache
IoSetCompletionRoutineEx
SeSinglePrivilegeCheck
ZwUnloadDriver
ZwLoadDriver
ExFreePoolWithTag
ZwQueryDefaultLocale
ZwSetInformationFile
ZwQueryInformationFile
MmGetSystemRoutineAddress
ExIsProcessorFeaturePresent
HalTranslateBusAddress
IoRaiseInformationalHardError
IoReuseIrp
KdDebuggerEnabled
KeNumberProcessors
KeSetTargetProcessorDpc
RtlInt64ToUnicodeString
RtlUlonglongByteSwap
RtlUlongByteSwap
RtlUshortByteSwap
PsGetVersion
IoQueueWorkItem
IoFreeWorkItem
IoAllocateWorkItem
IoCreateSynchronizationEvent
IoCreateNotificationEvent
ExLocalTimeToSystemTime
ExSystemTimeToLocalTime
IoReportTargetDeviceChangeAsynchronous
PoUnregisterSystemState
PoSetSystemState
PoRegisterSystemState

in our issue wdmstub implement those 

MmMapLockedPagesSpecifyCache
ExFreePoolWithTag
MmGetSystemRoutineAddress
KdDebuggerEnabled
IoQueueWorkItem
IoAllocateWorkItem

rest 21 is unimplemented. 

i can debug with WinIce (SoftIce Win 3x/9x Kernel mode debugger) - i do DMRP (Drive model reading patch) for ESDI 7 years to back. 

WDMEX as seen is nice, but i have no $21 (uh, one dollar per function?) now. and i absolutelly have no interest for buying something, that after requires my additional work "as a slave in the galley"... 

1 hour ago, LoneCrusader said:

I experimented further and found that a "HKR,,DevLoader,,*NTKERN" line must be present in the INF or the driver will do absolutely nothing.

yes, i also so think... 

what is u try hdaudbus.sys from 835211? i see some diffs in bootlog when replace file from 888111 to 835221.

Share this post


Link to post
Share on other sites
rloew    90
19 hours ago, MERCURY127 said:

"as a slave in the galley"

Seriously.

What I sell is a tool.
If you buy a wrench, you still need to do "work" to use it.
Of course you are welcome to try to loosen nuts with your fingers or drop forge your own wrench.

Incidentally WDMEX has over 100 Functions and I keep adding more as the need arises.

Share this post


Link to post
Share on other sites
LoneCrusader    95
23 hours ago, MERCURY127 said:

i can debug with WinIce (SoftIce Win 3x/9x Kernel mode debugger) - i do DMRP (Drive model reading patch) for ESDI 7 years to back. 

WDMEX as seen is nice, but i have no $21 (uh, one dollar per function?) now. and i absolutelly have no interest for buying something, that after requires my additional work "as a slave in the galley"...

I'm sorry you feel that way. It's too bad, since you do have some programming/debugging knowledge you might have been able to help considerably in sorting this out. I have no direct knowledge of such things or patching files; I can only do research, very basic hexediting, and test what is given to me.
I feel like it's a worthy investment but not everyone will agree. These days, nowhere else will you find such an experiment as WDMEX. Who else is left with enough knowledge to even make the attempt? Petr, Tihiy, Xeno86, PassingBy, LLXX, and others I'm sure I'm forgetting to mention have all moved on. :(

23 hours ago, MERCURY127 said:

what is u try hdaudbus.sys from 835211? i see some diffs in bootlog when replace file from 888111 to 835221.

Fatal Exception 0E at 0028:C026BEE6 in VXD NTKERN(01) + 0000053A

Interesting that the BSOD error moves from the HDAUDBUS driver back into NTKERN with the older version.

Share this post


Link to post
Share on other sites
MERCURY127    9
7 hours ago, rloew said:

Seriously.

i know.

i know, that this process can be year long and give no good results.

i understand, that ur tool (extender) is very cool and useful.

but what i get, if buy ur extender, and after half year or year we get nothing? :huh:

for sample: i have Tenda usb wifi, based on ralink rt5370 (rt2870? so many chips...), his driver req one unimplemented Ndis*.

your extender give me some warranties? no, sure, driver can left unusable.

or other sample: Etron USB3. i get xp driver, check this on xp - all good. i slightly modify driver for 9x, chek imports - all need implemented by wdmstub. but driver is not work - error 10, installed only xhci, no hub in subdevices, no enumeration. and what i need do?

i even have no BSOD - me did not catch hold here, for to begin debugging... and this without WDMEX.

let us then we, for begin, will try to run this usb3, which does not need to buy anything.

Share this post


Link to post
Share on other sites
LoneCrusader    95
4 hours ago, MERCURY127 said:

or other sample: Etron USB3. i get xp driver, check this on xp - all good. i slightly modify driver for 9x, chek imports - all need implemented by wdmstub. but driver is not work - error 10, installed only xhci, no hub in subdevices, no enumeration. and what i need do?

i even have no BSOD - me did not catch hold here, for to begin debugging... and this without WDMEX.

let us then we, for begin, will try to run this usb3, which does not need to buy anything.

The Etron USB3 drivers don't even work under Windows 2000, so I wouldn't have much hope they will work on 9x. WDM under XP sometimes behaves differently even for the same functions. I don't think any XP files have been found to work under 9x other than possibly USBCCGP.SYS and even it has not been extensively tested because it requires a specific set of devices that use it and those same devices may work without it, depending instead on USBHUB/USBHUB20.

Share this post


Link to post
Share on other sites
rloew    90

WDMEX is still in development, so there are no guarantees, but updates are free.

These specific Drivers do not currently work even with WDMEX or I would already have them on my Website.

WDMEX can be used along with a debugger to help find a solution.
Feedback is always welcome and customizations to facilitate debugging will be considered.

  • Upvote 1

Share this post


Link to post
Share on other sites
MERCURY127    9

uhhh... with this 2k appear many problems with install - i want install it on that fatr32 part, where 98, as i already do on P3 machine. but on Core machine appear strange problems... i kiiled half day and at end install 2k to ssd partition instead my XP. it was so slow, that i shocked... 2k want not turn on DMA mode on SSD, i do it manually...

and afetr all i see... i see, that here dont work even ordinal USB2, which do work fine in 98 via NUSB 3.5... :wacko: here no even mouse!

i anyway try install drivers for Etron, Intel HDG 4000, and HDA... nothng of this work... :angry: 

but have one GOOD news :D my hdabus98 inf work on 2k :D it install bus and do enumeration... after this appear two new audio subdevices... i try install on one my HDA98.inf (converted inf from realtek's driver), it is installed succesfully but say that cant run some file...

after this stupid timekillng i restore boot my 7 and 98 and go here :P later i will try install original drivers from realtek.

sorry for poor speak...

Share this post


Link to post
Share on other sites
MrMateczko    20
On 23.11.2016 at 4:27 PM, MERCURY127 said:

but have one GOOD news :D my hdabus98 inf work on 2k :D it install bus and do enumeration... after this appear two new audio subdevices... i try install on one my HDA98.inf (converted inf from realtek's driver), it is installed succesfully but say that cant run some file...

That's interesting...now we need to know, what files are parsing the INF file, and what the differences are between the 2K and 98SE files.
Also, why not do testing under ME? It has more in common with 2K than 98SE.

Share this post


Link to post
Share on other sites
rloew    90

When I ran my experiments, I revised the INF Files as needed to make them 9x compatible, so that was not an issue.

ME has a few more Functions than 98SE but otherwise is built more like 9x than 2K.
My WDMEX completely bridges the gap between 98SE and ME but still hasn't solved the problem.

  • Upvote 1

Share this post


Link to post
Share on other sites
MERCURY127    9

i run HDA on 2K. dxdiag get clear, nice sound, all good. what i do:

install only bus (for sample hdabus98), but not full 888111 - get two new subdevices. here only one is true audio codec, second is HDMI for intel HDG, and really implemented in Intel Display driver (now not work). 

try install Realtek driver via my hda98.inf - insttallation done, but after say that cant run driver.

try install Realtek driver from original folder - insttallation done, say nothing, but driver cant work and and ask reinstall after every reboot. 

manually copying portclass & sysaudio syses from 888111 folder to system32/drivers (under 7, sure) - realtek work :D 

also i try manually replace usb*.sys to XP's files - no changes, nothing good... 

[strange, i remember, that make screenshots in 2k with fscapture, but now cant find, where its be saved...] found.

2016-11-25_141536.png

2016-11-25_141754.png

Edited by MERCURY127
added screens

Share this post


Link to post
Share on other sites
MERCURY127    9

USB2 now work... mouse ok, even wifi appear in DM. wothout reinstalling system.

what i do? nothing, just delete all pnf and oem*.inf files from windir\inf, remove all not workable from DM and do reboot. 

but files usb*.sys now grabbed FROM XP... and it work. but USB3 and HDG - no.

2016-11-26_171744.png

Edited by MERCURY127
fixed image

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.

×