2 #define _HIDPI_NO_FUNCTION_MACROS_
9 #define UNIMPLEMENTED DebugFunction("%s is UNIMPLEMENTED\n", __FUNCTION__)
13 HidP_FreeCollectionDescription(
14 IN PHIDP_DEVICE_DESC DeviceDescription
)
19 HidParser_FreeCollectionDescription(DeviceDescription
);
27 IN PHIDP_PREPARSED_DATA PreparsedData
,
28 OUT PHIDP_CAPS Capabilities
)
33 return HidParser_GetCaps(PreparsedData
, Capabilities
);
37 TranslateStatusForUpperLayer(
38 IN HIDPARSER_STATUS Status
)
41 // now we are handling only this values, for others just return
46 case HIDPARSER_STATUS_INSUFFICIENT_RESOURCES
:
47 return STATUS_INSUFFICIENT_RESOURCES
;
48 case HIDPARSER_STATUS_INVALID_REPORT_TYPE
:
49 return HIDP_STATUS_INVALID_REPORT_TYPE
;
50 case HIDPARSER_STATUS_BUFFER_TOO_SMALL
:
51 return STATUS_BUFFER_TOO_SMALL
;
52 case HIDPARSER_STATUS_COLLECTION_NOT_FOUND
:
53 return STATUS_NO_DATA_DETECTED
;
61 HidP_GetCollectionDescription(
62 IN PHIDP_REPORT_DESCRIPTOR ReportDesc
,
64 IN POOL_TYPE PoolType
,
65 OUT PHIDP_DEVICE_DESC DeviceDescription
)
72 Status
= HidParser_GetCollectionDescription(ReportDesc
, DescLength
, PoolType
, DeviceDescription
);
73 return TranslateStatusForUpperLayer(Status
);
79 HidP_MaxUsageListLength(
80 IN HIDP_REPORT_TYPE ReportType
,
81 IN USAGE UsagePage OPTIONAL
,
82 IN PHIDP_PREPARSED_DATA PreparsedData
)
87 ASSERT(ReportType
== HidP_Input
|| ReportType
== HidP_Output
|| ReportType
== HidP_Feature
);
92 return HidParser_MaxUsageListLength(PreparsedData
, ReportType
, UsagePage
);
98 HidP_GetSpecificValueCaps(
99 IN HIDP_REPORT_TYPE ReportType
,
101 IN USHORT LinkCollection
,
103 OUT PHIDP_VALUE_CAPS ValueCaps
,
104 IN OUT PUSHORT ValueCapsLength
,
105 IN PHIDP_PREPARSED_DATA PreparsedData
)
110 ASSERT(ReportType
== HidP_Input
|| ReportType
== HidP_Output
|| ReportType
== HidP_Feature
);
115 return HidParser_GetSpecificValueCaps(PreparsedData
, ReportType
, UsagePage
, LinkCollection
, Usage
, ValueCaps
, ValueCapsLength
);
122 IN HIDP_REPORT_TYPE ReportType
,
124 IN USHORT LinkCollection OPTIONAL
,
125 OUT PUSAGE UsageList
,
126 IN OUT PULONG UsageLength
,
127 IN PHIDP_PREPARSED_DATA PreparsedData
,
129 IN ULONG ReportLength
)
134 ASSERT(ReportType
== HidP_Input
|| ReportType
== HidP_Output
|| ReportType
== HidP_Feature
);
139 return HidParser_GetUsages(PreparsedData
, ReportType
, UsagePage
, LinkCollection
, UsageList
, UsageLength
, Report
, ReportLength
);
143 #undef HidP_GetButtonCaps
148 HidP_UsageListDifference(
149 IN PUSAGE PreviousUsageList
,
150 IN PUSAGE CurrentUsageList
,
151 OUT PUSAGE BreakUsageList
,
152 OUT PUSAGE MakeUsageList
,
153 IN ULONG UsageListLength
)
155 return HidParser_UsageListDifference(PreviousUsageList
, CurrentUsageList
, BreakUsageList
, MakeUsageList
, UsageListLength
);
162 IN HIDP_REPORT_TYPE ReportType
,
163 IN USHORT LinkCollection
,
164 OUT PUSAGE_AND_PAGE ButtonList
,
165 IN OUT ULONG
*UsageLength
,
166 IN PHIDP_PREPARSED_DATA PreparsedData
,
168 IN ULONG ReportLength
)
170 return HidP_GetUsages(ReportType
, HID_USAGE_PAGE_UNDEFINED
, LinkCollection
, &ButtonList
->Usage
, UsageLength
, PreparsedData
, Report
, ReportLength
);
176 HidP_UsageAndPageListDifference(
177 IN PUSAGE_AND_PAGE PreviousUsageList
,
178 IN PUSAGE_AND_PAGE CurrentUsageList
,
179 OUT PUSAGE_AND_PAGE BreakUsageList
,
180 OUT PUSAGE_AND_PAGE MakeUsageList
,
181 IN ULONG UsageListLength
)
183 return HidParser_UsageAndPageListDifference(PreviousUsageList
, CurrentUsageList
, BreakUsageList
, MakeUsageList
, UsageListLength
);
189 HidP_GetScaledUsageValue(
190 IN HIDP_REPORT_TYPE ReportType
,
192 IN USHORT LinkCollection OPTIONAL
,
194 OUT PLONG UsageValue
,
195 IN PHIDP_PREPARSED_DATA PreparsedData
,
197 IN ULONG ReportLength
)
202 ASSERT(ReportType
== HidP_Input
|| ReportType
== HidP_Output
|| ReportType
== HidP_Feature
);
205 // get scaled usage value
207 return HidParser_GetScaledUsageValue(PreparsedData
, ReportType
, UsagePage
, LinkCollection
, Usage
, UsageValue
, Report
, ReportLength
);
214 IN HIDP_REPORT_TYPE ReportType
,
216 IN USHORT LinkCollection
,
218 OUT PULONG UsageValue
,
219 IN PHIDP_PREPARSED_DATA PreparsedData
,
221 IN ULONG ReportLength
)
226 ASSERT(ReportType
== HidP_Input
|| ReportType
== HidP_Output
|| ReportType
== HidP_Feature
);
229 // get scaled usage value
231 return HidParser_GetUsageValue(PreparsedData
, ReportType
, UsagePage
, LinkCollection
, Usage
, UsageValue
, Report
, ReportLength
);
238 HidP_TranslateUsageAndPagesToI8042ScanCodes(
239 IN PUSAGE_AND_PAGE ChangedUsageList
,
240 IN ULONG UsageListLength
,
241 IN HIDP_KEYBOARD_DIRECTION KeyAction
,
242 IN OUT PHIDP_KEYBOARD_MODIFIER_STATE ModifierState
,
243 IN PHIDP_INSERT_SCANCODES InsertCodesProcedure
,
244 IN PVOID InsertCodesContext
)
247 // translate usage pages
249 return HidParser_TranslateUsageAndPagesToI8042ScanCodes(ChangedUsageList
, UsageListLength
, KeyAction
, ModifierState
, InsertCodesProcedure
, InsertCodesContext
);
256 HIDP_REPORT_TYPE ReportType
,
257 PHIDP_BUTTON_CAPS ButtonCaps
,
258 PUSHORT ButtonCapsLength
,
259 PHIDP_PREPARSED_DATA PreparsedData
)
261 return HidP_GetSpecificButtonCaps(ReportType
, HID_USAGE_PAGE_UNDEFINED
, 0, 0, ButtonCaps
, ButtonCapsLength
, PreparsedData
);
267 HidP_GetSpecificButtonCaps(
268 IN HIDP_REPORT_TYPE ReportType
,
270 IN USHORT LinkCollection
,
272 OUT PHIDP_BUTTON_CAPS ButtonCaps
,
273 IN OUT PUSHORT ButtonCapsLength
,
274 IN PHIDP_PREPARSED_DATA PreparsedData
)
278 return STATUS_NOT_IMPLEMENTED
;
285 IN HIDP_REPORT_TYPE ReportType
,
286 OUT PHIDP_DATA DataList
,
287 IN OUT PULONG DataLength
,
288 IN PHIDP_PREPARSED_DATA PreparsedData
,
290 IN ULONG ReportLength
)
294 return STATUS_NOT_IMPLEMENTED
;
300 HidP_GetExtendedAttributes(
301 IN HIDP_REPORT_TYPE ReportType
,
303 IN PHIDP_PREPARSED_DATA PreparsedData
,
304 OUT PHIDP_EXTENDED_ATTRIBUTES Attributes
,
305 IN OUT PULONG LengthAttributes
)
309 return STATUS_NOT_IMPLEMENTED
;
315 HidP_GetLinkCollectionNodes(
316 OUT PHIDP_LINK_COLLECTION_NODE LinkCollectionNodes
,
317 IN OUT PULONG LinkCollectionNodesLength
,
318 IN PHIDP_PREPARSED_DATA PreparsedData
)
322 return STATUS_NOT_IMPLEMENTED
;
329 IN USHORT HidPacketLength
,
330 IN PHIDP_PREPARSED_DATA Ppd
,
331 OUT PULONG OutputBuffer
)
335 return STATUS_NOT_IMPLEMENTED
;
341 IN PHIDP_PREPARSED_DATA Ppd
,
342 OUT PULONG OutputBuffer
)
346 return STATUS_NOT_IMPLEMENTED
;
352 HidP_GetUsageValueArray(
353 IN HIDP_REPORT_TYPE ReportType
,
355 IN USHORT LinkCollection OPTIONAL
,
357 OUT PCHAR UsageValue
,
358 IN USHORT UsageValueByteLength
,
359 IN PHIDP_PREPARSED_DATA PreparsedData
,
361 IN ULONG ReportLength
)
365 return STATUS_NOT_IMPLEMENTED
;
373 IN HIDP_REPORT_TYPE ReportType
,
375 IN USHORT LinkCollection
,
377 IN OUT PULONG UsageLength
,
378 IN PHIDP_PREPARSED_DATA PreparsedData
,
380 IN ULONG ReportLength
)
384 return STATUS_NOT_IMPLEMENTED
;
390 HidP_TranslateUsagesToI8042ScanCodes(
391 IN PUSAGE ChangedUsageList
,
392 IN ULONG UsageListLength
,
393 IN HIDP_KEYBOARD_DIRECTION KeyAction
,
394 IN OUT PHIDP_KEYBOARD_MODIFIER_STATE ModifierState
,
395 IN PHIDP_INSERT_SCANCODES InsertCodesProcedure
,
396 IN PVOID InsertCodesContext
)
400 return STATUS_NOT_IMPLEMENTED
;
407 IN HIDP_REPORT_TYPE ReportType
,
409 IN USHORT LinkCollection
,
411 IN OUT PULONG UsageLength
,
412 IN PHIDP_PREPARSED_DATA PreparsedData
,
414 IN ULONG ReportLength
)
418 return STATUS_NOT_IMPLEMENTED
;
424 HidP_SetUsageValueArray(
425 IN HIDP_REPORT_TYPE ReportType
,
427 IN USHORT LinkCollection OPTIONAL
,
430 IN USHORT UsageValueByteLength
,
431 IN PHIDP_PREPARSED_DATA PreparsedData
,
433 IN ULONG ReportLength
)
437 return STATUS_NOT_IMPLEMENTED
;
444 IN HIDP_REPORT_TYPE ReportType
,
446 IN USHORT LinkCollection
,
449 IN PHIDP_PREPARSED_DATA PreparsedData
,
451 IN ULONG ReportLength
)
455 return STATUS_NOT_IMPLEMENTED
;
461 HidP_SetScaledUsageValue(
462 IN HIDP_REPORT_TYPE ReportType
,
464 IN USHORT LinkCollection OPTIONAL
,
467 IN PHIDP_PREPARSED_DATA PreparsedData
,
469 IN ULONG ReportLength
)
473 return STATUS_NOT_IMPLEMENTED
;
480 IN HIDP_REPORT_TYPE ReportType
,
481 IN PHIDP_DATA DataList
,
482 IN OUT PULONG DataLength
,
483 IN PHIDP_PREPARSED_DATA PreparsedData
,
485 IN ULONG ReportLength
)
489 return STATUS_NOT_IMPLEMENTED
;
495 HidP_MaxDataListLength(
496 IN HIDP_REPORT_TYPE ReportType
,
497 IN PHIDP_PREPARSED_DATA PreparsedData
)
501 return STATUS_NOT_IMPLEMENTED
;
507 HidP_InitializeReportForID(
508 IN HIDP_REPORT_TYPE ReportType
,
510 IN PHIDP_PREPARSED_DATA PreparsedData
,
512 IN ULONG ReportLength
)
516 return STATUS_NOT_IMPLEMENTED
;
519 #undef HidP_GetValueCaps
525 HIDP_REPORT_TYPE ReportType
,
526 PHIDP_VALUE_CAPS ValueCaps
,
527 PUSHORT ValueCapsLength
,
528 PHIDP_PREPARSED_DATA PreparsedData
)
530 return HidP_GetSpecificValueCaps(ReportType
,
531 HID_USAGE_PAGE_UNDEFINED
,
532 HIDP_LINK_COLLECTION_UNSPECIFIED
,