HidD_GetInputReport function (hidsdi.h)

The HidD_GetInputReport routine returns an input report from a top-level collection.

Only use the this routine to obtain the current state of a device. If an application attempts to use this routine to continuously obtain input reports, the reports can be lost. For more information, see Obtaining HID Reports by user-mode applications.


BOOLEAN HidD_GetInputReport(
  [in]  HANDLE HidDeviceObject,
  [out] PVOID  ReportBuffer,
  [in]  ULONG  ReportBufferLength


[in] HidDeviceObject

An open handle to a top-level collection.

[out] ReportBuffer

Pointer to a caller-allocated input report buffer that the caller uses to specify a HID report ID and HidD_GetInputReport uses to return the specified input report.

For more information about this parameter, see the Remarks section.

[in] ReportBufferLength

The size of the report buffer in bytes. The report buffer must be large enough to hold the input report plus one additional byte that specifies a report ID. If report ID is not used, the ID value is zero.

Return value

HidD_GetInputReport returns TRUE if it succeeds; otherwise, it returns FALSE. Use GetLastError to get extended error information.


The correct ReportBufferLength is specified by the InputReportByteLength member of a top-level collection's HIDP_CAPS structure returned from HidP_GetCaps call.

Before it calls the HidD_GetInputReport routine, the caller must do the following:

  • If the top-level collection includes report IDs, the caller must set the first byte of the ReportBuffer parameter to a nonzero report ID.
  • If the top-level collection does not include report IDs, the caller must set the first byte of the ReportBuffer parameter to zero.

The input report is returned in the ReportBuffer parameter. Depending on the report ID, the caller parses the report by calling one of the following functions:

For an example of how to parse a HID report, see the HClient sample application.

Only user-mode applications can call HidD_GetInputReport. Kernel-mode drivers can use an IOCTL_HID_GET_INPUT_REPORTrequest.

For more information, see Interpreting HID Reports.


Minimum supported client Available in Windows XP and later versions of Windows.
Target Platform Universal
Header hidsdi.h (include Hidsdi.h)
Library Hid.lib
DLL Hid.dll

See also