BUG: HID Driver Does Not Support All Keyboards and All Mouse Devices (320921)



The information in this article applies to:

  • Microsoft Windows CE Operating System, Versions 3.0
  • Microsoft Windows CE Operating System, Versions 2.12
  • Microsoft Windows CE Operating System, Versions 2.11
  • Microsoft Windows CE .NET Operating System

This article was previously published under Q320921

SYMPTOMS

If you plug certain universal serial bus (USB) keyboards or other input devices into a USB-enabled platform, you can see that the USBHID.dll driver loads. However, events are ignored or USBHID causes Device.exe to crash.

CAUSE

Devices on the USB are responsible for describing themselves to the host computer. The human interface device (HID) specification defines a quasi-language for the HID-compliant USB device to tell the host how to interpret the data that the host receives. This quasi-language is flexible and permits many ways to describe the same piece of functionality.

The USBHID driver for Windows CE is a little primitive and does not correctly handle all possible ways to describe the same thing. The USBHID driver for Windows CE works most of the time because most keyboard and mouse manufacturers take unchanged the sample descriptions provided in the appendixes of the HID specification. The manufacturers make their hardware comply with those descriptions.

The USBHID driver also does not correctly manage devices with multiple HID interfaces. There is no way for a consumer to know how a device looks to a USB host.

RESOLUTION

These behaviors are expected to be addressed in Windows CE 4.1.

STATUS

Microsoft has confirmed that this is a bug in the Microsoft products that are listed at the beginning of this article.

Modification Type:MajorLast Reviewed:4/14/2004
Keywords:kbbug kbpending KB320921