Table of contents
Collapse the table of content
Expand the table of content

Obtaining HID Reports by User-Mode Applications

Last Updated: 4/14/2017

This topic discusses the obtaining of HID input reports or HID feature reports, by user-mode applications using ReadFile or the HidD_GetXxx routines.

However, an application should only use the HidD_GetXxx routines to obtain the current state of a device. If an application attempts to use HidD_GetInputReport to continuously obtain input reports, the reports can be lost. In addition, some devices might not support HidD_GetInputReport, and will become unresponsive if this routine is used.

The following sections provide more information.

Using ReadFile

An application uses the open file handle it obtained by using CreateFile to open a file on the collection. When the application calls ReadFile, it does not have to specify overlapped I/O because the HID Client Drivers buffers reports in a ring buffer. However, an application can use overlapped I/O to have more than one outstanding read request.

Using HidD_GetXxx Routines

An application can use the following HIDClass support routines to obtain the most current input reports and feature reports from a HID collection:

Returns an input report from a HID collection (Windows XP and later versions).

Returns a feature report from a HID collection.

An application can request the return of a specific report. To retrieve a specific report using these routines, the application allocates the report output buffer, zero-initializes the buffer, and sets the first byte in the buffer to the specific report ID. For more information, see Initializing HID Reports.

Send comments about this topic to Microsoft

© 2017 Microsoft