Electronic – USB Descriptor: iInterface and iFunction – is there a point

usb

In a USB Configuration Descriptor you have the option of providing iFunction and iInterface string descriptor indexes to Function Descriptors and Interface Descriptors respectively.

Is there any point to implementing these descriptors? Adding them, I can see the strings I assign in lsusb -v -d vid:pid for the device, but that is the only place I seem to be able to see them at the moment.

Are these string descriptors used anywhere else? Maybe in another operating system?

Yes, I guess I could get at them with libusb in my own software, but that's besides the point – I'm looking at the OS level – is there anything (besides the odd diagnostic tool) that would make use of them?

BTW: this is for a composite device with a number of interfaces of different types.

Best Answer

From: link

Permits distinguishing between two /dev/videoX entries from the same physical UVC device (that naturally share the same iProduct name).

This change matches current Windows behavior by prioritizing iFunction over iInterface, but unlike Windows it displays both iProduct and iFunction/iInterface strings when both are available.