Human Interface Device (HID) Profile

Other versions of this page are also available for the following:

Windows Mobile Not SupportedWindows Embedded CE Supported

8/28/2008

The HID profile defines protocols, procedures, and usage scenarios for using HIDs, such as a keyboard, over a Bluetooth connection. For information about this profile, see the Human Interface Device Specification at the Official Bluetooth Wireless Info Web site.

Note

A Bluetooth mouse is not supported in Bluetooth HID mode.

The device that hosts the Bluetooth stack uses the Service Discovery Protocol (SDP) to discover HIDs. The Bluetooth stack on the host must include the following:

  • HID class driver that initiates, establishes, and terminates a connection with the HID.
  • SDP parser that parses the SDP record of the HID.

** Before the HID is activated, it must send its device information, called descriptor, to the class driver on the host. The class driver uses the descriptor to determine device characteristics in order to enable controls on the device. After a Bluetooth connection is established between the HID and the host, the HID can communicate with the class driver over an L2CAP connection. For more information about the HID class driver provided by Windows Embedded CE, see HID Class Driver Support.

Although not required by the Human Interface Device Specification, Microsoft highly recommends that you use encryption and authentication to protect sensitive data sent by the HID. To enhance the security of the connection, configure the registry settings of the HID. For more information about these registry settings, see Human Interface Device (HID) Profile Registry Settings.

Windows Embedded CE also provides the following IOCTLs that you can use to connect and disconnect the HID device from the Bluetooth stack on the host.

Note

The keyboard will not accept incoming connection after pairing is successful. So check and uncheck on the UI to reinitiate a connection to the keyboard from the device will not work. The only way to reestablish connection is to pair with the keyboard again in this scenario.

See Also

Concepts

Bluetooth Profiles

Other Resources

Bluetooth OS Design Development
Bluetooth Stack Architecture