KSStudio (part of the Windows Driver Kit) shows the KS topology for installed audio drivers. See my "WalkTreeBackwardsFromPart" code at this forum post: http://social.msdn.microsoft.com/Forums/en-US/windowspro-audiodevelopment/thread/9741bae1-c330-4802-9860-2fd202dba797/ Note that the topology exposed is heavily dependent on the audio driver. Two different drivers may expose wildly different topologies on the same hardware. ________________________________________ From: wdmaudiodev-bounce@xxxxxxxxxxxxx [wdmaudiodev-bounce@xxxxxxxxxxxxx] on behalf of Leonard Shoell [lshoell@xxxxxxxxxxxxxxxxx] Sent: Monday, December 21, 2009 9:01 AM To: wdmaudiodev@xxxxxxxxxxxxx Subject: [wdmaudiodev] Traversing USB Audio Topology I need to get access to the input volume and mute controls, if any, on the speaker endpoint, such as, the microphone input. These are the additional controls that appear on the "Levels" tab on the endpoint properties in the CPL. A couple of years ago I wrote code based on the Device Topologies document to do this, which works perfectly on the several audio codecs I've tried. However, it does not work on the USB devices I've tested. The code starts at the endpoint connector, uses ConnectTo to get the hardware connector, then looks at all of the input connections. It enumerates through all of the parts on the connection and if it finds a volume control, it uses it. The results match the controls that appear on the "Levels" tab, for codecs. However, for USB devices, it finds the microphone endpoint controls instead of the microphone's input to the speaker endpoint. Clearly the topology for a USB device is different than a codec. There is also evidence of this by the way you have to associate APOs to the speaker and microphone endpoints in the INF. Does anyone know where I look in the topology to find these input controls to the speaker endpoint for a USB device? Or, is there a utility available that traverses and shows the entire topology for an endpoint? If something would show me where they are in the topology, I can figure out how to access them. Leonard ****************** 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/