|
1 /* |
|
2 * hidpi.h |
|
3 * |
|
4 * Public Interface for HID parsing library. |
|
5 * |
|
6 * This file is part of the w32api package. |
|
7 * |
|
8 * Contributors: |
|
9 * Created by Casper S. Hornstrup <chorns@users.sourceforge.net> |
|
10 * |
|
11 * THIS SOFTWARE IS NOT COPYRIGHTED |
|
12 * |
|
13 * This source code is offered for use in the public domain. You may |
|
14 * use, modify or distribute it freely. |
|
15 * |
|
16 * This code is distributed in the hope that it will be useful but |
|
17 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY |
|
18 * DISCLAIMED. This includes but is not limited to warranties of |
|
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
|
20 * |
|
21 */ |
|
22 |
|
23 #ifndef __HIDPI_H |
|
24 #define __HIDPI_H |
|
25 |
|
26 #if __GNUC__ >=3 |
|
27 #pragma GCC system_header |
|
28 #endif |
|
29 |
|
30 #ifdef __cplusplus |
|
31 extern "C" { |
|
32 #endif |
|
33 |
|
34 #include "ntddk.h" |
|
35 #include "hidusage.h" |
|
36 |
|
37 #if defined(_HIDPI_) |
|
38 #define HIDAPI DECLSPEC_EXPORT |
|
39 #else |
|
40 #define HIDAPI DECLSPEC_IMPORT |
|
41 #endif |
|
42 |
|
43 typedef PUCHAR PHIDP_REPORT_DESCRIPTOR; |
|
44 typedef struct _HIDP_PREPARSED_DATA * PHIDP_PREPARSED_DATA; |
|
45 |
|
46 typedef struct _HIDP_UNKNOWN_TOKEN { |
|
47 UCHAR Token; |
|
48 UCHAR Reserved[3]; |
|
49 ULONG BitField; |
|
50 } HIDP_UNKNOWN_TOKEN, *PHIDP_UNKNOWN_TOKEN; |
|
51 |
|
52 typedef enum _HIDP_KEYBOARD_DIRECTION { |
|
53 HidP_Keyboard_Break, |
|
54 HidP_Keyboard_Make |
|
55 } HIDP_KEYBOARD_DIRECTION; |
|
56 |
|
57 typedef struct _HIDP_KEYBOARD_MODIFIER_STATE { |
|
58 _ANONYMOUS_UNION union { |
|
59 _ANONYMOUS_STRUCT struct { |
|
60 ULONG LeftControl : 1; |
|
61 ULONG LeftShift : 1; |
|
62 ULONG LeftAlt : 1; |
|
63 ULONG LeftGUI : 1; |
|
64 ULONG RightControl : 1; |
|
65 ULONG RightShift : 1; |
|
66 ULONG RightAlt : 1; |
|
67 ULONG RigthGUI : 1; |
|
68 ULONG CapsLock : 1; |
|
69 ULONG ScollLock : 1; |
|
70 ULONG NumLock : 1; |
|
71 ULONG Reserved : 21; |
|
72 } DUMMYSTRUCTNAME; |
|
73 ULONG ul; |
|
74 } DUMMYUNIONNAME; |
|
75 } HIDP_KEYBOARD_MODIFIER_STATE, *PHIDP_KEYBOARD_MODIFIER_STATE; |
|
76 |
|
77 typedef BOOLEAN (DDKAPI *PHIDP_INSERT_SCANCODES)( |
|
78 /*IN*/ PVOID Context, |
|
79 /*IN*/ PCHAR NewScanCodes, |
|
80 /*IN*/ ULONG Length); |
|
81 |
|
82 typedef struct _USAGE_AND_PAGE { |
|
83 USAGE Usage; |
|
84 USAGE UsagePage; |
|
85 } USAGE_AND_PAGE, *PUSAGE_AND_PAGE; |
|
86 |
|
87 HIDAPI |
|
88 NTSTATUS |
|
89 DDKAPI |
|
90 HidP_TranslateUsageAndPagesToI8042ScanCodes( |
|
91 /*IN*/ PUSAGE_AND_PAGE ChangedUsageList, |
|
92 /*IN*/ ULONG UsageListLength, |
|
93 /*IN*/ HIDP_KEYBOARD_DIRECTION KeyAction, |
|
94 /*IN OUT*/ PHIDP_KEYBOARD_MODIFIER_STATE ModifierState, |
|
95 /*IN*/ PHIDP_INSERT_SCANCODES InsertCodesProcedure, |
|
96 /*IN*/ PVOID InsertCodesContext); |
|
97 |
|
98 HIDAPI |
|
99 NTSTATUS |
|
100 DDKAPI |
|
101 HidP_TranslateUsagesToI8042ScanCodes( |
|
102 /*IN*/ PUSAGE ChangedUsageList, |
|
103 /*IN*/ ULONG UsageListLength, |
|
104 /*IN*/ HIDP_KEYBOARD_DIRECTION KeyAction, |
|
105 /*IN OUT*/ PHIDP_KEYBOARD_MODIFIER_STATE ModifierState, |
|
106 /*IN*/ PHIDP_INSERT_SCANCODES InsertCodesProcedure, |
|
107 /*IN*/ PVOID InsertCodesContext); |
|
108 |
|
109 typedef struct _HIDP_BUTTON_CAPS { |
|
110 USAGE UsagePage; |
|
111 UCHAR ReportID; |
|
112 BOOLEAN IsAlias; |
|
113 USHORT BitField; |
|
114 USHORT LinkCollection; |
|
115 USAGE LinkUsage; |
|
116 USAGE LinkUsagePage; |
|
117 BOOLEAN IsRange; |
|
118 BOOLEAN IsStringRange; |
|
119 BOOLEAN IsDesignatorRange; |
|
120 BOOLEAN IsAbsolute; |
|
121 ULONG Reserved[10]; |
|
122 _ANONYMOUS_UNION union { |
|
123 struct { |
|
124 USAGE UsageMin, UsageMax; |
|
125 USHORT StringMin, StringMax; |
|
126 USHORT DesignatorMin, DesignatorMax; |
|
127 USHORT DataIndexMin, DataIndexMax; |
|
128 } Range; |
|
129 struct { |
|
130 USAGE Usage, Reserved1; |
|
131 USHORT StringIndex, Reserved2; |
|
132 USHORT DesignatorIndex, Reserved3; |
|
133 USHORT DataIndex, Reserved4; |
|
134 } NotRange; |
|
135 } DUMMYUNIONNAME; |
|
136 } HIDP_BUTTON_CAPS, *PHIDP_BUTTON_CAPS; |
|
137 |
|
138 typedef struct _HIDP_CAPS { |
|
139 USAGE Usage; |
|
140 USAGE UsagePage; |
|
141 USHORT InputReportByteLength; |
|
142 USHORT OutputReportByteLength; |
|
143 USHORT FeatureReportByteLength; |
|
144 USHORT Reserved[17]; |
|
145 USHORT NumberLinkCollectionNodes; |
|
146 USHORT NumberInputButtonCaps; |
|
147 USHORT NumberInputValueCaps; |
|
148 USHORT NumberInputDataIndices; |
|
149 USHORT NumberOutputButtonCaps; |
|
150 USHORT NumberOutputValueCaps; |
|
151 USHORT NumberOutputDataIndices; |
|
152 USHORT NumberFeatureButtonCaps; |
|
153 USHORT NumberFeatureValueCaps; |
|
154 USHORT NumberFeatureDataIndices; |
|
155 } HIDP_CAPS, *PHIDP_CAPS; |
|
156 |
|
157 typedef struct _HIDP_DATA { |
|
158 USHORT DataIndex; |
|
159 USHORT Reserved; |
|
160 _ANONYMOUS_UNION union { |
|
161 ULONG RawValue; |
|
162 BOOLEAN On; |
|
163 } DUMMYUNIONNAME; |
|
164 } HIDP_DATA, *PHIDP_DATA; |
|
165 |
|
166 typedef struct _HIDP_EXTENDED_ATTRIBUTES { |
|
167 UCHAR NumGlobalUnknowns; |
|
168 UCHAR Reserved[3]; |
|
169 PHIDP_UNKNOWN_TOKEN GlobalUnknowns; |
|
170 ULONG Data[1]; |
|
171 } HIDP_EXTENDED_ATTRIBUTES, *PHIDP_EXTENDED_ATTRIBUTES; |
|
172 |
|
173 #define HIDP_LINK_COLLECTION_ROOT ((USHORT) -1) |
|
174 #define HIDP_LINK_COLLECTION_UNSPECIFIED ((USHORT) 0) |
|
175 |
|
176 typedef struct _HIDP_LINK_COLLECTION_NODE { |
|
177 USAGE LinkUsage; |
|
178 USAGE LinkUsagePage; |
|
179 USHORT Parent; |
|
180 USHORT NumberOfChildren; |
|
181 USHORT NextSibling; |
|
182 USHORT FirstChild; |
|
183 ULONG CollectionType: 8; |
|
184 ULONG IsAlias: 1; |
|
185 ULONG Reserved: 23; |
|
186 PVOID UserContext; |
|
187 } HIDP_LINK_COLLECTION_NODE, *PHIDP_LINK_COLLECTION_NODE; |
|
188 |
|
189 typedef struct _HIDP_VALUE_CAPS { |
|
190 USAGE UsagePage; |
|
191 UCHAR ReportID; |
|
192 BOOLEAN IsAlias; |
|
193 USHORT BitField; |
|
194 USHORT LinkCollection; |
|
195 USAGE LinkUsage; |
|
196 USAGE LinkUsagePage; |
|
197 BOOLEAN IsRange; |
|
198 BOOLEAN IsStringRange; |
|
199 BOOLEAN IsDesignatorRange; |
|
200 BOOLEAN IsAbsolute; |
|
201 BOOLEAN HasNull; |
|
202 UCHAR Reserved; |
|
203 USHORT BitSize; |
|
204 USHORT ReportCount; |
|
205 USHORT Reserved2[5]; |
|
206 ULONG UnitsExp; |
|
207 ULONG Units; |
|
208 LONG LogicalMin, LogicalMax; |
|
209 LONG PhysicalMin, PhysicalMax; |
|
210 _ANONYMOUS_UNION union { |
|
211 struct { |
|
212 USAGE UsageMin, UsageMax; |
|
213 USHORT StringMin, StringMax; |
|
214 USHORT DesignatorMin, DesignatorMax; |
|
215 USHORT DataIndexMin, DataIndexMax; |
|
216 } Range; |
|
217 struct { |
|
218 USAGE Usage, Reserved1; |
|
219 USHORT StringIndex, Reserved2; |
|
220 USHORT DesignatorIndex, Reserved3; |
|
221 USHORT DataIndex, Reserved4; |
|
222 } NotRange; |
|
223 } DUMMYUNIONNAME; |
|
224 } HIDP_VALUE_CAPS, *PHIDP_VALUE_CAPS; |
|
225 |
|
226 typedef enum _HIDP_REPORT_TYPE { |
|
227 HidP_Input, |
|
228 HidP_Output, |
|
229 HidP_Feature |
|
230 } HIDP_REPORT_TYPE; |
|
231 |
|
232 #define FACILITY_HID_ERROR_CODE 0x11 |
|
233 |
|
234 #define HIDP_ERROR_CODES(SEV, CODE) \ |
|
235 ((NTSTATUS) (((SEV) << 28) | (FACILITY_HID_ERROR_CODE << 16) | (CODE))) |
|
236 |
|
237 #define HIDP_STATUS_SUCCESS (HIDP_ERROR_CODES(0x0, 0)) |
|
238 #define HIDP_STATUS_NULL (HIDP_ERROR_CODES(0x8, 1)) |
|
239 #define HIDP_STATUS_INVALID_PREPARSED_DATA (HIDP_ERROR_CODES(0xC, 1)) |
|
240 #define HIDP_STATUS_INVALID_REPORT_TYPE (HIDP_ERROR_CODES(0xC, 2)) |
|
241 #define HIDP_STATUS_INVALID_REPORT_LENGTH (HIDP_ERROR_CODES(0xC, 3)) |
|
242 #define HIDP_STATUS_USAGE_NOT_FOUND (HIDP_ERROR_CODES(0xC, 4)) |
|
243 #define HIDP_STATUS_VALUE_OUT_OF_RANGE (HIDP_ERROR_CODES(0xC, 5)) |
|
244 #define HIDP_STATUS_BAD_LOG_PHY_VALUES (HIDP_ERROR_CODES(0xC, 6)) |
|
245 #define HIDP_STATUS_BUFFER_TOO_SMALL (HIDP_ERROR_CODES(0xC, 7)) |
|
246 #define HIDP_STATUS_INTERNAL_ERROR (HIDP_ERROR_CODES(0xC, 8)) |
|
247 #define HIDP_STATUS_I8042_TRANS_UNKNOWN (HIDP_ERROR_CODES(0xC, 9)) |
|
248 #define HIDP_STATUS_INCOMPATIBLE_REPORT_ID (HIDP_ERROR_CODES(0xC, 0xA)) |
|
249 #define HIDP_STATUS_NOT_VALUE_ARRAY (HIDP_ERROR_CODES(0xC, 0xB)) |
|
250 #define HIDP_STATUS_IS_VALUE_ARRAY (HIDP_ERROR_CODES(0xC, 0xC)) |
|
251 #define HIDP_STATUS_DATA_INDEX_NOT_FOUND (HIDP_ERROR_CODES(0xC, 0xD)) |
|
252 #define HIDP_STATUS_DATA_INDEX_OUT_OF_RANGE (HIDP_ERROR_CODES(0xC, 0xE)) |
|
253 #define HIDP_STATUS_BUTTON_NOT_PRESSED (HIDP_ERROR_CODES(0xC, 0xF)) |
|
254 #define HIDP_STATUS_REPORT_DOES_NOT_EXIST (HIDP_ERROR_CODES(0xC, 0x10)) |
|
255 #define HIDP_STATUS_NOT_IMPLEMENTED (HIDP_ERROR_CODES(0xC, 0x20)) |
|
256 #define HIDP_STATUS_I8242_TRANS_UNKNOWN HIDP_STATUS_I8042_TRANS_UNKNOWN |
|
257 |
|
258 |
|
259 |
|
260 /* |
|
261 * NTSTATUS |
|
262 * HidP_GetButtonCaps( |
|
263 * IN HIDP_REPORT_TYPE ReportType, |
|
264 * OUT PHIDP_BUTTON_CAPS ButtonCaps, |
|
265 * IN OUT PULONG ButtonCapsLength, |
|
266 * IN PHIDP_PREPARSED_DATA PreparsedData); |
|
267 */ |
|
268 #define HidP_GetButtonCaps(_Type_, _Caps_, _Len_, _Data_) \ |
|
269 HidP_GetSpecificButtonCaps(_Type_, 0, 0, 0, _Caps_, _Len_, _Data_) |
|
270 |
|
271 /* |
|
272 * NTSTATUS |
|
273 * HidP_GetButtons( |
|
274 * IN HIDP_REPORT_TYPE ReportType, |
|
275 * IN USAGE UsagePage, |
|
276 * IN USHORT LinkCollection, |
|
277 * OUT USAGE *UsageList, |
|
278 * IN OUT ULONG *UsageLength, |
|
279 * IN PHIDP_PREPARSED_DATA PreparsedData, |
|
280 * IN PCHAR Report, |
|
281 * IN ULONG ReportLength); |
|
282 */ |
|
283 #define HidP_GetButtons(Rty, UPa, LCo, ULi, ULe, Ppd, Rep, RLe) \ |
|
284 HidP_GetUsages(Rty, UPa, LCo, ULi, ULe, Ppd, Rep, RLe) |
|
285 |
|
286 #define HidP_GetButtonListLength(RTy, UPa, Ppd) \ |
|
287 HidP_GetUsageListLength(Rty, UPa, Ppd) |
|
288 |
|
289 |
|
290 /* |
|
291 * NTSTATUS |
|
292 * HidP_GetButtonsEx( |
|
293 * IN HIDP_REPORT_TYPE ReportType, |
|
294 * IN USHORT LinkCollection, |
|
295 * OUT PUSAGE_AND_PAGE ButtonList, |
|
296 * IN OUT ULONG *UsageLength, |
|
297 * IN PHIDP_PREPARSED_DATA PreparsedData, |
|
298 * IN PCHAR Report, |
|
299 * IN ULONG ReportLength); |
|
300 */ |
|
301 #define HidP_GetButtonsEx(RT, LC, BL, UL, PD, R, RL) \ |
|
302 HidP_GetUsagesEx(RT, LC, BL, UL, PD, R, RL) |
|
303 |
|
304 HIDAPI |
|
305 NTSTATUS |
|
306 DDKAPI |
|
307 HidP_GetCaps( |
|
308 /*IN*/ PHIDP_PREPARSED_DATA PreparsedData, |
|
309 /*OUT*/ PHIDP_CAPS Capabilities); |
|
310 |
|
311 HIDAPI |
|
312 NTSTATUS |
|
313 DDKAPI |
|
314 HidP_GetData( |
|
315 /*IN*/ HIDP_REPORT_TYPE ReportType, |
|
316 /*OUT*/ PHIDP_DATA DataList, |
|
317 /*IN OUT*/ PULONG DataLength, |
|
318 /*IN*/ PHIDP_PREPARSED_DATA PreparsedData, |
|
319 /*IN*/ PCHAR Report, |
|
320 /*IN*/ ULONG ReportLength); |
|
321 |
|
322 HIDAPI |
|
323 NTSTATUS |
|
324 DDKAPI |
|
325 HidP_GetExtendedAttributes( |
|
326 /*IN*/ HIDP_REPORT_TYPE ReportType, |
|
327 /*IN*/ USHORT DataIndex, |
|
328 /*IN*/ PHIDP_PREPARSED_DATA PreparsedData, |
|
329 /*OUT*/ PHIDP_EXTENDED_ATTRIBUTES Attributes, |
|
330 /*IN OUT*/ PULONG LengthAttributes); |
|
331 |
|
332 HIDAPI |
|
333 NTSTATUS |
|
334 DDKAPI |
|
335 HidP_GetLinkCollectionNodes( |
|
336 /*OUT*/ PHIDP_LINK_COLLECTION_NODE LinkCollectionNodes, |
|
337 /*IN OUT*/ PULONG LinkCollectionNodesLength, |
|
338 /*IN*/ PHIDP_PREPARSED_DATA PreparsedData); |
|
339 |
|
340 HIDAPI |
|
341 NTSTATUS |
|
342 DDKAPI |
|
343 HidP_GetScaledUsageValue( |
|
344 /*IN*/ HIDP_REPORT_TYPE ReportType, |
|
345 /*IN*/ USAGE UsagePage, |
|
346 /*IN*/ USHORT LinkCollection /*OPTIONAL*/, |
|
347 /*IN*/ USAGE Usage, |
|
348 /*OUT*/ PLONG UsageValue, |
|
349 /*IN*/ PHIDP_PREPARSED_DATA PreparsedData, |
|
350 /*IN*/ PCHAR Report, |
|
351 /*IN*/ ULONG ReportLength); |
|
352 |
|
353 HIDAPI |
|
354 NTSTATUS |
|
355 DDKAPI |
|
356 HidP_GetSpecificButtonCaps( |
|
357 /*IN*/ HIDP_REPORT_TYPE ReportType, |
|
358 /*IN*/ USAGE UsagePage, |
|
359 /*IN*/ USHORT LinkCollection, |
|
360 /*IN*/ USAGE Usage, |
|
361 /*OUT*/ PHIDP_BUTTON_CAPS ButtonCaps, |
|
362 /*IN OUT*/ PULONG ButtonCapsLength, |
|
363 /*IN*/ PHIDP_PREPARSED_DATA PreparsedData); |
|
364 |
|
365 HIDAPI |
|
366 NTSTATUS |
|
367 DDKAPI |
|
368 HidP_GetSpecificValueCaps( |
|
369 /*IN*/ HIDP_REPORT_TYPE ReportType, |
|
370 /*IN*/ USAGE UsagePage, |
|
371 /*IN*/ USHORT LinkCollection, |
|
372 /*IN*/ USAGE Usage, |
|
373 /*OUT*/ PHIDP_VALUE_CAPS ValueCaps, |
|
374 /*IN OUT*/ PULONG ValueCapsLength, |
|
375 /*IN*/ PHIDP_PREPARSED_DATA PreparsedData); |
|
376 |
|
377 HIDAPI |
|
378 NTSTATUS |
|
379 DDKAPI |
|
380 HidP_GetUsages( |
|
381 /*IN*/ HIDP_REPORT_TYPE ReportType, |
|
382 /*IN*/ USAGE UsagePage, |
|
383 /*IN*/ USHORT LinkCollection /*OPTIONAL*/, |
|
384 /*OUT*/ USAGE *UsageList, |
|
385 /*IN OUT*/ ULONG *UsageLength, |
|
386 /*IN*/ PHIDP_PREPARSED_DATA PreparsedData, |
|
387 /*IN*/ PCHAR Report, |
|
388 /*IN*/ ULONG ReportLength); |
|
389 |
|
390 HIDAPI |
|
391 NTSTATUS |
|
392 DDKAPI |
|
393 HidP_GetUsagesEx( |
|
394 /*IN*/ HIDP_REPORT_TYPE ReportType, |
|
395 /*IN*/ USHORT LinkCollection, |
|
396 /*OUT*/ PUSAGE_AND_PAGE ButtonList, |
|
397 /*IN OUT*/ ULONG *UsageLength, |
|
398 /*IN*/ PHIDP_PREPARSED_DATA PreparsedData, |
|
399 /*IN*/ PCHAR Report, |
|
400 /*IN*/ ULONG ReportLength); |
|
401 |
|
402 HIDAPI |
|
403 NTSTATUS |
|
404 DDKAPI |
|
405 HidP_GetUsageValue( |
|
406 /*IN*/ HIDP_REPORT_TYPE ReportType, |
|
407 /*IN*/ USAGE UsagePage, |
|
408 /*IN*/ USHORT LinkCollection, |
|
409 /*IN*/ USAGE Usage, |
|
410 /*OUT*/ PULONG UsageValue, |
|
411 /*IN*/ PHIDP_PREPARSED_DATA PreparsedData, |
|
412 /*IN*/ PCHAR Report, |
|
413 /*IN*/ ULONG ReportLength); |
|
414 |
|
415 HIDAPI |
|
416 NTSTATUS |
|
417 DDKAPI |
|
418 HidP_GetUsageValueArray( |
|
419 /*IN*/ HIDP_REPORT_TYPE ReportType, |
|
420 /*IN*/ USAGE UsagePage, |
|
421 /*IN*/ USHORT LinkCollection /*OPTIONAL*/, |
|
422 /*IN*/ USAGE Usage, |
|
423 /*OUT*/ PCHAR UsageValue, |
|
424 /*IN*/ USHORT UsageValueByteLength, |
|
425 /*IN*/ PHIDP_PREPARSED_DATA PreparsedData, |
|
426 /*IN*/ PCHAR Report, |
|
427 /*IN*/ ULONG ReportLength); |
|
428 |
|
429 /* |
|
430 * NTSTATUS |
|
431 * HidP_GetValueCaps( |
|
432 * IN HIDP_REPORT_TYPE ReportType, |
|
433 * OUT PHIDP_VALUE_CAPS ValueCaps, |
|
434 * IN OUT PULONG ValueCapsLength, |
|
435 * IN PHIDP_PREPARSED_DATA PreparsedData); |
|
436 */ |
|
437 #define HidP_GetValueCaps(_Type_, _Caps_, _Len_, _Data_) \ |
|
438 HidP_GetSpecificValueCaps (_Type_, 0, 0, 0, _Caps_, _Len_, _Data_) |
|
439 |
|
440 HIDAPI |
|
441 NTSTATUS |
|
442 DDKAPI |
|
443 HidP_InitializeReportForID( |
|
444 /*IN*/ HIDP_REPORT_TYPE ReportType, |
|
445 /*IN*/ UCHAR ReportID, |
|
446 /*IN*/ PHIDP_PREPARSED_DATA PreparsedData, |
|
447 /*IN OUT*/ PCHAR Report, |
|
448 /*IN*/ ULONG ReportLength); |
|
449 |
|
450 /* |
|
451 * BOOLEAN |
|
452 * HidP_IsSameUsageAndPage( |
|
453 * USAGE_AND_PAGE u1, |
|
454 * USAGE_AND_PAGE u2); |
|
455 */ |
|
456 #define HidP_IsSameUsageAndPage(u1, u2) ((* (PULONG) &u1) == (* (PULONG) &u2)) |
|
457 |
|
458 HIDAPI |
|
459 ULONG |
|
460 DDKAPI |
|
461 HidP_MaxDataListLength( |
|
462 /*IN*/ HIDP_REPORT_TYPE ReportType, |
|
463 /*IN*/ PHIDP_PREPARSED_DATA PreparsedData); |
|
464 |
|
465 HIDAPI |
|
466 ULONG |
|
467 DDKAPI |
|
468 HidP_MaxUsageListLength( |
|
469 /*IN*/ HIDP_REPORT_TYPE ReportType, |
|
470 /*IN*/ USAGE UsagePage /*OPTIONAL*/, |
|
471 /*IN*/ PHIDP_PREPARSED_DATA PreparsedData); |
|
472 |
|
473 /* |
|
474 * NTSTATUS |
|
475 * HidP_SetButtons( |
|
476 * IN HIDP_REPORT_TYPE ReportType, |
|
477 * IN USAGE UsagePage, |
|
478 * IN USHORT LinkCollection, |
|
479 * IN PUSAGE UsageList, |
|
480 * IN OUT PULONG UsageLength, |
|
481 * IN PHIDP_PREPARSED_DATA PreparsedData, |
|
482 * IN OUT PCHAR Report, |
|
483 * IN ULONG ReportLength); |
|
484 */ |
|
485 #define HidP_SetButtons(RT, UP, LC, UL1, UL2, PD, R, RL) \ |
|
486 HidP_SetUsages(RT, UP, LC, UL1, UL2, PD, R, RL) |
|
487 |
|
488 HIDAPI |
|
489 NTSTATUS |
|
490 DDKAPI |
|
491 HidP_SetData( |
|
492 /*IN*/ HIDP_REPORT_TYPE ReportType, |
|
493 /*IN*/ PHIDP_DATA DataList, |
|
494 /*IN OUT*/ PULONG DataLength, |
|
495 /*IN*/ PHIDP_PREPARSED_DATA PreparsedData, |
|
496 /*IN OUT*/ PCHAR Report, |
|
497 /*IN*/ ULONG ReportLength); |
|
498 |
|
499 HIDAPI |
|
500 NTSTATUS |
|
501 DDKAPI |
|
502 HidP_SetScaledUsageValue( |
|
503 /*IN*/ HIDP_REPORT_TYPE ReportType, |
|
504 /*IN*/ USAGE UsagePage, |
|
505 /*IN*/ USHORT LinkCollection /*OPTIONAL*/, |
|
506 /*IN*/ USAGE Usage, |
|
507 /*IN*/ LONG UsageValue, |
|
508 /*IN*/ PHIDP_PREPARSED_DATA PreparsedData, |
|
509 /*IN OUT*/ PCHAR Report, |
|
510 /*IN*/ ULONG ReportLength); |
|
511 |
|
512 HIDAPI |
|
513 NTSTATUS |
|
514 DDKAPI |
|
515 HidP_SetUsages( |
|
516 /*IN*/ HIDP_REPORT_TYPE ReportType, |
|
517 /*IN*/ USAGE UsagePage, |
|
518 /*IN*/ USHORT LinkCollection /*OPTIONAL*/, |
|
519 /*IN*/ PUSAGE UsageList, |
|
520 /*IN OUT*/ PULONG UsageLength, |
|
521 /*IN*/ PHIDP_PREPARSED_DATA PreparsedData, |
|
522 /*IN OUT*/ PCHAR Report, |
|
523 /*IN*/ ULONG ReportLength); |
|
524 |
|
525 HIDAPI |
|
526 NTSTATUS |
|
527 DDKAPI |
|
528 HidP_SetUsageValue( |
|
529 /*IN*/ HIDP_REPORT_TYPE ReportType, |
|
530 /*IN*/ USAGE UsagePage, |
|
531 /*IN*/ USHORT LinkCollection, |
|
532 /*IN*/ USAGE Usage, |
|
533 /*IN*/ ULONG UsageValue, |
|
534 /*IN*/ PHIDP_PREPARSED_DATA PreparsedData, |
|
535 /*IN OUT*/ PCHAR Report, |
|
536 /*IN*/ ULONG ReportLength); |
|
537 |
|
538 HIDAPI |
|
539 NTSTATUS |
|
540 DDKAPI |
|
541 HidP_SetUsageValueArray( |
|
542 /*IN*/ HIDP_REPORT_TYPE ReportType, |
|
543 /*IN*/ USAGE UsagePage, |
|
544 /*IN*/ USHORT LinkCollection /*OPTIONAL*/, |
|
545 /*IN*/ USAGE Usage, |
|
546 /*IN*/ PCHAR UsageValue, |
|
547 /*IN*/ USHORT UsageValueByteLength, |
|
548 /*IN*/ PHIDP_PREPARSED_DATA PreparsedData, |
|
549 /*OUT*/ PCHAR Report, |
|
550 /*IN*/ ULONG ReportLength); |
|
551 |
|
552 /* |
|
553 * NTSTATUS |
|
554 * HidP_UnsetButtons( |
|
555 * IN HIDP_REPORT_TYPE ReportType, |
|
556 * IN USAGE UsagePage, |
|
557 * IN USHORT LinkCollection, |
|
558 * IN PUSAGE UsageList, |
|
559 * IN OUT PULONG UsageLength, |
|
560 * IN PHIDP_PREPARSED_DATA PreparsedData, |
|
561 * IN OUT PCHAR Report, |
|
562 * IN ULONG ReportLength); |
|
563 */ |
|
564 #define HidP_UnsetButtons(RT, UP, LC, UL1, UL2, PD, R, RL) \ |
|
565 HidP_UnsetUsages(RT, UP, LC, UL1, UL2, PD, R, RL) |
|
566 |
|
567 HIDAPI |
|
568 NTSTATUS |
|
569 DDKAPI |
|
570 HidP_UnsetUsages( |
|
571 /*IN*/ HIDP_REPORT_TYPE ReportType, |
|
572 /*IN*/ USAGE UsagePage, |
|
573 /*IN*/ USHORT LinkCollection, |
|
574 /*IN*/ PUSAGE UsageList, |
|
575 /*IN OUT*/ PULONG UsageLength, |
|
576 /*IN*/ PHIDP_PREPARSED_DATA PreparsedData, |
|
577 /*IN OUT*/ PCHAR Report, |
|
578 /*IN*/ ULONG ReportLength); |
|
579 |
|
580 HIDAPI |
|
581 NTSTATUS |
|
582 DDKAPI |
|
583 HidP_UsageAndPageListDifference( |
|
584 /*IN*/ PUSAGE_AND_PAGE PreviousUsageList, |
|
585 /*IN*/ PUSAGE_AND_PAGE CurrentUsageList, |
|
586 /*OUT*/ PUSAGE_AND_PAGE BreakUsageList, |
|
587 /*OUT*/ PUSAGE_AND_PAGE MakeUsageList, |
|
588 /*IN*/ ULONG UsageListLength); |
|
589 |
|
590 HIDAPI |
|
591 NTSTATUS |
|
592 DDKAPI |
|
593 HidP_UsageListDifference( |
|
594 /*IN*/ PUSAGE PreviousUsageList, |
|
595 /*IN*/ PUSAGE CurrentUsageList, |
|
596 /*OUT*/ PUSAGE BreakUsageList, |
|
597 /*OUT*/ PUSAGE MakeUsageList, |
|
598 /*IN*/ ULONG UsageListLength); |
|
599 |
|
600 #ifdef __cplusplus |
|
601 } |
|
602 #endif |
|
603 |
|
604 #endif /* __HIDPI_H */ |