HidP_SetScaledUsageValue routine

The HidP_SetScaledUsageValue routine converts a signed and scaled physical number to a HID usage's logical value, and sets the usage value in a specified HID report.

Syntax


NTSTATUS __stdcall HidP_SetScaledUsageValue(
  _In_    HIDP_REPORT_TYPE     ReportType,
  _In_    USAGE                UsagePage,
  _In_    USHORT               LinkCollection,
  _In_    USAGE                Usage,
  _In_    LONG                 UsageValue,
  _In_    PHIDP_PREPARSED_DATA PreparsedData,
  _Inout_ PCHAR                Report,
  _In_    ULONG                ReportLength
);

Parameters

ReportType [in]

Specifies a HIDP_REPORT_TYPE enumerator value that indicates the type of HID report located at Report.

UsagePage [in]

Specifies the usage page of a usage.

LinkCollection [in]

Specifies the link collection that contains the usage. If LinkCollection is nonzero, the routine only sets the usage, if one exists, in this link collection. If LinkCollection is zero, the routine sets the first usage it finds in the top-level collection associated with PreparsedData.

Usage [in]

Specifies the usage.

UsageValue [in]

Specifies the signed and scaled physical number, which the routine converts to the usage's logical value.

PreparsedData [in]

Pointer to a top-level's preparsed data.

Report [in, out]

Pointer to a HID report.

ReportLength [in]

Specifies the size, in bytes, of the HID report located at Report, which must be equal to the report length for the specified report type that HidP_GetCaps returns in a collection's HIDP_CAPS structure.

Return value

HidP_SetScaledUsageValue returns one of the following status values:

Return codeDescription
HIDP_STATUS_SUCCESS

The routine successfully set the usage value.

HIDP_STATUS_BAD_LOG_PHY_VALUES

The usage has an illegal logical or physical range that prevents scaling.

HIDP_STATUS_VALUE_OUT_OF_RANGE

The specified physical value is out-of-range and the usage does not have null value.

HIDP_STATUS_INVALID_REPORT_LENGTH

The report length is not valid.

HIDP_STATUS_INVALID_REPORT_TYPE

The specified report type is not valid.

HIDP_STATUS_INCOMPATIBLE_REPORT_ID

The usage does not exist in the specified report, but it does exist in a different report of the specified type.

HIDP_STATUS_INVALID_PREPARSED_DATA

The preparsed data is not valid.

HIDP_STATUS_USAGE_NOT_FOUND

The usage does not exist in any report of the specified report type.

HIDP_STATUS_NULL

The specified physical value is out-of-range, the usage has a null value, and the routine set the null value.

 

Remarks

HidP_SetScaledUsageValue sets the sign bit.

If the routine returns HIDP_STATUS_INCOMPATIBLE_REPORT_ID, the specified report does contain the usage. However, a user-mode application or kernel-mode driver can set the usage in a zero-initialized report. See Initializing HID Reports.

For more information, see HID Collections.

Requirements

Target platform

Universal

Version

Available in Windows 2000 and later versions of Windows.

Header

Hidpi.h (include Hidpi.h)

Library

Hidparse.lib

IRQL

<= DISPATCH_LEVEL

See also

_HIDP_PREPARSED_DATA
HIDP_CAPS
HidP_GetCaps
HIDP_REPORT_TYPE
HidP_SetUsageValue
HidP_SetUsageValueArray

 

 

Send comments about this topic to Microsoft

Show:
© 2015 Microsoft