ReactOS  0.4.15-dev-488-gc7a1924
hidp.c File Reference
#include <ntddk.h>
#include <hidpddi.h>
#include "hidparser.h"
#include "hidp.h"
Include dependency graph for hidp.c:

Go to the source code of this file.

Macros

#define _HIDPI_
 
#define _HIDPI_NO_FUNCTION_MACROS_
 
#define UNIMPLEMENTED   DebugFunction("%s is UNIMPLEMENTED\n", __FUNCTION__)
 

Functions

VOID NTAPI HidP_FreeCollectionDescription (IN PHIDP_DEVICE_DESC DeviceDescription)
 
HIDAPI NTSTATUS NTAPI HidP_GetCaps (IN PHIDP_PREPARSED_DATA PreparsedData, OUT PHIDP_CAPS Capabilities)
 
NTSTATUS TranslateStatusForUpperLayer (IN NTSTATUS Status)
 
NTSTATUS NTAPI HidP_GetCollectionDescription (IN PHIDP_REPORT_DESCRIPTOR ReportDesc, IN ULONG DescLength, IN POOL_TYPE PoolType, OUT PHIDP_DEVICE_DESC DeviceDescription)
 
HIDAPI ULONG NTAPI HidP_MaxUsageListLength (IN HIDP_REPORT_TYPE ReportType, IN USAGE UsagePage OPTIONAL, IN PHIDP_PREPARSED_DATA PreparsedData)
 
HIDAPI NTSTATUS NTAPI HidP_GetSpecificValueCaps (IN HIDP_REPORT_TYPE ReportType, IN USAGE UsagePage, IN USHORT LinkCollection, IN USAGE Usage, OUT PHIDP_VALUE_CAPS ValueCaps, IN OUT PUSHORT ValueCapsLength, IN PHIDP_PREPARSED_DATA PreparsedData)
 
HIDAPI NTSTATUS NTAPI HidP_GetUsages (IN HIDP_REPORT_TYPE ReportType, IN USAGE UsagePage, IN USHORT LinkCollection OPTIONAL, OUT PUSAGE UsageList, IN OUT PULONG UsageLength, IN PHIDP_PREPARSED_DATA PreparsedData, IN PCHAR Report, IN ULONG ReportLength)
 
HIDAPI NTSTATUS NTAPI HidP_UsageListDifference (IN PUSAGE PreviousUsageList, IN PUSAGE CurrentUsageList, OUT PUSAGE BreakUsageList, OUT PUSAGE MakeUsageList, IN ULONG UsageListLength)
 
HIDAPI NTSTATUS NTAPI HidP_GetUsagesEx (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)
 
HIDAPI NTSTATUS NTAPI HidP_UsageAndPageListDifference (IN PUSAGE_AND_PAGE PreviousUsageList, IN PUSAGE_AND_PAGE CurrentUsageList, OUT PUSAGE_AND_PAGE BreakUsageList, OUT PUSAGE_AND_PAGE MakeUsageList, IN ULONG UsageListLength)
 
HIDAPI NTSTATUS NTAPI HidP_GetScaledUsageValue (IN HIDP_REPORT_TYPE ReportType, IN USAGE UsagePage, IN USHORT LinkCollection OPTIONAL, IN USAGE Usage, OUT PLONG UsageValue, IN PHIDP_PREPARSED_DATA PreparsedData, IN PCHAR Report, IN ULONG ReportLength)
 
HIDAPI NTSTATUS NTAPI HidP_GetUsageValue (IN HIDP_REPORT_TYPE ReportType, IN USAGE UsagePage, IN USHORT LinkCollection, IN USAGE Usage, OUT PULONG UsageValue, IN PHIDP_PREPARSED_DATA PreparsedData, IN PCHAR Report, IN ULONG ReportLength)
 
HIDAPI NTSTATUS NTAPI HidP_TranslateUsageAndPagesToI8042ScanCodes (IN PUSAGE_AND_PAGE ChangedUsageList, IN ULONG UsageListLength, IN HIDP_KEYBOARD_DIRECTION KeyAction, IN OUT PHIDP_KEYBOARD_MODIFIER_STATE ModifierState, IN PHIDP_INSERT_SCANCODES InsertCodesProcedure, IN PVOID InsertCodesContext)
 
HIDAPI NTSTATUS NTAPI HidP_GetButtonCaps (HIDP_REPORT_TYPE ReportType, PHIDP_BUTTON_CAPS ButtonCaps, PUSHORT ButtonCapsLength, PHIDP_PREPARSED_DATA PreparsedData)
 
HIDAPI NTSTATUS NTAPI HidP_GetSpecificButtonCaps (IN HIDP_REPORT_TYPE ReportType, IN USAGE UsagePage, IN USHORT LinkCollection, IN USAGE Usage, OUT PHIDP_BUTTON_CAPS ButtonCaps, IN OUT PUSHORT ButtonCapsLength, IN PHIDP_PREPARSED_DATA PreparsedData)
 
HIDAPI NTSTATUS NTAPI HidP_GetData (IN HIDP_REPORT_TYPE ReportType, OUT PHIDP_DATA DataList, IN OUT PULONG DataLength, IN PHIDP_PREPARSED_DATA PreparsedData, IN PCHAR Report, IN ULONG ReportLength)
 
HIDAPI NTSTATUS NTAPI HidP_GetExtendedAttributes (IN HIDP_REPORT_TYPE ReportType, IN USHORT DataIndex, IN PHIDP_PREPARSED_DATA PreparsedData, OUT PHIDP_EXTENDED_ATTRIBUTES Attributes, IN OUT PULONG LengthAttributes)
 
HIDAPI NTSTATUS NTAPI HidP_GetLinkCollectionNodes (OUT PHIDP_LINK_COLLECTION_NODE LinkCollectionNodes, IN OUT PULONG LinkCollectionNodesLength, IN PHIDP_PREPARSED_DATA PreparsedData)
 
