Something went wrong. Try again.
Reactos
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666/* * hidpi.h * * Public Interface for HID parsing library. * * This file is part of the w32api package. * * Contributors: * Created by Casper S. Hornstrup <chorns@users.sourceforge.net> * * THIS SOFTWARE IS NOT COPYRIGHTED * * This source code is offered for use in the public domain. You may * use, modify or distribute it freely. * * This code is distributed in the hope that it will be useful but * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY * DISCLAIMED. This includes but is not limited to warranties of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * */
#ifndef __HIDPI_H__#define __HIDPI_H__
#include "hidusage.h"
#ifdef __cplusplusextern "C" {#endif
#if defined(_HIDPI_) #define HIDAPI#else #define HIDAPI DECLSPEC_IMPORT#endif
typedef PUCHAR PHIDP_REPORT_DESCRIPTOR;typedef struct _HIDP_PREPARSED_DATA * PHIDP_PREPARSED_DATA;
typedef struct _HIDP_UNKNOWN_TOKEN { UCHAR Token; UCHAR Reserved[3]; ULONG BitField;} HIDP_UNKNOWN_TOKEN, *PHIDP_UNKNOWN_TOKEN;
typedef enum _HIDP_KEYBOARD_DIRECTION { HidP_Keyboard_Break, HidP_Keyboard_Make} HIDP_KEYBOARD_DIRECTION;
typedef struct _HIDP_KEYBOARD_MODIFIER_STATE { _ANONYMOUS_UNION union { _ANONYMOUS_STRUCT struct { ULONG LeftControl : 1; ULONG LeftShift : 1; ULONG LeftAlt : 1; ULONG LeftGUI : 1; ULONG RightControl : 1; ULONG RightShift : 1; ULONG RightAlt : 1; ULONG RigthGUI : 1; ULONG CapsLock : 1; ULONG ScollLock : 1; ULONG NumLock : 1; ULONG Reserved : 21; } DUMMYSTRUCTNAME; ULONG ul; } DUMMYUNIONNAME;} HIDP_KEYBOARD_MODIFIER_STATE, *PHIDP_KEYBOARD_MODIFIER_STATE;
typedef BOOLEAN(NTAPI *PHIDP_INSERT_SCANCODES)( _In_opt_ PVOID Context, _In_reads_bytes_(Length) PCHAR NewScanCodes, _In_ ULONG Length);
typedef struct _USAGE_AND_PAGE { USAGE Usage; USAGE UsagePage;} USAGE_AND_PAGE, *PUSAGE_AND_PAGE;
typedef struct _HIDD_ATTRIBUTES { ULONG Size; USHORT VendorID; USHORT ProductID; USHORT VersionNumber;} HIDD_ATTRIBUTES, *PHIDD_ATTRIBUTES;
typedef struct _HIDD_CONFIGURATION { PVOID cookie; ULONG size; ULONG RingBufferSize;} HIDD_CONFIGURATION, *PHIDD_CONFIGURATION;
_Must_inspect_result_HIDAPINTSTATUSNTAPIHidP_TranslateUsageAndPagesToI8042ScanCodes( _In_reads_(UsageListLength) PUSAGE_AND_PAGE ChangedUsageList, _In_ ULONG UsageListLength, _In_ HIDP_KEYBOARD_DIRECTION KeyAction, _Inout_ PHIDP_KEYBOARD_MODIFIER_STATE ModifierState, _In_ PHIDP_INSERT_SCANCODES InsertCodesProcedure, _In_opt_ PVOID InsertCodesContext);
_Must_inspect_result_HIDAPINTSTATUSNTAPIHidP_TranslateUsagesToI8042ScanCodes( _In_reads_(UsageListLength) PUSAGE ChangedUsageList, _In_ ULONG UsageListLength, _In_ HIDP_KEYBOARD_DIRECTION KeyAction, _Inout_ PHIDP_KEYBOARD_MODIFIER_STATE ModifierState, _In_ PHIDP_INSERT_SCANCODES InsertCodesProcedure, _In_opt_ PVOID InsertCodesContext);
typedef struct _HIDP_BUTTON_CAPS { USAGE UsagePage; UCHAR ReportID; BOOLEAN IsAlias; USHORT BitField; USHORT LinkCollection; USAGE LinkUsage; USAGE LinkUsagePage; BOOLEAN IsRange; BOOLEAN IsStringRange; BOOLEAN IsDesignatorRange; BOOLEAN IsAbsolute; ULONG Reserved[10]; _ANONYMOUS_UNION union { struct { USAGE UsageMin, UsageMax; USHORT StringMin, StringMax; USHORT DesignatorMin, DesignatorMax; USHORT DataIndexMin, DataIndexMax; } Range; struct { USAGE Usage, Reserved1; USHORT StringIndex, Reserved2; USHORT DesignatorIndex, Reserved3; USHORT DataIndex, Reserved4; } NotRange; } DUMMYUNIONNAME;} HIDP_BUTTON_CAPS, *PHIDP_BUTTON_CAPS;
typedef struct _HIDP_CAPS { USAGE Usage; USAGE UsagePage; USHORT InputReportByteLength; USHORT OutputReportByteLength; USHORT FeatureReportByteLength; USHORT Reserved[17]; USHORT NumberLinkCollectionNodes; USHORT NumberInputButtonCaps; USHORT NumberInputValueCaps; USHORT NumberInputDataIndices; USHORT NumberOutputButtonCaps; USHORT NumberOutputValueCaps; USHORT NumberOutputDataIndices; USHORT NumberFeatureButtonCaps; USHORT NumberFeatureValueCaps; USHORT NumberFeatureDataIndices;} HIDP_CAPS, *PHIDP_CAPS;
typedef struct _HIDP_DATA { USHORT DataIndex; USHORT Reserved; _ANONYMOUS_UNION union { ULONG RawValue; BOOLEAN On; } DUMMYUNIONNAME;} HIDP_DATA, *PHIDP_DATA;
typedef struct _HIDP_EXTENDED_ATTRIBUTES { UCHAR NumGlobalUnknowns; UCHAR Reserved[3]; PHIDP_UNKNOWN_TOKEN GlobalUnknowns; ULONG Data[1];} HIDP_EXTENDED_ATTRIBUTES, *PHIDP_EXTENDED_ATTRIBUTES;
#define HIDP_LINK_COLLECTION_ROOT ((USHORT) -1)#define HIDP_LINK_COLLECTION_UNSPECIFIED ((USHORT) 0)
typedef struct _HIDP_LINK_COLLECTION_NODE { USAGE LinkUsage; USAGE LinkUsagePage; USHORT Parent; USHORT NumberOfChildren; USHORT NextSibling; USHORT FirstChild; ULONG CollectionType: 8; ULONG IsAlias: 1; ULONG Reserved: 23; PVOID UserContext;} HIDP_LINK_COLLECTION_NODE, *PHIDP_LINK_COLLECTION_NODE;
typedef struct _HIDP_VALUE_CAPS { USAGE UsagePage; UCHAR ReportID; BOOLEAN IsAlias; USHORT BitField; USHORT LinkCollection; USAGE LinkUsage; USAGE LinkUsagePage; BOOLEAN IsRange; BOOLEAN IsStringRange; BOOLEAN IsDesignatorRange; BOOLEAN IsAbsolute; BOOLEAN HasNull; UCHAR Reserved; USHORT BitSize; USHORT ReportCount; USHORT Reserved2[5]; ULONG UnitsExp; ULONG Units; LONG LogicalMin, LogicalMax; LONG PhysicalMin, PhysicalMax; _ANONYMOUS_UNION union { struct { USAGE UsageMin, UsageMax; USHORT StringMin, StringMax; USHORT DesignatorMin, DesignatorMax; USHORT DataIndexMin, DataIndexMax; } Range; struct { USAGE Usage, Reserved1; USHORT StringIndex, Reserved2; USHORT DesignatorIndex, Reserved3; USHORT DataIndex, Reserved4; } NotRange; } DUMMYUNIONNAME;} HIDP_VALUE_CAPS, *PHIDP_VALUE_CAPS;
typedef enum _HIDP_REPORT_TYPE { HidP_Input, HidP_Output, HidP_Feature} HIDP_REPORT_TYPE;
#define FACILITY_HID_ERROR_CODE 0x11
#define HIDP_ERROR_CODES(SEV, CODE) \ ((NTSTATUS) (((SEV) << 28) | (FACILITY_HID_ERROR_CODE << 16) | (CODE)))
#define HIDP_STATUS_SUCCESS (HIDP_ERROR_CODES(0x0, 0))#define HIDP_STATUS_NULL (HIDP_ERROR_CODES(0x8, 1))#define HIDP_STATUS_INVALID_PREPARSED_DATA (HIDP_ERROR_CODES(0xC, 1))#define HIDP_STATUS_INVALID_REPORT_TYPE (HIDP_ERROR_CODES(0xC, 2))#define HIDP_STATUS_INVALID_REPORT_LENGTH (HIDP_ERROR_CODES(0xC, 3))#define HIDP_STATUS_USAGE_NOT_FOUND (HIDP_ERROR_CODES(0xC, 4))#define HIDP_STATUS_VALUE_OUT_OF_RANGE (HIDP_ERROR_CODES(0xC, 5))#define HIDP_STATUS_BAD_LOG_PHY_VALUES (HIDP_ERROR_CODES(0xC, 6))#define HIDP_STATUS_BUFFER_TOO_SMALL (HIDP_ERROR_CODES(0xC, 7))#define HIDP_STATUS_INTERNAL_ERROR (HIDP_ERROR_CODES(0xC, 8))#define HIDP_STATUS_I8042_TRANS_UNKNOWN (HIDP_ERROR_CODES(0xC, 9))#define HIDP_STATUS_INCOMPATIBLE_REPORT_ID (HIDP_ERROR_CODES(0xC, 0xA))#define HIDP_STATUS_NOT_VALUE_ARRAY (HIDP_ERROR_CODES(0xC, 0xB))#define HIDP_STATUS_IS_VALUE_ARRAY (HIDP_ERROR_CODES(0xC, 0xC))#define HIDP_STATUS_DATA_INDEX_NOT_FOUND (HIDP_ERROR_CODES(0xC, 0xD))#define HIDP_STATUS_DATA_INDEX_OUT_OF_RANGE (HIDP_ERROR_CODES(0xC, 0xE))#define HIDP_STATUS_BUTTON_NOT_PRESSED (HIDP_ERROR_CODES(0xC, 0xF))#define HIDP_STATUS_REPORT_DOES_NOT_EXIST (HIDP_ERROR_CODES(0xC, 0x10))#define HIDP_STATUS_NOT_IMPLEMENTED (HIDP_ERROR_CODES(0xC, 0x20))#define HIDP_STATUS_I8242_TRANS_UNKNOWN HIDP_STATUS_I8042_TRANS_UNKNOWN
#if !defined(_HIDPI_NO_FUNCTION_MACROS_)/* * NTSTATUS * HidP_GetButtonCaps( * IN HIDP_REPORT_TYPE ReportType, * OUT PHIDP_BUTTON_CAPS ButtonCaps, * IN OUT PULONG ButtonCapsLength, * IN PHIDP_PREPARSED_DATA PreparsedData); */#define HidP_GetButtonCaps(_Type_, _Caps_, _Len_, _Data_) \ HidP_GetSpecificButtonCaps(_Type_, 0, 0, 0, _Caps_, _Len_, _Data_)
/* * NTSTATUS * HidP_GetButtons( * IN HIDP_REPORT_TYPE ReportType, * IN USAGE UsagePage, * IN USHORT LinkCollection, * OUT USAGE *UsageList, * IN OUT ULONG *UsageLength, * IN PHIDP_PREPARSED_DATA PreparsedData, * IN PCHAR Report, * IN ULONG ReportLength); */#define HidP_GetButtons(Rty, UPa, LCo, ULi, ULe, Ppd, Rep, RLe) \ HidP_GetUsages(Rty, UPa, LCo, ULi, ULe, Ppd, Rep, RLe)
#define HidP_GetButtonListLength(RTy, UPa, Ppd) \ HidP_GetUsageListLength(Rty, UPa, Ppd)
/* * NTSTATUS * HidP_GetButtonsEx( * IN HIDP_REPORT_TYPE ReportType, * IN USHORT LinkCollection, * OUT PUSAGE_AND_PAGE ButtonList, * IN OUT ULONG *UsageLength, * IN PHIDP_PREPARSED_DATA PreparsedData, * IN PCHAR Report, * IN ULONG ReportLength); */#define HidP_GetButtonsEx(RT, LC, BL, UL, PD, R, RL) \ HidP_GetUsagesEx(RT, LC, BL, UL, PD, R, RL)
#endif /* _HIDPI_NO_FUNCTION_MACROS_ */
_Must_inspect_result__IRQL_requires_max_(PASSIVE_LEVEL)HIDAPINTSTATUSNTAPIHidP_GetCaps( _In_ PHIDP_PREPARSED_DATA PreparsedData, _Out_ PHIDP_CAPS Capabilities);
_Must_inspect_result__IRQL_requires_max_(DISPATCH_LEVEL)HIDAPINTSTATUSNTAPIHidP_GetData( _In_ HIDP_REPORT_TYPE ReportType, _Out_writes_to_(*DataLength, *DataLength) PHIDP_DATA DataList, _Inout_ PULONG DataLength, _In_ PHIDP_PREPARSED_DATA PreparsedData, _Out_writes_bytes_(ReportLength) PCHAR Report, _In_ ULONG ReportLength);
_Must_inspect_result__IRQL_requires_max_(DISPATCH_LEVEL)HIDAPINTSTATUSNTAPIHidP_GetExtendedAttributes( _In_ HIDP_REPORT_TYPE ReportType, _In_ USHORT DataIndex, _In_ PHIDP_PREPARSED_DATA PreparsedData, _Out_writes_to_(*LengthAttributes, *LengthAttributes) PHIDP_EXTENDED_ATTRIBUTES Attributes, _Inout_ OUT PULONG LengthAttributes);
_Must_inspect_result__IRQL_requires_max_(DISPATCH_LEVEL)HIDAPINTSTATUSNTAPIHidP_GetLinkCollectionNodes( _Out_ PHIDP_LINK_COLLECTION_NODE LinkCollectionNodes, _Inout_ PULONG LinkCollectionNodesLength, _In_ PHIDP_PREPARSED_DATA PreparsedData);
_Must_inspect_result_HIDAPINTSTATUSNTAPIHidP_GetScaledUsageValue( _In_ HIDP_REPORT_TYPE ReportType, _In_ USAGE UsagePage, _In_ USHORT LinkCollection, _In_ USAGE Usage, _Out_ PLONG UsageValue, _In_ PHIDP_PREPARSED_DATA PreparsedData, _In_reads_bytes_(ReportLength) PCHAR Report, _In_ ULONG ReportLength);
_Must_inspect_result__IRQL_requires_max_(PASSIVE_LEVEL)HIDAPINTSTATUSNTAPIHidP_GetSpecificButtonCaps( _In_ HIDP_REPORT_TYPE ReportType, _In_ USAGE UsagePage, _In_ USHORT LinkCollection, _In_ USAGE Usage, _Out_ PHIDP_BUTTON_CAPS ButtonCaps, _Inout_ PUSHORT ButtonCapsLength, _In_ PHIDP_PREPARSED_DATA PreparsedData);
_Must_inspect_result__IRQL_requires_max_(DISPATCH_LEVEL)HIDAPINTSTATUSNTAPIHidP_GetSpecificValueCaps( _In_ HIDP_REPORT_TYPE ReportType, _In_ USAGE UsagePage, _In_ USHORT LinkCollection, _In_ USAGE Usage, _Out_ PHIDP_VALUE_CAPS ValueCaps, _Inout_ PUSHORT ValueCapsLength, _In_ PHIDP_PREPARSED_DATA PreparsedData);
_Must_inspect_result_HIDAPINTSTATUSNTAPIHidP_GetUsages( _In_ HIDP_REPORT_TYPE ReportType, _In_ USAGE UsagePage, _In_ USHORT LinkCollection, _Out_writes_to_(*UsageLength, *UsageLength) USAGE *UsageList, _Inout_ ULONG *UsageLength, _In_ PHIDP_PREPARSED_DATA PreparsedData, _Out_writes_bytes_(ReportLength) PCHAR Report, _In_ ULONG ReportLength);
_Must_inspect_result__IRQL_requires_max_(DISPATCH_LEVEL)HIDAPINTSTATUSNTAPIHidP_GetUsagesEx( _In_ HIDP_REPORT_TYPE ReportType, _In_ USHORT LinkCollection, _Inout_updates_to_(*UsageLength, *UsageLength) PUSAGE_AND_PAGE ButtonList, _Inout_ ULONG *UsageLength, _In_ PHIDP_PREPARSED_DATA PreparsedData, _In_reads_bytes_(ReportLength) PCHAR Report, _In_ ULONG ReportLength);
_Must_inspect_result_HIDAPINTSTATUSNTAPIHidP_GetUsageValue( _In_ HIDP_REPORT_TYPE ReportType, _In_ USAGE UsagePage, _In_ USHORT LinkCollection, _In_ USAGE Usage, _Out_ PULONG UsageValue, _In_ PHIDP_PREPARSED_DATA PreparsedData, _In_reads_bytes_(ReportLength) PCHAR Report, _In_ ULONG ReportLength);
_Must_inspect_result_HIDAPINTSTATUSNTAPIHidP_GetUsageValueArray( _In_ HIDP_REPORT_TYPE ReportType, _In_ USAGE UsagePage, _In_ USHORT LinkCollection, _In_ USAGE Usage, _Inout_updates_bytes_(UsageValueByteLength) PCHAR UsageValue, _In_ USHORT UsageValueByteLength, _In_ PHIDP_PREPARSED_DATA PreparsedData, _In_reads_bytes_(ReportLength) PCHAR Report, _In_ ULONG ReportLength);
#if !defined(_HIDPI_NO_FUNCTION_MACROS_)
/* * NTSTATUS * HidP_GetValueCaps( * IN HIDP_REPORT_TYPE ReportType, * OUT PHIDP_VALUE_CAPS ValueCaps, * IN OUT PULONG ValueCapsLength, * IN PHIDP_PREPARSED_DATA PreparsedData); */#define HidP_GetValueCaps(_Type_, _Caps_, _Len_, _Data_) \ HidP_GetSpecificValueCaps (_Type_, 0, 0, 0, _Caps_, _Len_, _Data_)
#endif /* _HIDPI_NO_FUNCTION_MACROS_ */
_Must_inspect_result__IRQL_requires_max_(DISPATCH_LEVEL)HIDAPINTSTATUSNTAPIHidP_InitializeReportForID( _In_ HIDP_REPORT_TYPE ReportType, _In_ UCHAR ReportID, _In_ PHIDP_PREPARSED_DATA PreparsedData, _Out_writes_bytes_(ReportLength) PCHAR Report, _In_ ULONG ReportLength);
#if !defined(_HIDPI_NO_FUNCTION_MACROS_)
/* * BOOLEAN * HidP_IsSameUsageAndPage( * USAGE_AND_PAGE u1, * USAGE_AND_PAGE u2); */#define HidP_IsSameUsageAndPage(u1, u2) ((* (PULONG) &u1) == (* (PULONG) &u2))
#endif /* _HIDPI_NO_FUNCTION_MACROS_ */
_IRQL_requires_max_(DISPATCH_LEVEL)HIDAPIULONGNTAPIHidP_MaxDataListLength( _In_ HIDP_REPORT_TYPE ReportType, _In_ PHIDP_PREPARSED_DATA PreparsedData);
_IRQL_requires_max_(PASSIVE_LEVEL)HIDAPIULONGNTAPIHidP_MaxUsageListLength( _In_ HIDP_REPORT_TYPE ReportType, _In_ USAGE UsagePage, _In_ PHIDP_PREPARSED_DATA PreparsedData);
#if !defined(_HIDPI_NO_FUNCTION_MACROS_)
/* * NTSTATUS * HidP_SetButtons( * IN HIDP_REPORT_TYPE ReportType, * IN USAGE UsagePage, * IN USHORT LinkCollection, * IN PUSAGE UsageList, * IN OUT PULONG UsageLength, * IN PHIDP_PREPARSED_DATA PreparsedData, * IN OUT PCHAR Report, * IN ULONG ReportLength); */#define HidP_SetButtons(RT, UP, LC, UL1, UL2, PD, R, RL) \ HidP_SetUsages(RT, UP, LC, UL1, UL2, PD, R, RL)
#endif /* _HIDPI_NO_FUNCTION_MACROS_ */
_Must_inspect_result_HIDAPINTSTATUSNTAPIHidP_SetData( _In_ HIDP_REPORT_TYPE ReportType, _Inout_updates_to_(*DataLength, *DataLength) PHIDP_DATA DataList, _Inout_ PULONG DataLength, _In_ PHIDP_PREPARSED_DATA PreparsedData, _In_reads_bytes_(ReportLength) PCHAR Report, _In_ ULONG ReportLength);
_Must_inspect_result_HIDAPINTSTATUSNTAPIHidP_SetScaledUsageValue( _In_ HIDP_REPORT_TYPE ReportType, _In_ USAGE UsagePage, _In_ USHORT LinkCollection, _In_ USAGE Usage, _In_ LONG UsageValue, _In_ PHIDP_PREPARSED_DATA PreparsedData, _Inout_updates_bytes_(ReportLength) PCHAR Report, _In_ ULONG ReportLength);
_Must_inspect_result_HIDAPINTSTATUSNTAPIHidP_SetUsages( _In_ HIDP_REPORT_TYPE ReportType, _In_ USAGE UsagePage, _In_ USHORT LinkCollection, /* Optional */ _Inout_updates_to_(*UsageLength, *UsageLength) PUSAGE UsageList, _Inout_ PULONG UsageLength, _In_ PHIDP_PREPARSED_DATA PreparsedData, _In_reads_bytes_(ReportLength) PCHAR Report, _In_ ULONG ReportLength);
_Must_inspect_result_HIDAPINTSTATUSNTAPIHidP_SetUsageValue( _In_ HIDP_REPORT_TYPE ReportType, _In_ USAGE UsagePage, _In_ USHORT LinkCollection, _In_ USAGE Usage, _In_ ULONG UsageValue, _In_ PHIDP_PREPARSED_DATA PreparsedData, _Inout_updates_bytes_(ReportLength) PCHAR Report, _In_ ULONG ReportLength);
_Must_inspect_result_HIDAPINTSTATUSNTAPIHidP_SetUsageValueArray( _In_ HIDP_REPORT_TYPE ReportType, _In_ USAGE UsagePage, _In_ USHORT LinkCollection, _In_ USAGE Usage, _In_reads_bytes_(UsageValueByteLength) PCHAR UsageValue, _In_ USHORT UsageValueByteLength, _In_ PHIDP_PREPARSED_DATA PreparsedData, _Inout_updates_bytes_(ReportLength) PCHAR Report, _In_ ULONG ReportLength);
#if !defined(_HIDPI_NO_FUNCTION_MACROS_)
/* * NTSTATUS * HidP_UnsetButtons( * IN HIDP_REPORT_TYPE ReportType, * IN USAGE UsagePage, * IN USHORT LinkCollection, * IN PUSAGE UsageList, * IN OUT PULONG UsageLength, * IN PHIDP_PREPARSED_DATA PreparsedData, * IN OUT PCHAR Report, * IN ULONG ReportLength); */#define HidP_UnsetButtons(RT, UP, LC, UL1, UL2, PD, R, RL) \ HidP_UnsetUsages(RT, UP, LC, UL1, UL2, PD, R, RL)
#endif /* _HIDPI_NO_FUNCTION_MACROS_ */
_Must_inspect_result_HIDAPINTSTATUSNTAPIHidP_UnsetUsages( _In_ HIDP_REPORT_TYPE ReportType, _In_ USAGE UsagePage, _In_opt_ USHORT LinkCollection, _Inout_updates_to_(*UsageLength, *UsageLength) PUSAGE UsageList, _Inout_ PULONG UsageLength, _In_ PHIDP_PREPARSED_DATA PreparsedData, _In_reads_bytes_(ReportLength) PCHAR Report, _In_ ULONG ReportLength);
_Must_inspect_result__IRQL_requires_max_(PASSIVE_LEVEL)HIDAPINTSTATUSNTAPIHidP_UsageAndPageListDifference( _In_reads_(UsageListLength) PUSAGE_AND_PAGE PreviousUsageList, _In_reads_(UsageListLength) PUSAGE_AND_PAGE CurrentUsageList, _Out_writes_(UsageListLength) PUSAGE_AND_PAGE BreakUsageList, _Out_writes_(UsageListLength) PUSAGE_AND_PAGE MakeUsageList, _In_ ULONG UsageListLength);
_Must_inspect_result__IRQL_requires_max_(PASSIVE_LEVEL)HIDAPINTSTATUSNTAPIHidP_UsageListDifference( _In_reads_(UsageListLength) PUSAGE PreviousUsageList, _In_reads_(UsageListLength) PUSAGE CurrentUsageList, _Out_writes_(UsageListLength) PUSAGE BreakUsageList, _Out_writes_(UsageListLength) PUSAGE MakeUsageList, _In_ ULONG UsageListLength);
#ifdef __cplusplus}#endif
#endif /* __HIDPI_H__ */