I am developing a program that will have the ability to use a microphone and a headset in full duplex mode, i.e. having someone talk in the microphone and hearing it in the headset at the same time. So what I need to do is to programmatically find the microphone device that is currently being used so I can unmute it and therefore allow full duplex capabilities. This will then have the same effect as going into Control Panel->Sound->Playback Devices->Levels and clicking the unmute button that is currently there for the microphone. I have found some code on this forum that will allow me to enumerate all the audio endpoints for a specific device such as the speakers and I have successfully used this code to accomplish the task I have described above, but this only works when I know what the name of the microphone device will be. For instance, on one sound card, you can unmute the microphone if you find a device called "Input Monitor", but on another sound card you must unmute a device called "Microphone". But what I want is a general solution, I don't want to have to know what the name of the device is that I'm looking for as it could be different depending on what sound card is installed. Is there some way to just know that the part you have just enumerated is a microphone without knowing the specific name to look for