NTSTATUS NTAPI HidP_SysPowerEvent (IN PCHAR HidPacket, IN USHORT HidPacketLength, IN PHIDP_PREPARSED_DATA Ppd, OUT PULONG OutputBuffer)
 
NTSTATUS NTAPI HidP_SysPowerCaps (IN PHIDP_PREPARSED_DATA Ppd, OUT PULONG OutputBuffer)
 
HIDAPI NTSTATUS NTAPI HidP_GetUsageValueArray (IN HIDP_REPORT_TYPE ReportType, IN USAGE UsagePage, IN USHORT LinkCollection OPTIONAL, IN USAGE Usage, OUT PCHAR UsageValue, IN USHORT UsageValueByteLength, IN PHIDP_PREPARSED_DATA PreparsedData, IN PCHAR Report, IN ULONG ReportLength)
 
HIDAPI NTSTATUS NTAPI HidP_UnsetUsages (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)
 
HIDAPI NTSTATUS NTAPI HidP_TranslateUsagesToI8042ScanCodes (IN PUSAGE ChangedUsageList, IN ULONG UsageListLength, IN HIDP_KEYBOARD_DIRECTION KeyAction, IN OUT PHIDP_KEYBOARD_MODIFIER_STATE ModifierState, IN PHIDP_INSERT_SCANCODES InsertCodesProcedure, IN PVOID InsertCodesContext)
 
HIDAPI NTSTATUS NTAPI HidP_SetUsages (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)
 
HIDAPI NTSTATUS NTAPI HidP_SetUsageValueArray (IN HIDP_REPORT_TYPE ReportType, IN USAGE UsagePage, IN USHORT LinkCollection OPTIONAL, IN USAGE Usage, IN PCHAR UsageValue, IN USHORT UsageValueByteLength, IN PHIDP_PREPARSED_DATA PreparsedData, OUT PCHAR Report, IN ULONG ReportLength)
 
HIDAPI NTSTATUS NTAPI HidP_SetUsageValue (IN HIDP_REPORT_TYPE ReportType, IN USAGE UsagePage, IN USHORT LinkCollection, IN USAGE Usage, IN ULONG UsageValue, IN PHIDP_PREPARSED_DATA PreparsedData, IN OUT PCHAR Report, IN ULONG ReportLength)
 
HIDAPI NTSTATUS NTAPI HidP_SetScaledUsageValue (IN HIDP_REPORT_TYPE ReportType, IN USAGE UsagePage, IN USHORT LinkCollection OPTIONAL, IN USAGE Usage, IN LONG UsageValue, IN PHIDP_PREPARSED_DATA PreparsedData, IN OUT PCHAR Report, IN ULONG ReportLength)
 
HIDAPI NTSTATUS NTAPI HidP_SetData (IN HIDP_REPORT_TYPE ReportType, IN PHIDP_DATA DataList, IN OUT PULONG DataLength, IN PHIDP_PREPARSED_DATA PreparsedData, IN OUT PCHAR Report, IN ULONG ReportLength)
 
HIDAPI ULONG NTAPI HidP_MaxDataListLength (IN HIDP_REPORT_TYPE ReportType, IN PHIDP_PREPARSED_DATA PreparsedData)
 
HIDAPI NTSTATUS NTAPI HidP_InitializeReportForID (IN HIDP_REPORT_TYPE ReportType, IN UCHAR ReportID, IN PHIDP_PREPARSED_DATA PreparsedData, IN OUT PCHAR Report, IN ULONG ReportLength)
 
HIDAPI NTSTATUS NTAPI HidP_GetValueCaps (HIDP_REPORT_TYPE ReportType, PHIDP_VALUE_CAPS ValueCaps, PUSHORT ValueCapsLength, PHIDP_PREPARSED_DATA PreparsedData)
 

Macro Definition Documentation

◆ _HIDPI_

#define _HIDPI_

Definition at line 1 of file hidp.c.

◆ _HIDPI_NO_FUNCTION_MACROS_

#define _HIDPI_NO_FUNCTION_MACROS_

Definition at line 2 of file hidp.c.

◆ UNIMPLEMENTED

#define UNIMPLEMENTED   DebugFunction("%s is UNIMPLEMENTED\n", __FUNCTION__)

Definition at line 9 of file hidp.c.

Function Documentation

◆ HidP_FreeCollectionDescription()

VOID NTAPI HidP_FreeCollectionDescription ( IN PHIDP_DEVICE_DESC  DeviceDescription)

Definition at line 13 of file hidp.c.

15 {
16  //
17  // free collection
18  //
20 }
VOID NTAPI HidParser_FreeCollectionDescription(IN PHIDP_DEVICE_DESC DeviceDescription)
Definition: hidparser.c:163
_Must_inspect_result_ _In_ PDEVICE_DESCRIPTION DeviceDescription
Definition: iofuncs.h:1015

Referenced by TestGetCollectionDescription().

◆ HidP_GetButtonCaps()

HIDAPI NTSTATUS NTAPI HidP_GetButtonCaps ( HIDP_REPORT_TYPE  ReportType,
PHIDP_BUTTON_CAPS  ButtonCaps,
PUSHORT  ButtonCapsLength,
PHIDP_PREPARSED_DATA  PreparsedData 
)

Definition at line 255 of file hidp.c.

260 {
262 }
_Must_inspect_result_ _Out_writes_to_ DataLength PHIDP_DATA _Inout_ PULONG _In_ PHIDP_PREPARSED_DATA PreparsedData
Definition: hidpi.h:333
_Must_inspect_result_ _In_ USAGE _In_ USHORT _In_ USAGE _Out_ PHIDP_BUTTON_CAPS _Inout_ PUSHORT ButtonCapsLength
Definition: hidpi.h:382
_Must_inspect_result_ _In_ USAGE _In_ USHORT _In_ USAGE _Out_ PHIDP_BUTTON_CAPS ButtonCaps
Definition: hidpi.h:382
#define HID_USAGE_PAGE_UNDEFINED
Definition: hidusage.h:175
HIDAPI NTSTATUS NTAPI HidP_GetSpecificButtonCaps(IN HIDP_REPORT_TYPE ReportType, IN USAGE UsagePage, IN USHORT LinkCollection, IN USAGE Usage, OUT PHIDP_BUTTON_CAPS ButtonCaps, IN OUT PUSHORT ButtonCapsLength, IN PHIDP_PREPARSED_DATA PreparsedData)
Definition: hidp.c:267

◆ HidP_GetCaps()

HIDAPI NTSTATUS NTAPI HidP_GetCaps ( IN PHIDP_PREPARSED_DATA  PreparsedData,
OUT PHIDP_CAPS  Capabilities 
)

Definition at line 26 of file hidp.c.

29 {
30  //
31  // get caps
32  //
34 }
_Must_inspect_result_ _Out_writes_to_ DataLength PHIDP_DATA _Inout_ PULONG _In_ PHIDP_PREPARSED_DATA PreparsedData
Definition: hidpi.h:333
_Must_inspect_result_ typedef _Out_ PHIDP_CAPS Capabilities
Definition: hidclass.h:103
HIDAPI NTSTATUS NTAPI HidParser_GetCaps(IN PVOID CollectionContext, OUT PHIDP_CAPS Capabilities)
Definition: hidparser.c:193

Referenced by get_device(), KbdHid_StartDevice(), MouHid_StartDevice(), test_device_info(), test_get_input_report(), and test_read_device().

◆ HidP_GetCollectionDescription()

NTSTATUS NTAPI HidP_GetCollectionDescription ( IN PHIDP_REPORT_DESCRIPTOR  ReportDesc,
IN ULONG  DescLength,
IN POOL_TYPE  PoolType,
OUT PHIDP_DEVICE_DESC  DeviceDescription 
)

Definition at line 61 of file hidp.c.

66 {
68 
69  //
70  // get description;
71  //
74 }
NTSTATUS TranslateStatusForUpperLayer(IN NTSTATUS Status)
Definition: hidp.c:37
NTSTATUS NTAPI HidParser_GetCollectionDescription(IN PHIDP_REPORT_DESCRIPTOR ReportDesc, IN ULONG DescLength, IN POOL_TYPE PoolType, OUT PHIDP_DEVICE_DESC DeviceDescription)
Definition: hidparser.c:18
LONG NTSTATUS
Definition: precomp.h:26
_Must_inspect_result_ _In_ PDEVICE_DESCRIPTION DeviceDescription
Definition: iofuncs.h:1015
Status
Definition: gdiplustypes.h:24
_Must_inspect_result_ _In_ FLT_CONTEXT_TYPE _In_ SIZE_T _In_ POOL_TYPE PoolType
Definition: fltkernel.h:1444

Referenced by HidClassFDO_StartDevice(), and TestGetCollectionDescription().

◆ HidP_GetData()

HIDAPI NTSTATUS NTAPI HidP_GetData ( IN HIDP_REPORT_TYPE  ReportType,
OUT PHIDP_DATA  DataList,
IN OUT PULONG  DataLength,
IN PHIDP_PREPARSED_DATA  PreparsedData,
IN PCHAR  Report,
IN ULONG  ReportLength 
)

Definition at line 284 of file hidp.c.

291 {
293  ASSERT(FALSE);
294  return STATUS_NOT_IMPLEMENTED;
295 }
#define STATUS_NOT_IMPLEMENTED
Definition: ntstatus.h:225
ASSERT((InvokeOnSuccess||InvokeOnError||InvokeOnCancel) ?(CompletionRoutine !=NULL) :TRUE)
#define UNIMPLEMENTED
Definition: hidp.c:9

◆ HidP_GetExtendedAttributes()

HIDAPI NTSTATUS NTAPI HidP_GetExtendedAttributes ( IN HIDP_REPORT_TYPE  ReportType,
IN USHORT  DataIndex,
IN PHIDP_PREPARSED_DATA  PreparsedData,
OUT PHIDP_EXTENDED_ATTRIBUTES  Attributes,
IN OUT PULONG  LengthAttributes 
)

Definition at line 300 of file hidp.c.

306 {
308  ASSERT(FALSE);
309  return STATUS_NOT_IMPLEMENTED;
310 }
#define STATUS_NOT_IMPLEMENTED
Definition: ntstatus.h:225
ASSERT((InvokeOnSuccess||InvokeOnError||InvokeOnCancel) ?(CompletionRoutine !=NULL) :TRUE)
#define UNIMPLEMENTED
Definition: hidp.c:9

◆ HidP_GetLinkCollectionNodes()

HIDAPI NTSTATUS NTAPI HidP_GetLinkCollectionNodes ( OUT PHIDP_LINK_COLLECTION_NODE  LinkCollectionNodes,
IN OUT PULONG  LinkCollectionNodesLength,
IN PHIDP_PREPARSED_DATA  PreparsedData 
)

Definition at line 315 of file hidp.c.

319 {
321  ASSERT(FALSE);
322  return STATUS_NOT_IMPLEMENTED;
323 }
#define STATUS_NOT_IMPLEMENTED
Definition: ntstatus.h:225
ASSERT((InvokeOnSuccess||InvokeOnError||InvokeOnCancel) ?(CompletionRoutine !=NULL) :TRUE)
#define UNIMPLEMENTED
Definition: hidp.c:9

◆ HidP_GetScaledUsageValue()

HIDAPI NTSTATUS NTAPI HidP_GetScaledUsageValue ( IN HIDP_REPORT_TYPE  ReportType,
IN USAGE  UsagePage,
IN USHORT LinkCollection  OPTIONAL,
IN USAGE  Usage,
OUT PLONG  UsageValue,
IN PHIDP_PREPARSED_DATA  PreparsedData,
IN PCHAR  Report,
IN ULONG  ReportLength 
)

Definition at line 189 of file hidp.c.

198 {
199  //
200  // sanity check
201  //
202  ASSERT(ReportType == HidP_Input || ReportType == HidP_Output || ReportType == HidP_Feature);
203 
204  //
205  // get scaled usage value
206  //
207  return HidParser_GetScaledUsageValue(PreparsedData, ReportType, UsagePage, LinkCollection, Usage, UsageValue, Report, ReportLength);
208 }
_Must_inspect_result_ _Out_writes_to_ DataLength PHIDP_DATA _Inout_ PULONG _In_ PHIDP_PREPARSED_DATA PreparsedData
Definition: hidpi.h:333
_Must_inspect_result_ _In_ USAGE _In_ USHORT _In_ USAGE Usage
Definition: hidpi.h:382
HIDAPI NTSTATUS NTAPI HidParser_GetScaledUsageValue(IN PVOID CollectionContext, IN HIDP_REPORT_TYPE ReportType, IN USAGE UsagePage, IN USHORT LinkCollection OPTIONAL, IN USAGE Usage, OUT PLONG UsageValue, IN PCHAR Report, IN ULONG ReportLength)
Definition: hidparser.c:559
_Must_inspect_result_ _In_ USAGE UsagePage
Definition: hidpi.h:382
ASSERT((InvokeOnSuccess||InvokeOnError||InvokeOnCancel) ?(CompletionRoutine !=NULL) :TRUE)
_Must_inspect_result_ _Out_writes_to_ DataLength PHIDP_DATA _Inout_ PULONG _In_ PHIDP_PREPARSED_DATA _In_ ULONG ReportLength
Definition: hidpi.h:337
_Must_inspect_result_ _In_ USAGE _In_ USHORT LinkCollection
Definition: hidpi.h:382

◆ HidP_GetSpecificButtonCaps()

HIDAPI NTSTATUS NTAPI HidP_GetSpecificButtonCaps ( IN HIDP_REPORT_TYPE  ReportType,
IN USAGE  UsagePage,
IN USHORT  LinkCollection,
IN USAGE  Usage,
OUT PHIDP_BUTTON_CAPS  ButtonCaps,
IN OUT PUSHORT  ButtonCapsLength,
IN PHIDP_PREPARSED_DATA  PreparsedData 
)

Definition at line 267 of file hidp.c.

275 {
277  ASSERT(FALSE);
278  return STATUS_NOT_IMPLEMENTED;
279 }
#define STATUS_NOT_IMPLEMENTED
Definition: ntstatus.h:225
ASSERT((InvokeOnSuccess||InvokeOnError||InvokeOnCancel) ?(CompletionRoutine !=NULL) :TRUE)
#define UNIMPLEMENTED
Definition: hidp.c:9

Referenced by HidP_GetButtonCaps().

◆ HidP_GetSpecificValueCaps()

HIDAPI NTSTATUS NTAPI HidP_GetSpecificValueCaps ( IN HIDP_REPORT_TYPE  ReportType,
IN USAGE  UsagePage,
IN USHORT  LinkCollection,
IN USAGE  Usage,
OUT PHIDP_VALUE_CAPS  ValueCaps,
IN OUT PUSHORT  ValueCapsLength,
IN PHIDP_PREPARSED_DATA  PreparsedData 
)

Definition at line 98 of file hidp.c.

106 {
107  //
108  // sanity check
109  //
110  ASSERT(ReportType == HidP_Input || ReportType == HidP_Output || ReportType == HidP_Feature);
111 
112  //
113  // get value caps
114  //
116 }
_Must_inspect_result_ _Out_writes_to_ DataLength PHIDP_DATA _Inout_ PULONG _In_ PHIDP_PREPARSED_DATA PreparsedData
Definition: hidpi.h:333
_Must_inspect_result_ _In_ USAGE _In_ USHORT _In_ USAGE Usage
Definition: hidpi.h:382
_Must_inspect_result_ _In_ USAGE _In_ USHORT _In_ USAGE _Out_ PHIDP_VALUE_CAPS ValueCaps
Definition: hidpi.h:396
_Must_inspect_result_ _In_ USAGE UsagePage
Definition: hidpi.h:382
ASSERT((InvokeOnSuccess||InvokeOnError||InvokeOnCancel) ?(CompletionRoutine !=NULL) :TRUE)
HIDAPI NTSTATUS NTAPI HidParser_GetSpecificValueCaps(IN PVOID CollectionContext, IN HIDP_REPORT_TYPE ReportType, IN USAGE UsagePage, IN USHORT LinkCollection, IN USAGE Usage, OUT PHIDP_VALUE_CAPS ValueCaps, IN OUT PUSHORT ValueCapsLength)
Definition: hidparser.c:321
_Must_inspect_result_ _In_ USAGE _In_ USHORT LinkCollection
Definition: hidpi.h:382
_Must_inspect_result_ _In_ USAGE _In_ USHORT _In_ USAGE _Out_ PHIDP_VALUE_CAPS _Inout_ PUSHORT ValueCapsLength
Definition: hidpi.h:396

Referenced by HidP_GetValueCaps(), and MouHid_StartDevice().

◆ HidP_GetUsages()

HIDAPI NTSTATUS NTAPI HidP_GetUsages ( IN HIDP_REPORT_TYPE  ReportType,
IN USAGE  UsagePage,
IN USHORT LinkCollection  OPTIONAL,
OUT PUSAGE  UsageList,
IN OUT PULONG  UsageLength,
IN PHIDP_PREPARSED_DATA  PreparsedData,
IN PCHAR  Report,
IN ULONG  ReportLength 
)

Definition at line 121 of file hidp.c.

130 {
131  //
132  // sanity check
133  //
134  ASSERT(ReportType == HidP_Input || ReportType == HidP_Output || ReportType == HidP_Feature);
135 
136  //
137  // get usages
138  //
139  return HidParser_GetUsages(PreparsedData, ReportType, UsagePage, LinkCollection, UsageList, UsageLength, Report, ReportLength);
140 }
_Must_inspect_result_ _Out_writes_to_ DataLength PHIDP_DATA _Inout_ PULONG _In_ PHIDP_PREPARSED_DATA PreparsedData
Definition: hidpi.h:333
HIDAPI NTSTATUS NTAPI HidParser_GetUsages(IN PVOID CollectionContext, IN HIDP_REPORT_TYPE ReportType, IN USAGE UsagePage, IN USHORT LinkCollection OPTIONAL, OUT USAGE *UsageList, IN OUT PULONG UsageLength, IN PCHAR Report, IN ULONG ReportLength)
Definition: hidparser.c:504
_Must_inspect_result_ _In_ USHORT _Inout_updates_to_ UsageLength PUSAGE_AND_PAGE _Inout_ ULONG * UsageLength
Definition: hidpi.h:425
_Must_inspect_result_ _In_ USAGE UsagePage
Definition: hidpi.h:382
ASSERT((InvokeOnSuccess||InvokeOnError||InvokeOnCancel) ?(CompletionRoutine !=NULL) :TRUE)
_Must_inspect_result_ _Out_writes_to_ DataLength PHIDP_DATA _Inout_ PULONG _In_ PHIDP_PREPARSED_DATA _In_ ULONG ReportLength
Definition: hidpi.h:337
_Must_inspect_result_ _In_ USAGE _In_ USHORT LinkCollection
Definition: hidpi.h:382

Referenced by HidP_GetUsagesEx().

◆ HidP_GetUsagesEx()

HIDAPI NTSTATUS NTAPI HidP_GetUsagesEx ( 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 
)

Definition at line 161 of file hidp.c.

169 {
171 }
HIDAPI NTSTATUS NTAPI HidP_GetUsages(IN HIDP_REPORT_TYPE ReportType, IN USAGE UsagePage, IN USHORT LinkCollection OPTIONAL, OUT PUSAGE UsageList, IN OUT PULONG UsageLength, IN PHIDP_PREPARSED_DATA PreparsedData, IN PCHAR Report, IN ULONG ReportLength)
Definition: hidp.c:121
_Must_inspect_result_ _Out_writes_to_ DataLength PHIDP_DATA _Inout_ PULONG _In_ PHIDP_PREPARSED_DATA PreparsedData
Definition: hidpi.h:333
USAGE Usage
Definition: hidpi.h:79
_Must_inspect_result_ _In_ USHORT _Inout_updates_to_ UsageLength PUSAGE_AND_PAGE _Inout_ ULONG * UsageLength
Definition: hidpi.h:425
_Must_inspect_result_ _In_ USHORT _Inout_updates_to_ UsageLength PUSAGE_AND_PAGE ButtonList
Definition: hidpi.h:425
_Must_inspect_result_ _Out_writes_to_ DataLength PHIDP_DATA _Inout_ PULONG _In_ PHIDP_PREPARSED_DATA _In_ ULONG ReportLength
Definition: hidpi.h:337
_Must_inspect_result_ _In_ USAGE _In_ USHORT LinkCollection
Definition: hidpi.h:382
#define HID_USAGE_PAGE_UNDEFINED
Definition: hidusage.h:175

Referenced by KbdHid_ReadCompletion().

◆ HidP_GetUsageValue()

HIDAPI NTSTATUS NTAPI HidP_GetUsageValue ( IN HIDP_REPORT_TYPE  ReportType,
IN USAGE  UsagePage,
IN USHORT  LinkCollection,
IN USAGE  Usage,
OUT PULONG  UsageValue,
IN PHIDP_PREPARSED_DATA  PreparsedData,
IN PCHAR  Report,
IN ULONG  ReportLength 
)

Definition at line 213 of file hidp.c.

222 {
223  //
224  // sanity check
225  //
226  ASSERT(ReportType == HidP_Input || ReportType == HidP_Output || ReportType == HidP_Feature);
227 
228  //
229  // get scaled usage value
230  //
231  return HidParser_GetUsageValue(PreparsedData, ReportType, UsagePage, LinkCollection, Usage, UsageValue, Report, ReportLength);
232 }
_Must_inspect_result_ _Out_writes_to_ DataLength PHIDP_DATA _Inout_ PULONG _In_ PHIDP_PREPARSED_DATA PreparsedData
Definition: hidpi.h:333
_Must_inspect_result_ _In_ USAGE _In_ USHORT _In_ USAGE Usage
Definition: hidpi.h:382
HIDAPI NTSTATUS NTAPI HidParser_GetUsageValue(IN PVOID CollectionContext, IN HIDP_REPORT_TYPE ReportType, IN USAGE UsagePage, IN USHORT LinkCollection, IN USAGE Usage, OUT PULONG UsageValue, IN PCHAR Report, IN ULONG ReportLength)
Definition: hidparser.c:880
_Must_inspect_result_ _In_ USAGE UsagePage
Definition: hidpi.h:382
ASSERT((InvokeOnSuccess||InvokeOnError||InvokeOnCancel) ?(CompletionRoutine !=NULL) :TRUE)
_Must_inspect_result_ _Out_writes_to_ DataLength PHIDP_DATA _Inout_ PULONG _In_ PHIDP_PREPARSED_DATA _In_ ULONG ReportLength
Definition: hidpi.h:337
_Must_inspect_result_ _In_ USAGE _In_ USHORT LinkCollection
Definition: hidpi.h:382

◆ HidP_GetUsageValueArray()

