ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

hidpi.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 doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.