Running two devices, which were developed using the cyusb3.sys file, at the same time | Cypress Semiconductor
Running two devices, which were developed using the cyusb3.sys file, at the same time
I am working with two vendors who used cyusb3.sys as the interface to their device. I can use each device when only one is plugged into the system, but if both are plugged in it generates an error. The error is something ot the effect of 'this driver cannot be loaded because it is already in memory'.
The programming guide suggests that I create a new copy of the cyusb3.sys file, and change the .inf file to point to this new copy. Check. Now I can install the driver for both devices at the same time, but here is the tricky part.
The software designed to interface with each device can only find the first device that was plugged into the system. (two different software packages, one for each device)
I scoured the .inf file looking for clues and I think it has something to do with the GUID. Both vendors used the same GUID at the bottom of the .inf file (the class GUID at the top is the same too, but it shouldn't be a problem). My theory is that the software looks for the driver by this GUID, the drivers are loaded into memory sequentially when the device is plugged in, and the software looks sequentially through this memory space until it finds a driver with the correct GUID. As this driver will only support connections to the first device, one software package will work, while the other will not.
Am I on track here, or is there something else I missed?
(I verified that there were different VID and PID values for each driver once installed)