public static UsbDevice FindDeviceByDriverKeyName(string driverKeyName, string driveName) { UsbDevice foundDevice = null; foreach (var controller in UsbHost.GetControllers()) { UsbLogic.SearchHubDriverKeyName(controller.GetRootHub(), ref foundDevice, driverKeyName, driveName); if (foundDevice != null) { break; } } return(foundDevice); }
private static void SearchHubDriverKeyName(UsbHub hub, ref UsbDevice foundDevice, string driverKeyName, string driveName) { foreach (var port in hub.GetPorts()) { if (port.IsHub) { UsbLogic.SearchHubDriverKeyName(port.GetHub(driveName), ref foundDevice, driverKeyName, driveName); } else { if (port.IsDeviceConnected) { var device = port.GetDevice(driveName); if (device.DriverKey == driverKeyName) { foundDevice = device; break; } } } } }