using System.Management;
var searcher = new ManagementObjectSearcher("SELECT * FROM Win32_SoundDevice");
using (var collection = searcher.Get())
{
foreach (var audioDevice in collection)
{
Console.WriteLine(audioDevice["Description"]);
Console.WriteLine(audioDevice["Status"]);
Console.WriteLine(audioDevice["Caption"]);
Console.WriteLine(audioDevice["DeviceID"]);
}
}