HidP_UsageListDifference function (hidpi.h)

The HidP_UsageListDifference routine returns the differences between two arrays of HID usages.

Syntax

NTSTATUS HidP_UsageListDifference(
  [in]  PUSAGE PreviousUsageList,
  [in]  PUSAGE CurrentUsageList,
  [out] PUSAGE BreakUsageList,
  [out] PUSAGE MakeUsageList,
  [in]  ULONG  UsageListLength
);

Parameters

[in] PreviousUsageList

Pointer to a list of usages that the routine compares with the list of usages in CurrentUsageList.

[in] CurrentUsageList

Pointer to a list of usages that the routine compares with the list of usages in PreviousUsageList.

[out] BreakUsageList

Pointer to a caller-allocated buffer that, on return, contains a list of the usages that are in PreviousUsageList, but not in CurrentUsageList.

[out] MakeUsageList

Pointer to a caller-allocated buffer that, on return, contains a list of the usages that are in CurrentUsageList, but not in PreviousUsageList.

[in] UsageListLength

Specifies the length, in array elements, of the buffers provided at CurrentUsageList and PreviousUsageList.

Return value

HidP_UsageListDifference returns HIDP_STATUS_SUCCESS.

Remarks

A user-mode application or kernel-mode driver can use this routine to compare two usage lists, for example, to determine the change in button state between two usage lists returned by two HidP_GetButtons calls.

If the input usage lists have different lengths, an application or driver should set UsageListLength to the length of the larger list.

The routine interprets a zero usage in an input usage list as a delimiter that ends the list. Any usages after a zero in a list are not processed. Unused usages in an output list are set to zero.

For more information, see HID Collections.

Requirements

Requirement Value
Minimum supported client Available in Windows 2000 and later versions of Windows.
Target Platform Universal
Header hidpi.h (include Hidpi.h)
Library Hidparse.lib
IRQL PASSIVE_LEVEL

See also

HidP_UsageAndPageListDifference