I tried Matt’s code and it didn’t work, but I looked at the drivers of Fastrax evulation bourd for UP300 GPS chip that I wrok with and I saw that it uses the following drivers:
silabenm.sys, silabser.sys, WdfCoinstaller01005.dll.
It looks like the driver are Silabs driver and somehow it is recognized by application as FTDI driver.
So, I took the code that handles Silabs device and move it to handle FTDI like that:
USBH_Device silabs = new USBH_Device(device.ID, device.INTERFACE_INDEX,
USBH_DeviceType.Serial_SiLabs, device.VENDOR_ID, device.PRODUCT_ID,
serialUSB = new USBH_SerialUSB(silabs, 9600, System.IO.Ports.Parity.None, 8,
serialUSBThread = new Thread(SerialUSBThread);
And that works, at least the exception disapear.
Is that make sence?