Skip to content

[HDAUDIO] Implement generic HD audio miniport driver - #8683

Open
oleg-dubinskiy wants to merge 1 commit into
reactos:masterfrom
oleg-dubinskiy:hdaudio
Open

[HDAUDIO] Implement generic HD audio miniport driver#8683
oleg-dubinskiy wants to merge 1 commit into
reactos:masterfrom
oleg-dubinskiy:hdaudio

Conversation

@oleg-dubinskiy

@oleg-dubinskiy oleg-dubinskiy commented Feb 21, 2026

Copy link
Copy Markdown
Contributor

Purpose

Implement generic HD audio function (miniport) driver required for HD audio cards support. Originally implemented by @janderwald and with many improvements and fixes from me (including the ones not committed yet, to be done).
Follow-up of my previous #8359 and #8662 PRs.

JIRA issue: CORE-9882

Proposed changes

  • Import original driver from Johannes.
  • Fix build issues.
  • Fix a bug in TransferInitVerbs(), so now it works correctly.

TODO

  • Convert all filter descriptor's items to static arrays instead of a dynamically allocated pool. This is badly required to avoid audio asserts and have the driver properly initialized and working (already done locally, to be rebased and committed). EDIT: done now.
  • Implement Topology handling support (pins, nodes, connections, descriptors etc.) (already done too, to be rebased and committed). EDIT: done now.
  • Implement volume and mute property handlers (only stubbed locally). EDIT: halfplemented now, but not implemented completely yet. EDIT 2: properly implemented now, so the volume and mute control works fine! 😃 EDIT 3: some other remaining halfplemented property handlers like ChannelConfig() and SpeakerGeometry() are not so mandatory, so they can be implemented later as well. 😏
  • Get it working properly with non-Intel sound cards (mostly on real hardware).
  • Fix other possible bugs I'll found. EDIT: I did not find any other bugs for now.
  • And other trivial stuff (disable additional debug prints, update file header etc.). EDIT: done now.

Testbot runs (Filled in by Devs)

  • KVM x86:
  • KVM x64:

@oleg-dubinskiy oleg-dubinskiy self-assigned this Feb 21, 2026
@oleg-dubinskiy oleg-dubinskiy added the enhancement For PRs with an enhancement/new feature. label Feb 21, 2026
@github-actions github-actions Bot added the drivers Kernel mode drivers and frameworks label Feb 21, 2026
@oleg-dubinskiy
oleg-dubinskiy force-pushed the hdaudio branch 2 times, most recently from 9408cc8 to f6ee264 Compare February 27, 2026 11:30
@oleg-dubinskiy
oleg-dubinskiy marked this pull request as ready for review February 27, 2026 12:04
@oleg-dubinskiy
oleg-dubinskiy force-pushed the hdaudio branch 2 times, most recently from 171d417 to b13c8f2 Compare March 15, 2026 14:36
@oleg-dubinskiy oleg-dubinskiy added the NT6+ For PRs that aim at implementing NT6+ functionality. label Jul 16, 2026
Comment thread drivers/wdm/audio/drivers/hdaudio/common.cpp
Comment thread drivers/wdm/audio/drivers/hdaudio/hdaudio.cpp Outdated
@oleg-dubinskiy
oleg-dubinskiy force-pushed the hdaudio branch 3 times, most recently from ddcb6c8 to 8884622 Compare July 25, 2026 19:07
@binarymaster

Copy link
Copy Markdown
Member

@oleg-dubinskiy I hope you will fix the commit messages at some point before the merge:

image

@oleg-dubinskiy

Copy link
Copy Markdown
Contributor Author

@oleg-dubinskiy I hope you will fix the commit messages at some point before the merge:

image

I'm just thinking about squashing everything into a single commit instead, because the commits are not self compilable, not logically ordered and have no logical sequence at all. They are just like a chronological history of my changes during time.
Same comment applies to WaveRT PR too.

@oleg-dubinskiy
oleg-dubinskiy force-pushed the hdaudio branch 3 times, most recently from 77eaf23 to 72faeb6 Compare August 5, 2026 21:17
@oleg-dubinskiy

Copy link
Copy Markdown
Contributor Author

@oleg-dubinskiy I hope you will fix the commit messages at some point before the merge:
image

I'm just thinking about squashing everything into a single commit instead, because the commits are not self compilable, not logically ordered and have no logical sequence at all. They are just like a chronological history of my changes during time. Same comment applies to WaveRT PR too.

Fixed it now, by squashing everything into a single commit, as I've suggested. 🙂

@oleg-dubinskiy

oleg-dubinskiy commented Aug 18, 2026

Copy link
Copy Markdown
Contributor Author

✅ After recent improvements and fixes, the driver now works completely fine in VirtualBox + Intel HD Audio + Windows 7 RTM Checked (streaming, volume and mute control are OK). Should work in SP1 version and in other Windows versions since Vista as well. See video below. 😉

simplescreenrecorder-2026-08-18_13.15.21.webm

Important notes:

  1. Tests in Windows Vista-10 on real hardware with any HD audio controllers are very welcome. 🙏
  2. This driver is NOT depending on KMDF, so replacing wdf01000.sys and wdfldr.sys drivers from ReactOS is NOT required.

@oleg-dubinskiy

oleg-dubinskiy commented Aug 19, 2026

Copy link
Copy Markdown
Contributor Author

✅ After recent improvements and fixes, the driver now works completely fine in VirtualBox + Intel HD Audio + Windows 7 RTM Checked (streaming, volume and mute control are OK). Should work in SP1 version and in other Windows versions since Vista as well. See video below. 😉
simplescreenrecorder-2026-08-18_13.15.21.webm

Important notes:

1. **Tests in Windows Vista-10 on real hardware with any HD audio controllers are very welcome.** 🙏

2. **This driver is NOT depending on KMDF, so replacing wdf01000.sys and wdfldr.sys drivers from ReactOS is NOT required.**

✅ Works same fine in Windows 10 22H2 as well. 😏

simplescreenrecorder-2026-08-19_22.51.37.webm

@oleg-dubinskiy
oleg-dubinskiy force-pushed the hdaudio branch 2 times, most recently from 1f24d46 to caea089 Compare August 24, 2026 08:37
@oleg-dubinskiy
oleg-dubinskiy force-pushed the hdaudio branch 5 times, most recently from 7f7e7ce to 8dedf65 Compare September 6, 2026 14:36
@oleg-dubinskiy
oleg-dubinskiy force-pushed the hdaudio branch 7 times, most recently from fbe9049 to 86d849e Compare September 12, 2026 15:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

drivers Kernel mode drivers and frameworks enhancement For PRs with an enhancement/new feature. NT6+ For PRs that aim at implementing NT6+ functionality.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants