Embed:
(wiki syntax)
Show/hide line numbers
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