HIDAPI NTSTATUS NTAPI HidP_GetUsageValueArray ( IN HIDP_REPORT_TYPE  ReportType,
IN USAGE  UsagePage,
IN USHORT LinkCollection  OPTIONAL,
IN USAGE  Usage,
OUT PCHAR  UsageValue,
IN USHORT  UsageValueByteLength,
IN PHIDP_PREPARSED_DATA  PreparsedData,
IN PCHAR  Report,
IN ULONG  ReportLength 
)

Definition at line 352 of file hidp.c.

362 {
364  ASSERT(FALSE);
365  return STATUS_NOT_IMPLEMENTED;
366 }
#define STATUS_NOT_IMPLEMENTED
Definition: ntstatus.h:225
ASSERT((InvokeOnSuccess||InvokeOnError||InvokeOnCancel) ?(CompletionRoutine !=NULL) :TRUE)
#define UNIMPLEMENTED
Definition: hidp.c:9

◆ HidP_GetValueCaps()

HIDAPI NTSTATUS NTAPI HidP_GetValueCaps ( HIDP_REPORT_TYPE  ReportType,
PHIDP_VALUE_CAPS  ValueCaps,
PUSHORT  ValueCapsLength,
PHIDP_PREPARSED_DATA  PreparsedData 
)

Definition at line 524 of file hidp.c.

529 {
530  return HidP_GetSpecificValueCaps(ReportType,
533  0,
534  ValueCaps,
536  PreparsedData);
537 }
_Must_inspect_result_ _Out_writes_to_ DataLength PHIDP_DATA _Inout_ PULONG _In_ PHIDP_PREPARSED_DATA PreparsedData
Definition: hidpi.h:333
_Must_inspect_result_ _In_ USAGE _In_ USHORT _In_ USAGE _Out_ PHIDP_VALUE_CAPS ValueCaps
Definition: hidpi.h:396
HIDAPI NTSTATUS NTAPI HidP_GetSpecificValueCaps(IN HIDP_REPORT_TYPE ReportType, IN USAGE UsagePage, IN USHORT LinkCollection, IN USAGE Usage, OUT PHIDP_VALUE_CAPS ValueCaps, IN OUT PUSHORT ValueCapsLength, IN PHIDP_PREPARSED_DATA PreparsedData)
Definition: hidp.c:98
#define HIDP_LINK_COLLECTION_UNSPECIFIED
Definition: hidpi.h:185
#define HID_USAGE_PAGE_UNDEFINED
Definition: hidusage.h:175
_Must_inspect_result_ _In_ USAGE _In_ USHORT _In_ USAGE _Out_ PHIDP_VALUE_CAPS _Inout_ PUSHORT ValueCapsLength
Definition: hidpi.h:396

Referenced by process_data().

◆ HidP_InitializeReportForID()

HIDAPI NTSTATUS NTAPI HidP_InitializeReportForID ( IN HIDP_REPORT_TYPE  ReportType,
IN UCHAR  ReportID,
IN PHIDP_PREPARSED_DATA  PreparsedData,
IN OUT PCHAR  Report,
IN ULONG  ReportLength 
)

Definition at line 507 of file hidp.c.

513 {
515  ASSERT(FALSE);
516  return STATUS_NOT_IMPLEMENTED;
517 }
#define STATUS_NOT_IMPLEMENTED
Definition: ntstatus.h:225
ASSERT((InvokeOnSuccess||InvokeOnError||InvokeOnCancel) ?(CompletionRoutine !=NULL) :TRUE)
#define UNIMPLEMENTED
Definition: hidp.c:9

◆ HidP_MaxDataListLength()

HIDAPI ULONG NTAPI HidP_MaxDataListLength ( IN HIDP_REPORT_TYPE  ReportType,
IN PHIDP_PREPARSED_DATA  PreparsedData 
)

Definition at line 495 of file hidp.c.

498 {
500  ASSERT(FALSE);
501  return STATUS_NOT_IMPLEMENTED;
502 }
#define STATUS_NOT_IMPLEMENTED
Definition: ntstatus.h:225
ASSERT((InvokeOnSuccess||InvokeOnError||InvokeOnCancel) ?(CompletionRoutine !=NULL) :TRUE)
#define UNIMPLEMENTED
Definition: hidp.c:9

◆ HidP_MaxUsageListLength()

HIDAPI ULONG NTAPI HidP_MaxUsageListLength ( IN HIDP_REPORT_TYPE  ReportType,
IN USAGE UsagePage  OPTIONAL,
IN PHIDP_PREPARSED_DATA  PreparsedData 
)

Definition at line 79 of file hidp.c.

83 {
84  //
85  // sanity check
86  //
87  ASSERT(ReportType == HidP_Input || ReportType == HidP_Output || ReportType == HidP_Feature);
88 
89  //
90  // get usage length
91  //
93 }
_Must_inspect_result_ _Out_writes_to_ DataLength PHIDP_DATA _Inout_ PULONG _In_ PHIDP_PREPARSED_DATA PreparsedData
Definition: hidpi.h:333
_Must_inspect_result_ _In_ USAGE UsagePage
Definition: hidpi.h:382
HIDAPI ULONG NTAPI HidParser_MaxUsageListLength(IN PVOID CollectionContext, IN HIDP_REPORT_TYPE ReportType, IN USAGE UsagePage OPTIONAL)
Definition: hidparser.c:253
ASSERT((InvokeOnSuccess||InvokeOnError||InvokeOnCancel) ?(CompletionRoutine !=NULL) :TRUE)

Referenced by KbdHid_StartDevice(), and MouHid_StartDevice().

◆ HidP_SetData()

HIDAPI NTSTATUS NTAPI HidP_SetData ( IN HIDP_REPORT_TYPE  ReportType,
IN PHIDP_DATA  DataList,
IN OUT PULONG  DataLength,
IN PHIDP_PREPARSED_DATA  PreparsedData,
IN OUT PCHAR  Report,
IN ULONG  ReportLength 
)

Definition at line 479 of file hidp.c.

