Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
hidpi.h
00001 /* 00002 * hidpi.h 00003 * 00004 * Public Interface for HID parsing library. 00005 * 00006 * This file is part of the w32api package. 00007 * 00008 * Contributors: 00009 * Created by Casper S. Hornstrup <chorns@users.sourceforge.net> 00010 * 00011 * THIS SOFTWARE IS NOT COPYRIGHTED 00012 * 00013 * This source code is offered for use in the public domain. You may 00014 * use, modify or distribute it freely. 00015 * 00016 * This code is distributed in the hope that it will be useful but 00017 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY 00018 * DISCLAIMED. This includes but is not limited to warranties of 00019 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 00020 * 00021 */ 00022 00023 #ifndef __HIDPI_H 00024 #define __HIDPI_H 00025 00026 #if __GNUC__ >=3 00027 #pragma GCC system_header 00028 #endif 00029 00030 #ifdef __cplusplus 00031 extern "C" { 00032 #endif 00033 00034 #include "ntddk.h" 00035 #include "hidusage.h" 00036 00037 #if defined(_HIDPI_) 00038 #define HIDAPI DECLSPEC_EXPORT 00039 #else 00040 #define HIDAPI DECLSPEC_IMPORT 00041 #endif 00042 00043 typedef PUCHAR PHIDP_REPORT_DESCRIPTOR; 00044 typedef struct _HIDP_PREPARSED_DATA * PHIDP_PREPARSED_DATA; 00045 00046 typedef struct _HIDP_UNKNOWN_TOKEN { 00047 UCHAR Token; 00048 UCHAR Reserved[3]; 00049 ULONG BitField; 00050 } HIDP_UNKNOWN_TOKEN, *PHIDP_UNKNOWN_TOKEN; 00051 00052 typedef enum _HIDP_KEYBOARD_DIRECTION { 00053 HidP_Keyboard_Break, 00054 HidP_Keyboard_Make 00055 } HIDP_KEYBOARD_DIRECTION; 00056 00057 typedef struct _HIDP_KEYBOARD_MODIFIER_STATE { 00058 _ANONYMOUS_UNION union { 00059 _ANONYMOUS_STRUCT struct { 00060 ULONG LeftControl : 1; 00061 ULONG LeftShift : 1; 00062 ULONG LeftAlt : 1; 00063 ULONG LeftGUI : 1; 00064 ULONG RightControl : 1; 00065 ULONG RightShift : 1; 00066 ULONG RightAlt : 1; 00067 ULONG RigthGUI : 1; 00068 ULONG CapsLock : 1; 00069 ULONG ScollLock : 1; 00070 ULONG NumLock : 1; 00071 ULONG Reserved : 21; 00072 } DUMMYSTRUCTNAME; 00073 ULONG ul; 00074 } DUMMYUNIONNAME; 00075 } HIDP_KEYBOARD_MODIFIER_STATE, *PHIDP_KEYBOARD_MODIFIER_STATE; 00076 00077 typedef BOOLEAN (DDKAPI *PHIDP_INSERT_SCANCODES)( 00078 /*IN*/ PVOID Context, 00079 /*IN*/ PCHAR NewScanCodes, 00080 /*IN*/ ULONG Length); 00081 00082 typedef struct _USAGE_AND_PAGE { 00083 USAGE Usage; 00084 USAGE UsagePage; 00085 } USAGE_AND_PAGE, *PUSAGE_AND_PAGE; 00086 00087 HIDAPI 00088 NTSTATUS 00089 DDKAPI 00090 HidP_TranslateUsageAndPagesToI8042ScanCodes( 00091 /*IN*/ PUSAGE_AND_PAGE ChangedUsageList, 00092 /*IN*/ ULONG UsageListLength, 00093 /*IN*/ HIDP_KEYBOARD_DIRECTION KeyAction, 00094 /*IN OUT*/ PHIDP_KEYBOARD_MODIFIER_STATE ModifierState, 00095 /*IN*/ PHIDP_INSERT_SCANCODES InsertCodesProcedure, 00096 /*IN*/ PVOID InsertCodesContext); 00097 00098 HIDAPI 00099 NTSTATUS 00100 DDKAPI 00101 HidP_TranslateUsagesToI8042ScanCodes( 00102 /*IN*/ PUSAGE ChangedUsageList, 00103 /*IN*/ ULONG UsageListLength, 00104 /*IN*/ HIDP_KEYBOARD_DIRECTION KeyAction, 00105 /*IN OUT*/ PHIDP_KEYBOARD_MODIFIER_STATE ModifierState, 00106 /*IN*/ PHIDP_INSERT_SCANCODES InsertCodesProcedure, 00107 /*IN*/ PVOID InsertCodesContext); 00108 00109 typedef struct _HIDP_BUTTON_CAPS { 00110 USAGE UsagePage; 00111 UCHAR ReportID; 00112 BOOLEAN IsAlias; 00113 USHORT BitField; 00114 USHORT LinkCollection; 00115 USAGE LinkUsage; 00116 USAGE LinkUsagePage; 00117 BOOLEAN IsRange; 00118 BOOLEAN IsStringRange; 00119 BOOLEAN IsDesignatorRange; 00120 BOOLEAN IsAbsolute; 00121 ULONG Reserved[10]; 00122 _ANONYMOUS_UNION union { 00123 struct { 00124 USAGE UsageMin, UsageMax; 00125 USHORT StringMin, StringMax; 00126 USHORT DesignatorMin, DesignatorMax; 00127 USHORT DataIndexMin, DataIndexMax; 00128 } Range; 00129 struct { 00130 USAGE Usage, Reserved1; 00131 USHORT StringIndex, Reserved2; 00132 USHORT DesignatorIndex, Reserved3; 00133 USHORT DataIndex, Reserved4; 00134 } NotRange; 00135 } DUMMYUNIONNAME; 00136 } HIDP_BUTTON_CAPS, *PHIDP_BUTTON_CAPS; 00137 00138 typedef struct _HIDP_CAPS { 00139 USAGE Usage; 00140 USAGE UsagePage; 00141 USHORT InputReportByteLength; 00142 USHORT OutputReportByteLength; 00143 USHORT FeatureReportByteLength; 00144 USHORT Reserved[17]; 00145 USHORT NumberLinkCollectionNodes; 00146 USHORT NumberInputButtonCaps; 00147 USHORT NumberInputValueCaps; 00148 USHORT NumberInputDataIndices; 00149 USHORT NumberOutputButtonCaps; 00150 USHORT NumberOutputValueCaps; 00151 USHORT NumberOutputDataIndices; 00152 USHORT NumberFeatureButtonCaps; 00153 USHORT NumberFeatureValueCaps; 00154 USHORT NumberFeatureDataIndices; 00155 } HIDP_CAPS, *PHIDP_CAPS; 00156 00157 typedef struct _HIDP_DATA { 00158 USHORT DataIndex; 00159 USHORT Reserved; 00160 _ANONYMOUS_UNION union { 00161 ULONG RawValue; 00162 BOOLEAN On; 00163 } DUMMYUNIONNAME; 00164 } HIDP_DATA, *PHIDP_DATA; 00165 00166 typedef struct _HIDP_EXTENDED_ATTRIBUTES { 00167 UCHAR NumGlobalUnknowns; 00168 UCHAR Reserved[3]; 00169 PHIDP_UNKNOWN_TOKEN GlobalUnknowns; 00170 ULONG Data[1]; 00171 } HIDP_EXTENDED_ATTRIBUTES, *PHIDP_EXTENDED_ATTRIBUTES; 00172 00173 #define HIDP_LINK_COLLECTION_ROOT ((USHORT) -1) 00174 #define HIDP_LINK_COLLECTION_UNSPECIFIED ((USHORT) 0) 00175 00176 typedef struct _HIDP_LINK_COLLECTION_NODE { 00177 USAGE LinkUsage; 00178 USAGE LinkUsagePage; 00179 USHORT Parent; 00180 USHORT NumberOfChildren; 00181 USHORT NextSibling; 00182 USHORT FirstChild; 00183 ULONG CollectionType: 8; 00184 ULONG IsAlias: 1; 00185 ULONG Reserved: 23; 00186 PVOID UserContext; 00187 } HIDP_LINK_COLLECTION_NODE, *PHIDP_LINK_COLLECTION_NODE; 00188 00189 typedef struct _HIDP_VALUE_CAPS { 00190 USAGE UsagePage; 00191 UCHAR ReportID; 00192 BOOLEAN IsAlias; 00193 USHORT BitField; 00194 USHORT LinkCollection; 00195 USAGE LinkUsage; 00196 USAGE LinkUsagePage; 00197 BOOLEAN IsRange; 00198 BOOLEAN IsStringRange; 00199 BOOLEAN IsDesignatorRange; 00200 BOOLEAN IsAbsolute; 00201 BOOLEAN HasNull; 00202 UCHAR Reserved; 00203 USHORT BitSize; 00204 USHORT ReportCount; 00205 USHORT Reserved2[5]; 00206 ULONG UnitsExp; 00207 ULONG Units; 00208 LONG LogicalMin, LogicalMax; 00209 LONG PhysicalMin, PhysicalMax; 00210 _ANONYMOUS_UNION union { 00211 struct { 00212 USAGE UsageMin, UsageMax; 00213 USHORT StringMin, StringMax; 00214 USHORT DesignatorMin, DesignatorMax; 00215 USHORT DataIndexMin, DataIndexMax; 00216 } Range; 00217 struct { 00218 USAGE Usage, Reserved1; 00219 USHORT StringIndex, Reserved2; 00220 USHORT DesignatorIndex, Reserved3; 00221 USHORT DataIndex, Reserved4; 00222 } NotRange; 00223 } DUMMYUNIONNAME; 00224 } HIDP_VALUE_CAPS, *PHIDP_VALUE_CAPS; 00225 00226 typedef enum _HIDP_REPORT_TYPE { 00227 HidP_Input, 00228 HidP_Output, 00229 HidP_Feature 00230 } HIDP_REPORT_TYPE; 00231 00232 #define FACILITY_HID_ERROR_CODE 0x11 00233 00234 #define HIDP_ERROR_CODES(SEV, CODE) \ 00235 ((NTSTATUS) (((SEV) << 28) | (FACILITY_HID_ERROR_CODE << 16) | (CODE))) 00236 00237 #define HIDP_STATUS_SUCCESS (HIDP_ERROR_CODES(0x0, 0)) 00238 #define HIDP_STATUS_NULL (HIDP_ERROR_CODES(0x8, 1)) 00239 #define HIDP_STATUS_INVALID_PREPARSED_DATA (HIDP_ERROR_CODES(0xC, 1)) 00240 #define HIDP_STATUS_INVALID_REPORT_TYPE (HIDP_ERROR_CODES(0xC, 2)) 00241 #define HIDP_STATUS_INVALID_REPORT_LENGTH (HIDP_ERROR_CODES(0xC, 3)) 00242 #define HIDP_STATUS_USAGE_NOT_FOUND (HIDP_ERROR_CODES(0xC, 4)) 00243 #define HIDP_STATUS_VALUE_OUT_OF_RANGE (HIDP_ERROR_CODES(0xC, 5)) 00244 #define HIDP_STATUS_BAD_LOG_PHY_VALUES (HIDP_ERROR_CODES(0xC, 6)) 00245 #define HIDP_STATUS_BUFFER_TOO_SMALL (HIDP_ERROR_CODES(0xC, 7)) 00246 #define HIDP_STATUS_INTERNAL_ERROR (HIDP_ERROR_CODES(0xC, 8)) 00247 #define HIDP_STATUS_I8042_TRANS_UNKNOWN (HIDP_ERROR_CODES(0xC, 9)) 00248 #define HIDP_STATUS_INCOMPATIBLE_REPORT_ID (HIDP_ERROR_CODES(0xC, 0xA)) 00249 #define HIDP_STATUS_NOT_VALUE_ARRAY (HIDP_ERROR_CODES(0xC, 0xB)) 00250 #define HIDP_STATUS_IS_VALUE_ARRAY (HIDP_ERROR_CODES(0xC, 0xC)) 00251 #define HIDP_STATUS_DATA_INDEX_NOT_FOUND (HIDP_ERROR_CODES(0xC, 0xD)) 00252 #define HIDP_STATUS_DATA_INDEX_OUT_OF_RANGE (HIDP_ERROR_CODES(0xC, 0xE)) 00253 #define HIDP_STATUS_BUTTON_NOT_PRESSED (HIDP_ERROR_CODES(0xC, 0xF)) 00254 #define HIDP_STATUS_REPORT_DOES_NOT_EXIST (HIDP_ERROR_CODES(0xC, 0x10)) 00255 #define HIDP_STATUS_NOT_IMPLEMENTED (HIDP_ERROR_CODES(0xC, 0x20)) 00256 #define HIDP_STATUS_I8242_TRANS_UNKNOWN HIDP_STATUS_I8042_TRANS_UNKNOWN 00257 00258 00259 00260 /* 00261 * NTSTATUS 00262 * HidP_GetButtonCaps( 00263 * IN HIDP_REPORT_TYPE ReportType, 00264 * OUT PHIDP_BUTTON_CAPS ButtonCaps, 00265 * IN OUT PULONG ButtonCapsLength, 00266 * IN PHIDP_PREPARSED_DATA PreparsedData); 00267 */ 00268 #define HidP_GetButtonCaps(_Type_, _Caps_, _Len_, _Data_) \ 00269 HidP_GetSpecificButtonCaps(_Type_, 0, 0, 0, _Caps_, _Len_, _Data_) 00270 00271 /* 00272 * NTSTATUS 00273 * HidP_GetButtons( 00274 * IN HIDP_REPORT_TYPE ReportType, 00275 * IN USAGE UsagePage, 00276 * IN USHORT LinkCollection, 00277 * OUT USAGE *UsageList, 00278 * IN OUT ULONG *UsageLength, 00279 * IN PHIDP_PREPARSED_DATA PreparsedData, 00280 * IN PCHAR Report, 00281 * IN ULONG ReportLength); 00282 */ 00283 #define HidP_GetButtons(Rty, UPa, LCo, ULi, ULe, Ppd, Rep, RLe) \ 00284 HidP_GetUsages(Rty, UPa, LCo, ULi, ULe, Ppd, Rep, RLe) 00285 00286 #define HidP_GetButtonListLength(RTy, UPa, Ppd) \ 00287 HidP_GetUsageListLength(Rty, UPa, Ppd) 00288 00289 00290 /* 00291 * NTSTATUS 00292 * HidP_GetButtonsEx( 00293 * IN HIDP_REPORT_TYPE ReportType, 00294 * IN USHORT LinkCollection, 00295 * OUT PUSAGE_AND_PAGE ButtonList, 00296 * IN OUT ULONG *UsageLength, 00297 * IN PHIDP_PREPARSED_DATA PreparsedData, 00298 * IN PCHAR Report, 00299 * IN ULONG ReportLength); 00300 */ 00301 #define HidP_GetButtonsEx(RT, LC, BL, UL, PD, R, RL) \ 00302 HidP_GetUsagesEx(RT, LC, BL, UL, PD, R, RL) 00303 00304 HIDAPI 00305 NTSTATUS 00306 DDKAPI 00307 HidP_GetCaps( 00308 /*IN*/ PHIDP_PREPARSED_DATA PreparsedData, 00309 /*OUT*/ PHIDP_CAPS Capabilities); 00310 00311 HIDAPI 00312 NTSTATUS 00313 DDKAPI 00314 HidP_GetData( 00315 /*IN*/ HIDP_REPORT_TYPE ReportType, 00316 /*OUT*/ PHIDP_DATA DataList, 00317 /*IN OUT*/ PULONG DataLength, 00318 /*IN*/ PHIDP_PREPARSED_DATA PreparsedData, 00319 /*IN*/ PCHAR Report, 00320 /*IN*/ ULONG ReportLength); 00321 00322 HIDAPI 00323 NTSTATUS 00324 DDKAPI 00325 HidP_GetExtendedAttributes( 00326 /*IN*/ HIDP_REPORT_TYPE ReportType, 00327 /*IN*/ USHORT DataIndex, 00328 /*IN*/ PHIDP_PREPARSED_DATA PreparsedData, 00329 /*OUT*/ PHIDP_EXTENDED_ATTRIBUTES Attributes, 00330 /*IN OUT*/ PULONG LengthAttributes); 00331 00332 HIDAPI 00333 NTSTATUS 00334 DDKAPI 00335 HidP_GetLinkCollectionNodes( 00336 /*OUT*/ PHIDP_LINK_COLLECTION_NODE LinkCollectionNodes, 00337 /*IN OUT*/ PULONG LinkCollectionNodesLength, 00338 /*IN*/ PHIDP_PREPARSED_DATA PreparsedData); 00339 00340 HIDAPI 00341 NTSTATUS 00342 DDKAPI 00343 HidP_GetScaledUsageValue( 00344 /*IN*/ HIDP_REPORT_TYPE ReportType, 00345 /*IN*/ USAGE UsagePage, 00346 /*IN*/ USHORT LinkCollection /*OPTIONAL*/, 00347 /*IN*/ USAGE Usage, 00348 /*OUT*/ PLONG UsageValue, 00349 /*IN*/ PHIDP_PREPARSED_DATA PreparsedData, 00350 /*IN*/ PCHAR Report, 00351 /*IN*/ ULONG ReportLength); 00352 00353 HIDAPI 00354 NTSTATUS 00355 DDKAPI 00356 HidP_GetSpecificButtonCaps( 00357 /*IN*/ HIDP_REPORT_TYPE ReportType, 00358 /*IN*/ USAGE UsagePage, 00359 /*IN*/ USHORT LinkCollection, 00360 /*IN*/ USAGE Usage, 00361 /*OUT*/ PHIDP_BUTTON_CAPS ButtonCaps, 00362 /*IN OUT*/ PULONG ButtonCapsLength, 00363 /*IN*/ PHIDP_PREPARSED_DATA PreparsedData); 00364 00365 HIDAPI 00366 NTSTATUS 00367 DDKAPI 00368 HidP_GetSpecificValueCaps( 00369 /*IN*/ HIDP_REPORT_TYPE ReportType, 00370 /*IN*/ USAGE UsagePage, 00371 /*IN*/ USHORT LinkCollection, 00372 /*IN*/ USAGE Usage, 00373 /*OUT*/ PHIDP_VALUE_CAPS ValueCaps, 00374 /*IN OUT*/ PULONG ValueCapsLength, 00375 /*IN*/ PHIDP_PREPARSED_DATA PreparsedData); 00376 00377 HIDAPI 00378 NTSTATUS 00379 DDKAPI 00380 HidP_GetUsages( 00381 /*IN*/ HIDP_REPORT_TYPE ReportType, 00382 /*IN*/ USAGE UsagePage, 00383 /*IN*/ USHORT LinkCollection /*OPTIONAL*/, 00384 /*OUT*/ USAGE *UsageList, 00385 /*IN OUT*/ ULONG *UsageLength, 00386 /*IN*/ PHIDP_PREPARSED_DATA PreparsedData, 00387 /*IN*/ PCHAR Report, 00388 /*IN*/ ULONG ReportLength); 00389 00390 HIDAPI 00391 NTSTATUS 00392 DDKAPI 00393 HidP_GetUsagesEx( 00394 /*IN*/ HIDP_REPORT_TYPE ReportType, 00395 /*IN*/ USHORT LinkCollection, 00396 /*OUT*/ PUSAGE_AND_PAGE ButtonList, 00397 /*IN OUT*/ ULONG *UsageLength, 00398 /*IN*/ PHIDP_PREPARSED_DATA PreparsedData, 00399 /*IN*/ PCHAR Report, 00400 /*IN*/ ULONG ReportLength); 00401 00402 HIDAPI 00403 NTSTATUS 00404 DDKAPI 00405 HidP_GetUsageValue( 00406 /*IN*/ HIDP_REPORT_TYPE ReportType, 00407 /*IN*/ USAGE UsagePage, 00408 /*IN*/ USHORT LinkCollection, 00409 /*IN*/ USAGE Usage, 00410 /*OUT*/ PULONG UsageValue, 00411 /*IN*/ PHIDP_PREPARSED_DATA PreparsedData, 00412 /*IN*/ PCHAR Report, 00413 /*IN*/ ULONG ReportLength); 00414 00415 HIDAPI 00416 NTSTATUS 00417 DDKAPI 00418 HidP_GetUsageValueArray( 00419 /*IN*/ HIDP_REPORT_TYPE ReportType, 00420 /*IN*/ USAGE UsagePage, 00421 /*IN*/ USHORT LinkCollection /*OPTIONAL*/, 00422 /*IN*/ USAGE Usage, 00423 /*OUT*/ PCHAR UsageValue, 00424 /*IN*/ USHORT UsageValueByteLength, 00425 /*IN*/ PHIDP_PREPARSED_DATA PreparsedData, 00426 /*IN*/ PCHAR Report, 00427 /*IN*/ ULONG ReportLength); 00428 00429 /* 00430 * NTSTATUS 00431 * HidP_GetValueCaps( 00432 * IN HIDP_REPORT_TYPE ReportType, 00433 * OUT PHIDP_VALUE_CAPS ValueCaps, 00434 * IN OUT PULONG ValueCapsLength, 00435 * IN PHIDP_PREPARSED_DATA PreparsedData); 00436 */ 00437 #define HidP_GetValueCaps(_Type_, _Caps_, _Len_, _Data_) \ 00438 HidP_GetSpecificValueCaps (_Type_, 0, 0, 0, _Caps_, _Len_, _Data_) 00439 00440 HIDAPI 00441 NTSTATUS 00442 DDKAPI 00443 HidP_InitializeReportForID( 00444 /*IN*/ HIDP_REPORT_TYPE ReportType, 00445 /*IN*/ UCHAR ReportID, 00446 /*IN*/ PHIDP_PREPARSED_DATA PreparsedData, 00447 /*IN OUT*/ PCHAR Report, 00448 /*IN*/ ULONG ReportLength); 00449 00450 /* 00451 * BOOLEAN 00452 * HidP_IsSameUsageAndPage( 00453 * USAGE_AND_PAGE u1, 00454 * USAGE_AND_PAGE u2); 00455 */ 00456 #define HidP_IsSameUsageAndPage(u1, u2) ((* (PULONG) &u1) == (* (PULONG) &u2)) 00457 00458 HIDAPI 00459 ULONG 00460 DDKAPI 00461 HidP_MaxDataListLength( 00462 /*IN*/ HIDP_REPORT_TYPE ReportType, 00463 /*IN*/ PHIDP_PREPARSED_DATA PreparsedData); 00464 00465 HIDAPI 00466 ULONG 00467 DDKAPI 00468 HidP_MaxUsageListLength( 00469 /*IN*/ HIDP_REPORT_TYPE ReportType, 00470 /*IN*/ USAGE UsagePage /*OPTIONAL*/, 00471 /*IN*/ PHIDP_PREPARSED_DATA PreparsedData); 00472 00473 /* 00474 * NTSTATUS 00475 * HidP_SetButtons( 00476 * IN HIDP_REPORT_TYPE ReportType, 00477 * IN USAGE UsagePage, 00478 * IN USHORT LinkCollection, 00479 * IN PUSAGE UsageList, 00480 * IN OUT PULONG UsageLength, 00481 * IN PHIDP_PREPARSED_DATA PreparsedData, 00482 * IN OUT PCHAR Report, 00483 * IN ULONG ReportLength); 00484 */ 00485 #define HidP_SetButtons(RT, UP, LC, UL1, UL2, PD, R, RL) \ 00486 HidP_SetUsages(RT, UP, LC, UL1, UL2, PD, R, RL) 00487 00488 HIDAPI 00489 NTSTATUS 00490 DDKAPI 00491 HidP_SetData( 00492 /*IN*/ HIDP_REPORT_TYPE ReportType, 00493 /*IN*/ PHIDP_DATA DataList, 00494 /*IN OUT*/ PULONG DataLength, 00495 /*IN*/ PHIDP_PREPARSED_DATA PreparsedData, 00496 /*IN OUT*/ PCHAR Report, 00497 /*IN*/ ULONG ReportLength); 00498 00499 HIDAPI 00500 NTSTATUS 00501 DDKAPI 00502 HidP_SetScaledUsageValue( 00503 /*IN*/ HIDP_REPORT_TYPE ReportType, 00504 /*IN*/ USAGE UsagePage, 00505 /*IN*/ USHORT LinkCollection /*OPTIONAL*/, 00506 /*IN*/ USAGE Usage, 00507 /*IN*/ LONG UsageValue, 00508 /*IN*/ PHIDP_PREPARSED_DATA PreparsedData, 00509 /*IN OUT*/ PCHAR Report, 00510 /*IN*/ ULONG ReportLength); 00511 00512 HIDAPI 00513 NTSTATUS 00514 DDKAPI 00515 HidP_SetUsages( 00516 /*IN*/ HIDP_REPORT_TYPE ReportType, 00517 /*IN*/ USAGE UsagePage, 00518 /*IN*/ USHORT LinkCollection /*OPTIONAL*/, 00519 /*IN*/ PUSAGE UsageList, 00520 /*IN OUT*/ PULONG UsageLength, 00521 /*IN*/ PHIDP_PREPARSED_DATA PreparsedData, 00522 /*IN OUT*/ PCHAR Report, 00523 /*IN*/ ULONG ReportLength); 00524 00525 HIDAPI 00526 NTSTATUS 00527 DDKAPI 00528 HidP_SetUsageValue( 00529 /*IN*/ HIDP_REPORT_TYPE ReportType, 00530 /*IN*/ USAGE UsagePage, 00531 /*IN*/ USHORT LinkCollection, 00532 /*IN*/ USAGE Usage, 00533 /*IN*/ ULONG UsageValue, 00534 /*IN*/ PHIDP_PREPARSED_DATA PreparsedData, 00535 /*IN OUT*/ PCHAR Report, 00536 /*IN*/ ULONG ReportLength); 00537 00538 HIDAPI 00539 NTSTATUS 00540 DDKAPI 00541 HidP_SetUsageValueArray( 00542 /*IN*/ HIDP_REPORT_TYPE ReportType, 00543 /*IN*/ USAGE UsagePage, 00544 /*IN*/ USHORT LinkCollection /*OPTIONAL*/, 00545 /*IN*/ USAGE Usage, 00546 /*IN*/ PCHAR UsageValue, 00547 /*IN*/ USHORT UsageValueByteLength, 00548 /*IN*/ PHIDP_PREPARSED_DATA PreparsedData, 00549 /*OUT*/ PCHAR Report, 00550 /*IN*/ ULONG ReportLength); 00551 00552 /* 00553 * NTSTATUS 00554 * HidP_UnsetButtons( 00555 * IN HIDP_REPORT_TYPE ReportType, 00556 * IN USAGE UsagePage, 00557 * IN USHORT LinkCollection, 00558 * IN PUSAGE UsageList, 00559 * IN OUT PULONG UsageLength, 00560 * IN PHIDP_PREPARSED_DATA PreparsedData, 00561 * IN OUT PCHAR Report, 00562 * IN ULONG ReportLength); 00563 */ 00564 #define HidP_UnsetButtons(RT, UP, LC, UL1, UL2, PD, R, RL) \ 00565 HidP_UnsetUsages(RT, UP, LC, UL1, UL2, PD, R, RL) 00566 00567 HIDAPI 00568 NTSTATUS 00569 DDKAPI 00570 HidP_UnsetUsages( 00571 /*IN*/ HIDP_REPORT_TYPE ReportType, 00572 /*IN*/ USAGE UsagePage, 00573 /*IN*/ USHORT LinkCollection, 00574 /*IN*/ PUSAGE UsageList, 00575 /*IN OUT*/ PULONG UsageLength, 00576 /*IN*/ PHIDP_PREPARSED_DATA PreparsedData, 00577 /*IN OUT*/ PCHAR Report, 00578 /*IN*/ ULONG ReportLength); 00579 00580 HIDAPI 00581 NTSTATUS 00582 DDKAPI 00583 HidP_UsageAndPageListDifference( 00584 /*IN*/ PUSAGE_AND_PAGE PreviousUsageList, 00585 /*IN*/ PUSAGE_AND_PAGE CurrentUsageList, 00586 /*OUT*/ PUSAGE_AND_PAGE BreakUsageList, 00587 /*OUT*/ PUSAGE_AND_PAGE MakeUsageList, 00588 /*IN*/ ULONG UsageListLength); 00589 00590 HIDAPI 00591 NTSTATUS 00592 DDKAPI 00593 HidP_UsageListDifference( 00594 /*IN*/ PUSAGE PreviousUsageList, 00595 /*IN*/ PUSAGE CurrentUsageList, 00596 /*OUT*/ PUSAGE BreakUsageList, 00597 /*OUT*/ PUSAGE MakeUsageList, 00598 /*IN*/ ULONG UsageListLength); 00599 00600 #ifdef __cplusplus 00601 } 00602 #endif 00603 00604 #endif /* __HIDPI_H */
Generated on Tue Jul 12 2022 19:59:54 by
1.7.2