That's correct. My understanding is that, at endpoint creation time, the KSPROPERTY_PIN_NAME is used (among other things, for example the bridge pin's Category property - if the KS node type is one that maps to the Speakers EFormFactor, then the pin name is ignored) to populate the PKEY_Device_DeviceDesc endpoint property key. Once the endpoint has been created, the only way to change that property is (as the user) via the Sound control panel, or (with admin privileges) via IMMDevice::OpenPropertyStore(STGM_[READ]WRITE). The new IPinName method is the miniport driver's way to populate KSPROPERTY_PIN_NAME; it doesn't change the way the audio stack interacts with drivers. hdaudio.sys uses this mechanism in Windows 7 for HDMI outputs that support the Intel HD Audio DCNs. When an HDMI sink is plugged in, the EDID data is parsed, a new subdevice is registered, and the sink name (the name of the monitor or receiver) is sent up via IPinName / KSPROPERTY_PIN_NAME. The idea of a "hey, Windows, requery the pin name" event is intriguing and I will start a discussion internally to Microsoft on that topic. ________________________________________ From: wdmaudiodev-bounce@xxxxxxxxxxxxx [wdmaudiodev-bounce@xxxxxxxxxxxxx] on behalf of Jeff Pages [jeff@xxxxxxxxxxxxxxxx] Sent: Wednesday, February 02, 2011 8:25 PM To: wdmaudiodev@xxxxxxxxxxxxx Subject: [wdmaudiodev] Re: IPinName problem Matthew, This workaround looks like it's working, although destroying an endpoint and creating a brand new different one from scratch isn't really in the spirit of the IPinName documentation which refers to "updating" and "dynamically changing" an endpoint's name. Perhaps, as you suggest, there's a need for a KSEVENT_..._NAMECHANGE event. By the way, you said... > Otherwise Windows assumes it's the same endpoint come back to life and doesn't bother requerying KSPROPERTY_PIN_NAME but I noticed in the debugger that it does requery KSPROPERTY_PIN_NAME (it actually queries this every time the endpoints are enumerated) but just doesn't use the name it gets back (except for the level control which does get updated). Thanks, Jeff -----Original Message----- From: wdmaudiodev-bounce@xxxxxxxxxxxxx [mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of Jeff Pages Sent: Thursday, 3 February 2011 11:34 AM To: wdmaudiodev@xxxxxxxxxxxxx Subject: [wdmaudiodev] Re: IPinName problem Thanks Matthew. I'll try using a concatenation of the DAB Service Id and the friendly name as the subdevice name and see how that goes. Jeff -----Original Message----- From: wdmaudiodev-bounce@xxxxxxxxxxxxx [mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of Matthew van Eerde Sent: Thursday, 3 February 2011 11:27 AM To: wdmaudiodev@xxxxxxxxxxxxx Subject: [wdmaudiodev] Re: IPinName problem Yes, subdevice names need to be unique (even if they're not exposed at the same time.) Otherwise Windows assumes it's the same endpoint come back to life and doesn't bother requerying KSPROPERTY_PIN_NAME. ________________________________________ From: wdmaudiodev-bounce@xxxxxxxxxxxxx [wdmaudiodev-bounce@xxxxxxxxxxxxx] on behalf of Jeff Pages [jeff@xxxxxxxxxxxxxxxx] Sent: Wednesday, February 02, 2011 3:56 PM To: wdmaudiodev@xxxxxxxxxxxxx Subject: [wdmaudiodev] Re: IPinName problem >Are you passing a different name to PcRegisterSubdevice the second time around? The subdevice name passed to PcRegisterSubdevice (which I base on the DAB service ID number) is unchanged, only the friendly name is changed. I'm guessing now I should be using a different name for the subdevice, is that right? Jeff ****************** WDMAUDIODEV addresses: Post message: mailto:wdmaudiodev@xxxxxxxxxxxxx Subscribe: mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=subscribe Unsubscribe: mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=unsubscribe Moderator: mailto:wdmaudiodev-moderators@xxxxxxxxxxxxx URL to WDMAUDIODEV page: http://www.wdmaudiodev.com/****************** WDMAUDIODEV addresses: Post message: mailto:wdmaudiodev@xxxxxxxxxxxxx Subscribe: mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=subscribe Unsubscribe: mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=unsubscribe Moderator: mailto:wdmaudiodev-moderators@xxxxxxxxxxxxx URL to WDMAUDIODEV page: http://www.wdmaudiodev.com/ ****************** WDMAUDIODEV addresses: Post message: mailto:wdmaudiodev@xxxxxxxxxxxxx Subscribe: mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=subscribe Unsubscribe: mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=unsubscribe Moderator: mailto:wdmaudiodev-moderators@xxxxxxxxxxxxx URL to WDMAUDIODEV page: http://www.wdmaudiodev.com/ ****************** WDMAUDIODEV addresses: Post message: mailto:wdmaudiodev@xxxxxxxxxxxxx Subscribe: mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=subscribe Unsubscribe: mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=unsubscribe Moderator: mailto:wdmaudiodev-moderators@xxxxxxxxxxxxx URL to WDMAUDIODEV page: http://www.wdmaudiodev.com/****************** WDMAUDIODEV addresses: Post message: mailto:wdmaudiodev@xxxxxxxxxxxxx Subscribe: mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=subscribe Unsubscribe: mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=unsubscribe Moderator: mailto:wdmaudiodev-moderators@xxxxxxxxxxxxx URL to WDMAUDIODEV page: http://www.wdmaudiodev.com/