[wdmaudiodev] Re: Portcls dynamic subdevice naming question

  • From: "Gary Daniels" <dmarc-noreply@xxxxxxxxxxxxx> (Redacted sender "Gary.Daniels" for DMARC)
  • To: "wdmaudiodev@xxxxxxxxxxxxx" <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Fri, 2 Aug 2019 21:22:24 +0000

The N- you are seeing is a discriminator which is added automatically by the OS 
when multiple drivers exist on the same bus, in the event they have the same 
name. It is generated automatically by the system at endpoint creation time, so 
it can't be overridden by the driver.

-Gary Daniels
Microsoft Audio Silicon team


Sent from Outlook<http://aka.ms/weboutlook>

________________________________
From: wdmaudiodev-bounce@xxxxxxxxxxxxx <wdmaudiodev-bounce@xxxxxxxxxxxxx> on 
behalf of wade dawson <wdawson61@xxxxxxxxx>
Sent: Friday, August 2, 2019 2:13 PM
To: wdmaudiodev@xxxxxxxxxxxxx <wdmaudiodev@xxxxxxxxxxxxx>
Subject: [wdmaudiodev] Portcls dynamic subdevice naming question

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: