[wdmaudiodev] Portcls dynamic subdevice naming question

  • From: wade dawson <wdawson61@xxxxxxxxx>
  • To: wdmaudiodev@xxxxxxxxxxxxx
  • Date: Fri, 2 Aug 2019 17:13:33 -0400

We have a driver that creates multiple filters for a mutli-channel audio
device. I have created media category entries and assigned the GUIDs to the
PCPIN_DESCRIPTOR.Name fields of bridge pins referenced by the
PCFILTER_DESCRIPTOR for each subdevice.  This is working and the first line
in the Windows->Sounds->Playback|Recording display for each filter
correctly displays this customized name.
The problem has to do with the second line.  It ends up as "N - MyCompany
USB Audio."; where N increments for each unique usb device vid.pid.  I
would like to customize the second line of the display to include the
device name and remove the "N - " bit.

The second line of the display (minus the "n -" part) is as it was
originally populated from the inf DeviceInstall HKR entries and, in this
case, appears to live at:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\MMDevices\Audio\Render\{f3775b64-05e1-4050-96c7-960cee49a362}\Properties\\{b3f8fa53-0004-438e-9003-51a46e139bfc},6.
Manually locating this reg value and changing it for a given device+filter
does indeed change the line displayed by the panel.

Is there an official way to control / influence this value?

It might be of note that the portcls miniport (adapter) driver is loaded
atop a PDO created by a SW enumerated root driver.  I am calling
WdfPdoInitAddDeviceText() in the creation of the PDO that the audio driver
is loaded for but that text is never displayed.  The fake hardwareID
created by the swroot driver includes the vid/pid to create a unique
hardware id for device matching.

Any help is, as always, greatly appreciated.

-wade

Other related posts: