[wdmaudiodev] Re: IPinName problem

  • From: Matthew van Eerde <Matthew.van.Eerde@xxxxxxxxxxxxx>
  • To: "wdmaudiodev@xxxxxxxxxxxxx" <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Wed, 2 Feb 2011 17:18:40 +0000

First let me answer a more general question: "how can a kernel streaming driver 
let Windows know that something has changed?"

The answer to this more general question is, "raise a KS event."

http://msdn.microsoft.com/en-us/library/ff536195(v=VS.85).aspx

For example, if your list of supported formats changes, you would raise a 
KSEVENT_PINCAPS_FORMATCHANGE event.

To answer your more specific question: Windows will (in most cases) use the 
KSPROPERTY_PIN_NAME property of a streaming pin as the name of the playback or 
capture device, when creating the audio endpoint.  However, once the endpoint 
is created, the name is fixed, and only the user can change it (via the Sound 
control panel.)  In particular there is no KSEVENT_..._NAMECHANGE event.

As you have observed, the KSPROPERTY_PIN_NAME is still used in the Levels tab.

You can tear the endpoint down by unregistering the KS interface, and then 
reregistering it will cause a new endpoint to be created (with the new name) 
but this will wipe out any settings changes the user has made to the endpoint.

________________________________
From: wdmaudiodev-bounce@xxxxxxxxxxxxx [wdmaudiodev-bounce@xxxxxxxxxxxxx] on 
behalf of Jeff Pages [jeff@xxxxxxxxxxxxxxxx]
Sent: Monday, January 24, 2011 3:29 PM
To: wdmaudiodev@xxxxxxxxxxxxx
Subject: [wdmaudiodev] IPinName problem

I’m trying to use the IPinName interface for dynamic endpoint names in a 
Windows 7 audio capture device as described in the
“Windows 7 Changes Related to Audio Drivers” paper, but without much success. 
In the debugger I can see Windows calling IPinName::GetPinName and it initially 
uses the name I return to set the endpoint name, but if I subsequently change 
the name I return, the endpoint still shows the original name, even after a 
reboot. The only place the new name shows up is in the Levels panel.
Jeff

Other related posts: