[wdmaudiodev] Re: The link between Audio Properties and the Driver Endpoint.

  • From: Wade Dawson <Wade.Dawson@xxxxxxxxxxxxx>
  • To: "wdmaudiodev@xxxxxxxxxxxxx" <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Wed, 11 Sep 2019 15:28:03 +0000

Hi Ed.  I’m sure this is not a sanctioned practice, but...

For testing purposes, I’ve found that if I delete ALL subkeys FOR MY DEVICE(s)  
ONLY under ...MMDevices\Render and ..MMDevices\Capture, then the EP builder (I 
assume) recreates them with the names from MediaCategories.   In my case its a 
USB device so its filters are created / removed upon load / unload.  If yours 
is a sw device I imagine disabling / enabling via device manager or devcon 
should do the trick (unless there are hanging references in which case a reboot 
will be required).

PS.  If you're having problems manipulating the registry keys, try 
https://www.resplendence.com/registrar - a truly lovely bit of software ;(Thanks 
Daniel!)
PPS.  I use this tool to search for a value string that only my devices will 
contain, usb vid/pid, serial, etc in the ...Render or ..Capture SubTree, then 
group select all the found entries and delete them.

Again, Im sure this is non-sanctioned and I would certainly not recommend this 
as a production-ready solution, but my experience has been favorable so far 
using 10/1809 and 10/1903.




Get Outlook for iOS<https://aka.ms/o0ukef>
________________________________
From: wdmaudiodev-bounce@xxxxxxxxxxxxx <wdmaudiodev-bounce@xxxxxxxxxxxxx> on 
behalf of Ed Tottenham <Ed.Tottenham@xxxxxxxxx>
Sent: Wednesday, September 11, 2019 3:37:46 AM
To: wdmaudiodev@xxxxxxxxxxxxx <wdmaudiodev@xxxxxxxxxxxxx>
Subject: [wdmaudiodev] The link between Audio Properties and the Driver 
Endpoint.

Hello,

I'm hoping that someone can help here.

I am trying to find the link between the Endpoint information used in a WDM 
Audio Driver and the Audio Properties for an endpoint.

When the driver is installed, the AddReg section in the .inf file causes the 
EndPoint names top be written to 
HKLM\System\CurrentControlSet\Control\MediaCategories\{EndpointGuid}\Name.

The Audio Control Panel gets all its information using the MMDeviceApi which 
gets all its information from 
HKLM\Software\Microsoft\Windows\CurrentVersion\MMDevices\Audio.

There was a problem in our .inf file which meant that in the update to 1903 the 
EndPoint Names weren't added to the registry. All endpoints were given a 
default name of "Digital Output" or "Digital Input" in the Audio Properties. 
This is now what is retrieved by the MMDeviceAPI and displayed in the Audio 
Control Panel.

Reinstalling the driver with a corrected .inf file writes the names correctly 
to the MediaCategories section of the registry, but the MMDevices is not 
updated.

I'd like to write a simple command line program to correct the names but I can 
see nothing in the information returned by the MMDevicesApi which links to the 
MediaCategories section to be able to retrieve the intended names for the 
endpoints.

Am I on completely the wrong path? Is there a better way of updating the 
endpoint names in the MMDevices section?

Many thanks in advance
Ed Tottenham

Other related posts: