Windows Support Menu
Human Interface Devices
The Universal Serial Bus Organization developed the specification for Human Interface Devices. It provides a uniform way for programs to access input devices while providing extensible, adaptable interfaces to new devices. This allows a hardware manufacturer to write only an application that addresses the specific capabilities of the device. It would be possible for a hardware vendor can design a HID compliant device without having to write a driver for it.
Note: While the HID specification does not demand that the device also conform to the Universal Serial Bus specification, initial support in Windows 98 for HID will be based solely on USB-compliant devices.
Although not directly supported in Windows 98, HID controls are also defined for the following:
Windows 98 does not automatically support HID-compliant devices other than keyboards, keypads, mouse devices, pointing devices, and game controllers. The devices above will be enumerated and recognized as HID-compliant device by the operating system. They are not automatically supported because such devices require additional, device-specific software (such as drivers, Control Panel applications, or special applications) to be installed on the system. The device-specific software for these types of devices needs to be developed and supplied by device vendors or OEMs.
HID Architecture - General
This diagram demonstrates how the pieces of the HID stack provide support for HID aware applications, while maintaining backward compatibility for legacy applications.
HID-aware and DirectInput 5.0 applications (discussed in the next module) communicate directly with the class driver. Data that is specific to the application is passed through a User Mode component that packages the data for transport to the HID Class driver.
HID devices and HID aware applications package the data into HID reports. HID reports are data structures that allow specific device and application information to be stored in generic data structures. The data stored in HID reports must be placed and extracted through HID parsing files. These functions are implemented in Hid.dll in the User mode and Hidparse.sys in the Kernel mode.
Legacy applications send the data to the VxDs that existed in Windows 95. Those calls that are for legacy hardware are sent directly to the hardware layer. Those calls that are going to a HID device must be translated. A legacy mapping layer exists to capture the data and pass it through a Kernel Mode HID parser so that the HID Class driver can interpret the data.
The data is then packaged and sent to the bus that the physical device lies on. The layer that provides this service is specific to the device's bus type.
Since HID is a specification rather than a hardware type, troubleshooting HID devices should follow the steps listed for the specific bus type, namely USB.
Points to Remember: