public static DeviceRecord TryFindDeviceInstance(UsbIdentity[] usbIdentities)
{
if (usbIdentities == null)
throw new ArgumentNullException("usbIdentities");
var allDevices = DeviceRecord.FindAllUsbDevices();
if (allDevices == null)
return null;
foreach (var dev in allDevices)
{
foreach (var id in usbIdentities)
if (string.Equals(dev.VendorID, id.VID, StringComparison.InvariantCultureIgnoreCase) && string.Equals(dev.ProductID, id.PID, StringComparison.InvariantCultureIgnoreCase))
{
if (string.IsNullOrEmpty(id.Interface) || string.Equals(id.Interface, dev.Interface))
return dev;
}
}
return null;
}