You are here

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

Summary: 1 Reply, Latest post by VAVC on 15 Jul 2014 12:12 PM PDT
Verified Answers: 0
Last post
Log in to post new comments.
bwalker's picture
1 post


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)


VAVC's picture
Cypress Employee
506 posts



1. Which deviceare you using?FX3 or FX2LP?

2. There is no limitation on like only one device can enumerate with specific driver at a time.

3. When you connect both the devices, are both enumerating? 

4/ It checks the GUID to detect the devices that are binded to the cypress drivers.


How are you checking the devices in your software?






Log in to post new comments.