486 {
488  ASSERT(FALSE);
489  return STATUS_NOT_IMPLEMENTED;
490 }
#define STATUS_NOT_IMPLEMENTED
Definition: ntstatus.h:225
ASSERT((InvokeOnSuccess||InvokeOnError||InvokeOnCancel) ?(CompletionRoutine !=NULL) :TRUE)
#define UNIMPLEMENTED
Definition: hidp.c:9

◆ HidP_SetScaledUsageValue()

HIDAPI NTSTATUS NTAPI HidP_SetScaledUsageValue ( IN HIDP_REPORT_TYPE  ReportType,
IN USAGE  UsagePage,
IN USHORT LinkCollection  OPTIONAL,
IN USAGE  Usage,
IN LONG  UsageValue,
IN PHIDP_PREPARSED_DATA  PreparsedData,
IN OUT PCHAR  Report,
IN ULONG  ReportLength 
)

Definition at line 461 of file hidp.c.

470 {
472  ASSERT(FALSE);
473  return STATUS_NOT_IMPLEMENTED;
474 }
#define STATUS_NOT_IMPLEMENTED
Definition: ntstatus.h:225
ASSERT((InvokeOnSuccess||InvokeOnError||InvokeOnCancel) ?(CompletionRoutine !=NULL) :TRUE)
#define UNIMPLEMENTED
Definition: hidp.c:9

◆ HidP_SetUsages()

HIDAPI NTSTATUS NTAPI HidP_SetUsages ( 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 
)

Definition at line 406 of file hidp.c.

415 {
417  ASSERT(FALSE);
418  return STATUS_NOT_IMPLEMENTED;
419 }
#define STATUS_NOT_IMPLEMENTED
Definition: ntstatus.h:225
ASSERT((InvokeOnSuccess||InvokeOnError||InvokeOnCancel) ?(CompletionRoutine !=NULL) :TRUE)
#define UNIMPLEMENTED
Definition: hidp.c:9

◆ HidP_SetUsageValue()

HIDAPI NTSTATUS NTAPI HidP_SetUsageValue ( IN HIDP_REPORT_TYPE  ReportType,
IN USAGE  UsagePage,
IN USHORT  LinkCollection,
IN USAGE  Usage,
IN ULONG  UsageValue,
IN PHIDP_PREPARSED_DATA  PreparsedData,
IN OUT PCHAR  Report,
IN ULONG  ReportLength 
)

Definition at line 443 of file hidp.c.

452 {
454  ASSERT(FALSE);
455  return STATUS_NOT_IMPLEMENTED;
456 }
#define STATUS_NOT_IMPLEMENTED
Definition: ntstatus.h:225
ASSERT((InvokeOnSuccess||InvokeOnError||InvokeOnCancel) ?(CompletionRoutine !=NULL) :TRUE)
#define UNIMPLEMENTED
Definition: hidp.c:9

◆ HidP_SetUsageValueArray()

HIDAPI NTSTATUS NTAPI HidP_SetUsageValueArray ( IN HIDP_REPORT_TYPE  ReportType,
IN USAGE  UsagePage,
IN USHORT LinkCollection  OPTIONAL,
IN USAGE  Usage,
IN PCHAR  UsageValue,
IN USHORT  UsageValueByteLength,
IN PHIDP_PREPARSED_DATA  PreparsedData,
OUT PCHAR  Report,
IN ULONG  ReportLength 
)

Definition at line 424 of file hidp.c.

434 {
436  ASSERT(FALSE);
437  return STATUS_NOT_IMPLEMENTED;
438 }
#define STATUS_NOT_IMPLEMENTED
Definition: ntstatus.h:225
ASSERT((InvokeOnSuccess||InvokeOnError||InvokeOnCancel) ?(CompletionRoutine !=NULL) :TRUE)
#define UNIMPLEMENTED
Definition: hidp.c:9

◆ HidP_SysPowerCaps()

NTSTATUS NTAPI HidP_SysPowerCaps ( IN PHIDP_PREPARSED_DATA  Ppd,
OUT PULONG  OutputBuffer 
)

Definition at line 340 of file hidp.c.

343 {
345  ASSERT(FALSE);
346  return STATUS_NOT_IMPLEMENTED;
347 }
#define STATUS_NOT_IMPLEMENTED
Definition: ntstatus.h:225
ASSERT((InvokeOnSuccess||InvokeOnError||InvokeOnCancel) ?(CompletionRoutine !=NULL) :TRUE)
#define UNIMPLEMENTED
Definition: hidp.c:9

◆ HidP_SysPowerEvent()

NTSTATUS NTAPI HidP_SysPowerEvent ( IN PCHAR  HidPacket,
IN USHORT  HidPacketLength,
IN PHIDP_PREPARSED_DATA  Ppd,
OUT PULONG  OutputBuffer 
)

Definition at line 327 of file hidp.c.

332 {
334  ASSERT(FALSE);
335  return STATUS_NOT_IMPLEMENTED;
336 }
#define STATUS_NOT_IMPLEMENTED
Definition: ntstatus.h:225
ASSERT((InvokeOnSuccess||InvokeOnError||InvokeOnCancel) ?(CompletionRoutine !=NULL) :TRUE)
#define UNIMPLEMENTED
Definition: hidp.c:9

◆ HidP_TranslateUsageAndPagesToI8042ScanCodes()

HIDAPI NTSTATUS NTAPI HidP_TranslateUsageAndPagesToI8042ScanCodes ( IN PUSAGE_AND_PAGE  ChangedUsageList,
IN ULONG  UsageListLength,
IN HIDP_KEYBOARD_DIRECTION  KeyAction,
IN OUT PHIDP_KEYBOARD_MODIFIER_STATE  ModifierState,
IN PHIDP_INSERT_SCANCODES  InsertCodesProcedure,
IN PVOID  InsertCodesContext 
)

