HidD_GetFeature function (hidsdi.h)

The HidD_GetFeature routine returns a feature report from a specified top-level collection.

Syntax

BOOLEAN HidD_GetFeature(
  [in]  HANDLE HidDeviceObject,
  [out] PVOID  ReportBuffer,
  [in]  ULONG  ReportBufferLength
);

Parameters

[in] HidDeviceObject

An open handle to a top-level collection.

[out] ReportBuffer

Pointer to a caller-allocated HID report buffer that the caller uses to specify a report ID. HidD_GetFeature uses ReportBuffer to return the specified feature 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 feature report plus one additional byte that specifies a nonzero report ID. If report ID is not used, the ID value is zero.

Return value

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

Remarks

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

Before it calls the HidD_GetFeature 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 feature 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. This sample is located in the MSDN Code Gallery.

Only user-mode applications can call HidD_GetFeature. Kernel-mode drivers can use an IOCTL_HID_GET_FEATURE request.

Requirements

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

See also