Composite USB HID keyboard/DFU device in Win7

I am trying to arrange my USB descriptors for a composite device with 2 interfaces; one for a HID keyboard and the other for a DFU class.

The Config descriptor looks like this:
09 02 2b 00 02 01 00 80 32 // config descriptor, 2 interfaces
09 04 00 00 01 03 00 00 00 // interface descriptor for HID keyboard
09 21 10 01 00 01 22 2d 00 // HID class descriptor
07 05 81 03 08 00 0a // EP descriptor for HID IN interrupt
09 04 01 00 00 fe 01 00 00 // interface descriptor for DFU class, no EPs

Windows XP and Vista are both happy with this; they load an HID class driver ok and then pop up the add new hardware wizard for the DFU interface.

Win 7 puts an exclamation mark (!) by the HID device in DevMgr. The DFU is nowhere to be seen.

Any ideas?

Nick Clarke
www.redsoftsys.com

xxxxx@redsoftsys.com wrote:

I am trying to arrange my USB descriptors for a composite device with 2 interfaces; one for a HID keyboard and the other for a DFU class.

The Config descriptor looks like this:
09 02 2b 00 02 01 00 80 32 // config descriptor, 2 interfaces
09 04 00 00 01 03 00 00 00 // interface descriptor for HID keyboard
09 21 10 01 00 01 22 2d 00 // HID class descriptor
07 05 81 03 08 00 0a // EP descriptor for HID IN interrupt
09 04 01 00 00 fe 01 00 00 // interface descriptor for DFU class, no EPs

Windows XP and Vista are both happy with this; they load an HID class driver ok and then pop up the add new hardware wizard for the DFU interface.

Win 7 puts an exclamation mark (!) by the HID device in DevMgr.

A HID-class device is required to have at least one Report Descriptor.
Your HID class-specific descriptor says you have one, with a length of
2D bytes, but there is none present. Further, if the whole
configuration descriptor is 2B bytes, then clearly there is not room for
2D bytes of report descriptor.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.