Home Forums Software Development Device driver issue: Class GUID used for "Eye Tracking Devices" is not unique Reply To: Device driver issue: Class GUID used for "Eye Tracking Devices" is not unique

#3618
CHRISTER OLSSON
Participant

In that case I would assume that the assignment of this GUID for “Generic WinUSB device” is a misstake on the part of the developers of libusb.

The libusb example .inf file does say that you can also define your own GUID, which I would consider a better option. With the default on anyone that like me, that have or previously had McAfee SiteAdvisor/WebAdvisor installed on their computer, is going to have a really hard time to get this driver to work.

Also, even if this was a system defined class for “Generic WinUSB device”. Overwriting it with your own definition “Eye tracking devices” could cause some confusion if you have other WinUSB devices with entirely different purposes. If you want to define your own device type and have the device show up under that category in the device manager, assigning you own unique device type GUID seems like the right thing to do, instead of just overwriting the original definition.

The same GUID was used in an example, which seems to be from 2005 according to the driver version, in “Developing Drivers with the Windows Driver Foundation” that was published early 2007. Which is half a year before the initial version of libusb.
https://books.google.co.uk/books?id=_JxCAwAAQBAJ&pg=PT742&lpg=PT742&dq=%7B78a1c341-4539-11d3-b88d-00c04fad5171%7D&source=bl&ots=o4JNXbbPwz&sig=OLzxbZxqmj32D6tDhF3Sb0Hc_RI&hl=sv&sa=X&redir_esc=y#v=onepage&q=%7B78a1c341-4539-11d3-b88d-00c04fad5171%7D&f=false

This example states that you should change the ClassGUID to one suitable for your device. Either a fresh generated one for your own defined class type or one of the system defined classes.

If this was a system defined device class it should be listed as such in the referenced list but it is not:
https://msdn.microsoft.com/en-us/library/ff553426(v=vs.85).aspx

There are other code examples from Microsoft, where the same GUID is used for drivers and services. In all of these examples, the class name is “Sample”, which to me indicates that it is a fictive class example that is not supposed used in the real world (like the telephone numbers in Hollywod movies):
http://blogs.msdn.com/b/iliast/archive/2009/08/13/wdf-logo-requirements-regarding-coinstallers.aspx