It seems that on Windows, if there is more than one interface descriptor within a configuration descriptor, the latter should include a IAD (Interface Association Descriptor).
[Device Descriptor]
[ConfigDescriptor]
[Interface Association Descriptor]
[Interface Descriptor] (1)
[EndPoints Descriptors and so on..]
[Interface Descriptor] (2)
[EndPoints Descriptors and so on..]
I don't see any IAD in usbd_cdc_hid.c. Maybe this could do the trick in order to allow windows to enumerate this CDC-HID config.
That said, I don't know if IAD are recognized in Linux and macOS
I am exploring USB enumeration with STM32F4DISCO. I will give feedback here in case of positive results.
Espruino is a JavaScript interpreter for low-power Microcontrollers. This site is both a support community for Espruino and a place to share what you are working on.
It seems that on Windows, if there is more than one interface descriptor within a configuration descriptor, the latter should include a IAD (Interface Association Descriptor).
I don't see any IAD in usbd_cdc_hid.c. Maybe this could do the trick in order to allow windows to enumerate this CDC-HID config.
That said, I don't know if IAD are recognized in Linux and macOS
I am exploring USB enumeration with STM32F4DISCO. I will give feedback here in case of positive results.