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