Definition at line 238 of file hidp.c.

245 {
246  //
247  // translate usage pages
248  //
249  return HidParser_TranslateUsageAndPagesToI8042ScanCodes(ChangedUsageList, UsageListLength, KeyAction, ModifierState, InsertCodesProcedure, InsertCodesContext);
250 }
_Must_inspect_result_ _In_ ULONG UsageListLength
Definition: hidpi.h:647
HIDAPI NTSTATUS NTAPI HidParser_TranslateUsageAndPagesToI8042ScanCodes(IN PUSAGE_AND_PAGE ChangedUsageList, IN ULONG UsageListLength, IN HIDP_KEYBOARD_DIRECTION KeyAction, IN OUT PHIDP_KEYBOARD_MODIFIER_STATE ModifierState, IN PHIDP_INSERT_SCANCODES InsertCodesProcedure, IN PVOID InsertCodesContext)
Definition: hidparser.c:614

◆ HidP_TranslateUsagesToI8042ScanCodes()

HIDAPI NTSTATUS NTAPI HidP_TranslateUsagesToI8042ScanCodes ( IN PUSAGE  ChangedUsageList,
IN ULONG  UsageListLength,
IN HIDP_KEYBOARD_DIRECTION  KeyAction,
IN OUT PHIDP_KEYBOARD_MODIFIER_STATE  ModifierState,
IN PHIDP_INSERT_SCANCODES  InsertCodesProcedure,
IN PVOID  InsertCodesContext 
)

Definition at line 390 of file hidp.c.

397 {
399  ASSERT(FALSE);
400  return STATUS_NOT_IMPLEMENTED;
401 }
#define STATUS_NOT_IMPLEMENTED
Definition: ntstatus.h:225
ASSERT((InvokeOnSuccess||InvokeOnError||InvokeOnCancel) ?(CompletionRoutine !=NULL) :TRUE)
#define UNIMPLEMENTED
Definition: hidp.c:9

◆ HidP_UnsetUsages()

HIDAPI NTSTATUS NTAPI HidP_UnsetUsages ( 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 
)

Definition at line 372 of file hidp.c.

381 {
383  ASSERT(FALSE);
384  return STATUS_NOT_IMPLEMENTED;
385 }
#define STATUS_NOT_IMPLEMENTED
Definition: ntstatus.h:225
ASSERT((InvokeOnSuccess||InvokeOnError||InvokeOnCancel) ?(CompletionRoutine !=NULL) :TRUE)
#define UNIMPLEMENTED
Definition: hidp.c:9

◆ HidP_UsageAndPageListDifference()

HIDAPI NTSTATUS NTAPI HidP_UsageAndPageListDifference ( IN PUSAGE_AND_PAGE  PreviousUsageList,
IN PUSAGE_AND_PAGE  CurrentUsageList,
OUT PUSAGE_AND_PAGE  BreakUsageList,
OUT PUSAGE_AND_PAGE  MakeUsageList,
IN ULONG  UsageListLength 
)

Definition at line 176 of file hidp.c.

182 {
183  return HidParser_UsageAndPageListDifference(PreviousUsageList, CurrentUsageList, BreakUsageList, MakeUsageList, UsageListLength);
184 }
HIDAPI NTSTATUS NTAPI HidParser_UsageAndPageListDifference(IN PUSAGE_AND_PAGE PreviousUsageList, IN PUSAGE_AND_PAGE CurrentUsageList, OUT PUSAGE_AND_PAGE BreakUsageList, OUT PUSAGE_AND_PAGE MakeUsageList, IN ULONG UsageListLength)
Definition: hidparser.c:689
_Must_inspect_result_ _In_ ULONG UsageListLength
Definition: hidpi.h:647

Referenced by KbdHid_ReadCompletion().

◆ HidP_UsageListDifference()

HIDAPI NTSTATUS NTAPI HidP_UsageListDifference ( IN PUSAGE  PreviousUsageList,
IN PUSAGE  CurrentUsageList,
OUT PUSAGE  BreakUsageList,
OUT PUSAGE  MakeUsageList,
IN ULONG  UsageListLength 
)

Definition at line 148 of file hidp.c.

154 {
155  return HidParser_UsageListDifference(PreviousUsageList, CurrentUsageList, BreakUsageList, MakeUsageList, UsageListLength);
156 }
HIDAPI NTSTATUS NTAPI HidParser_UsageListDifference(IN PUSAGE PreviousUsageList, IN PUSAGE CurrentUsageList, OUT PUSAGE BreakUsageList, OUT PUSAGE MakeUsageList, IN ULONG UsageListLength)
Definition: hidparser.c:375
_Must_inspect_result_ _In_ ULONG UsageListLength
Definition: hidpi.h:647

Referenced by MouHid_GetButtonFlags().

◆ TranslateStatusForUpperLayer()

NTSTATUS TranslateStatusForUpperLayer ( IN NTSTATUS  Status)

Definition at line 37 of file hidp.c.

39 {
40  //
41  // now we are handling only this values, for others just return
42  // status as it is.
43  //
44  switch (Status)
45  {
54  default:
55  return Status;
56  }
57 }
#define HIDP_STATUS_USAGE_NOT_FOUND
Definition: hidpi.h:253
#define STATUS_INSUFFICIENT_RESOURCES
Definition: udferr_usr.h:158
#define HIDP_STATUS_BUFFER_TOO_SMALL
Definition: hidpi.h:256
#define STATUS_BUFFER_TOO_SMALL
Definition: shellext.h:69
#define HIDP_STATUS_INTERNAL_ERROR
Definition: hidpi.h:257
#define HIDP_STATUS_INVALID_REPORT_TYPE
Definition: hidpi.h:251
#define STATUS_NO_DATA_DETECTED
Definition: udferr_usr.h:131
Status
Definition: gdiplustypes.h:24

Referenced by HidP_GetCollectionDescription().