source: Daodan/MinGW/include/ddk/hidpi.h@ 1054

Last change on this file since 1054 was 1046, checked in by alloc, 8 years ago

Daodan: Added Windows MinGW and build batch file

File size: 15.5 KB
Line 
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
31extern "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
43typedef PUCHAR PHIDP_REPORT_DESCRIPTOR;
44typedef struct _HIDP_PREPARSED_DATA * PHIDP_PREPARSED_DATA;
45
46typedef struct _HIDP_UNKNOWN_TOKEN {
47 UCHAR Token;
48 UCHAR Reserved[3];
49 ULONG BitField;
50} HIDP_UNKNOWN_TOKEN, *PHIDP_UNKNOWN_TOKEN;
51
52typedef enum _HIDP_KEYBOARD_DIRECTION {
53 HidP_Keyboard_Break,
54 HidP_Keyboard_Make
55} HIDP_KEYBOARD_DIRECTION;
56
57typedef 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
77typedef BOOLEAN (DDKAPI *PHIDP_INSERT_SCANCODES)(
78 /*IN*/ PVOID Context,
79 /*IN*/ PCHAR NewScanCodes,
80 /*IN*/ ULONG Length);
81
82typedef struct _USAGE_AND_PAGE {
83 USAGE Usage;
84 USAGE UsagePage;
85} USAGE_AND_PAGE, *PUSAGE_AND_PAGE;
86
87HIDAPI
88NTSTATUS
89DDKAPI
90HidP_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
98HIDAPI
99NTSTATUS
100DDKAPI
101HidP_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
109typedef 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
138typedef 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
157typedef 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
166typedef 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
176typedef 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
189typedef 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
226typedef 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
304HIDAPI
305NTSTATUS
306DDKAPI
307HidP_GetCaps(
308 /*IN*/ PHIDP_PREPARSED_DATA PreparsedData,
309 /*OUT*/ PHIDP_CAPS Capabilities);
310
311HIDAPI
312NTSTATUS
313DDKAPI
314HidP_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
322HIDAPI
323NTSTATUS
324DDKAPI
325HidP_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
332HIDAPI
333NTSTATUS
334DDKAPI
335HidP_GetLinkCollectionNodes(
336 /*OUT*/ PHIDP_LINK_COLLECTION_NODE LinkCollectionNodes,
337 /*IN OUT*/ PULONG LinkCollectionNodesLength,
338 /*IN*/ PHIDP_PREPARSED_DATA PreparsedData);
339
340HIDAPI
341NTSTATUS
342DDKAPI
343HidP_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
353HIDAPI
354NTSTATUS
355DDKAPI
356HidP_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
365HIDAPI
366NTSTATUS
367DDKAPI
368HidP_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
377HIDAPI
378NTSTATUS
379DDKAPI
380HidP_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
390HIDAPI
391NTSTATUS
392DDKAPI
393HidP_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
402HIDAPI
403NTSTATUS
404DDKAPI
405HidP_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
415HIDAPI
416NTSTATUS
417DDKAPI
418HidP_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
440HIDAPI
441NTSTATUS
442DDKAPI
443HidP_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
458HIDAPI
459ULONG
460DDKAPI
461HidP_MaxDataListLength(
462 /*IN*/ HIDP_REPORT_TYPE ReportType,
463 /*IN*/ PHIDP_PREPARSED_DATA PreparsedData);
464
465HIDAPI
466ULONG
467DDKAPI
468HidP_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
488HIDAPI
489NTSTATUS
490DDKAPI
491HidP_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
499HIDAPI
500NTSTATUS
501DDKAPI
502HidP_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
512HIDAPI
513NTSTATUS
514DDKAPI
515HidP_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
525HIDAPI
526NTSTATUS
527DDKAPI
528HidP_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
538HIDAPI
539NTSTATUS
540DDKAPI
541HidP_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
567HIDAPI
568NTSTATUS
569DDKAPI
570HidP_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
580HIDAPI
581NTSTATUS
582DDKAPI
583HidP_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
590HIDAPI
591NTSTATUS
592DDKAPI
593HidP_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 */
Note: See TracBrowser for help on using the repository browser.