var searcher = new ManagementObjectSearcher(@"SELECT * FROM Win32_PnPSignedDriver WHERE DeviceID LIKE 'USB%' AND DeviceClass = 'Camera'");
foreach (var device in searcher.Get().Cast<ManagementObject>().OrderBy(n => n["PDO"]))
{
Debug.WriteLine("-----");
Debug.WriteLine(device.GetPropertyValue("FriendlyName"));
Debug.WriteLine(device.GetPropertyValue("DeviceClass"));
Debug.WriteLine(device.GetPropertyValue("DeviceID"));
Debug.WriteLine(device.GetPropertyValue("PDO"));
Debug.WriteLine("-----");
}
※「Video Capture Device ID」(index)は、PDOが小さい順に振られると思っていますが、完全には調べ切れていません...