Bindings to the HID portion of the Windows DDK.
							parent
							
								
									52a8c3ebc9
								
							
						
					
					
						commit
						a56d0a7602
					
				| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
Erik Charlebois
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,805 @@
 | 
			
		|||
! Copyright (C) 2010 Erik Charlebois.
 | 
			
		||||
! See http://factorcode.org/license.txt for BSD license.
 | 
			
		||||
USING: alien.c-types alien.libraries alien.syntax classes.struct
 | 
			
		||||
kernel math windows.types windows.ole32 ;
 | 
			
		||||
IN: windows.ddk.hid
 | 
			
		||||
 | 
			
		||||
<< "hid" "hid.dll" "stdcall" add-library >>
 | 
			
		||||
LIBRARY: hid
 | 
			
		||||
 | 
			
		||||
TYPEDEF: LONG   NTSTATUS
 | 
			
		||||
TYPEDEF: USHORT USAGE
 | 
			
		||||
TYPEDEF: USAGE* PUSAGE
 | 
			
		||||
 | 
			
		||||
CONSTANT: HID_USAGE_PAGE_UNDEFINED      HEX: 00
 | 
			
		||||
CONSTANT: HID_USAGE_PAGE_GENERIC        HEX: 01
 | 
			
		||||
CONSTANT: HID_USAGE_PAGE_SIMULATION     HEX: 02
 | 
			
		||||
CONSTANT: HID_USAGE_PAGE_VR             HEX: 03
 | 
			
		||||
CONSTANT: HID_USAGE_PAGE_SPORT          HEX: 04
 | 
			
		||||
CONSTANT: HID_USAGE_PAGE_GAME           HEX: 05
 | 
			
		||||
CONSTANT: HID_USAGE_PAGE_KEYBOARD       HEX: 07
 | 
			
		||||
CONSTANT: HID_USAGE_PAGE_LED            HEX: 08
 | 
			
		||||
CONSTANT: HID_USAGE_PAGE_BUTTON         HEX: 09
 | 
			
		||||
CONSTANT: HID_USAGE_PAGE_ORDINAL        HEX: 0A
 | 
			
		||||
CONSTANT: HID_USAGE_PAGE_TELEPHONY      HEX: 0B
 | 
			
		||||
CONSTANT: HID_USAGE_PAGE_CONSUMER       HEX: 0C
 | 
			
		||||
CONSTANT: HID_USAGE_PAGE_DIGITIZER      HEX: 0D
 | 
			
		||||
CONSTANT: HID_USAGE_PAGE_UNICODE        HEX: 10
 | 
			
		||||
CONSTANT: HID_USAGE_PAGE_ALPHANUMERIC   HEX: 14
 | 
			
		||||
 | 
			
		||||
CONSTANT: HID_USAGE_PAGE_MICROSOFT_BLUETOOTH_HANDSFREE  HEX: FFF3
 | 
			
		||||
 | 
			
		||||
CONSTANT: HID_USAGE_GENERIC_POINTER      HEX: 01
 | 
			
		||||
CONSTANT: HID_USAGE_GENERIC_MOUSE        HEX: 02
 | 
			
		||||
CONSTANT: HID_USAGE_GENERIC_JOYSTICK     HEX: 04
 | 
			
		||||
CONSTANT: HID_USAGE_GENERIC_GAMEPAD      HEX: 05
 | 
			
		||||
CONSTANT: HID_USAGE_GENERIC_KEYBOARD     HEX: 06
 | 
			
		||||
CONSTANT: HID_USAGE_GENERIC_KEYPAD       HEX: 07
 | 
			
		||||
CONSTANT: HID_USAGE_GENERIC_SYSTEM_CTL   HEX: 80
 | 
			
		||||
 | 
			
		||||
CONSTANT: HID_USAGE_GENERIC_X                        HEX: 30
 | 
			
		||||
CONSTANT: HID_USAGE_GENERIC_Y                        HEX: 31
 | 
			
		||||
CONSTANT: HID_USAGE_GENERIC_Z                        HEX: 32
 | 
			
		||||
CONSTANT: HID_USAGE_GENERIC_RX                       HEX: 33
 | 
			
		||||
CONSTANT: HID_USAGE_GENERIC_RY                       HEX: 34
 | 
			
		||||
CONSTANT: HID_USAGE_GENERIC_RZ                       HEX: 35
 | 
			
		||||
CONSTANT: HID_USAGE_GENERIC_SLIDER                   HEX: 36
 | 
			
		||||
CONSTANT: HID_USAGE_GENERIC_DIAL                     HEX: 37
 | 
			
		||||
CONSTANT: HID_USAGE_GENERIC_WHEEL                    HEX: 38
 | 
			
		||||
CONSTANT: HID_USAGE_GENERIC_HATSWITCH                HEX: 39
 | 
			
		||||
CONSTANT: HID_USAGE_GENERIC_COUNTED_BUFFER           HEX: 3A
 | 
			
		||||
CONSTANT: HID_USAGE_GENERIC_BYTE_COUNT               HEX: 3B
 | 
			
		||||
CONSTANT: HID_USAGE_GENERIC_MOTION_WAKEUP            HEX: 3C
 | 
			
		||||
CONSTANT: HID_USAGE_GENERIC_VX                       HEX: 40
 | 
			
		||||
CONSTANT: HID_USAGE_GENERIC_VY                       HEX: 41
 | 
			
		||||
CONSTANT: HID_USAGE_GENERIC_VZ                       HEX: 42
 | 
			
		||||
CONSTANT: HID_USAGE_GENERIC_VBRX                     HEX: 43
 | 
			
		||||
CONSTANT: HID_USAGE_GENERIC_VBRY                     HEX: 44
 | 
			
		||||
CONSTANT: HID_USAGE_GENERIC_VBRZ                     HEX: 45
 | 
			
		||||
CONSTANT: HID_USAGE_GENERIC_VNO                      HEX: 46
 | 
			
		||||
CONSTANT: HID_USAGE_GENERIC_SYSCTL_POWER             HEX: 81
 | 
			
		||||
CONSTANT: HID_USAGE_GENERIC_SYSCTL_SLEEP             HEX: 82
 | 
			
		||||
CONSTANT: HID_USAGE_GENERIC_SYSCTL_WAKE              HEX: 83
 | 
			
		||||
CONSTANT: HID_USAGE_GENERIC_SYSCTL_CONTEXT_MENU      HEX: 84
 | 
			
		||||
CONSTANT: HID_USAGE_GENERIC_SYSCTL_MAIN_MENU         HEX: 85
 | 
			
		||||
CONSTANT: HID_USAGE_GENERIC_SYSCTL_APP_MENU          HEX: 86
 | 
			
		||||
CONSTANT: HID_USAGE_GENERIC_SYSCTL_HELP_MENU         HEX: 87
 | 
			
		||||
CONSTANT: HID_USAGE_GENERIC_SYSCTL_MENU_EXIT         HEX: 88
 | 
			
		||||
CONSTANT: HID_USAGE_GENERIC_SYSCTL_MENU_SELECT       HEX: 89
 | 
			
		||||
CONSTANT: HID_USAGE_GENERIC_SYSCTL_MENU_RIGHT        HEX: 8A
 | 
			
		||||
CONSTANT: HID_USAGE_GENERIC_SYSCTL_MENU_LEFT         HEX: 8B
 | 
			
		||||
CONSTANT: HID_USAGE_GENERIC_SYSCTL_MENU_UP           HEX: 8C
 | 
			
		||||
CONSTANT: HID_USAGE_GENERIC_SYSCTL_MENU_DOWN         HEX: 8D
 | 
			
		||||
 | 
			
		||||
CONSTANT: HID_USAGE_SIMULATION_RUDDER                HEX: BA
 | 
			
		||||
CONSTANT: HID_USAGE_SIMULATION_THROTTLE              HEX: BB
 | 
			
		||||
 | 
			
		||||
CONSTANT: HID_USAGE_KEYBOARD_NOEVENT     HEX: 00
 | 
			
		||||
CONSTANT: HID_USAGE_KEYBOARD_ROLLOVER    HEX: 01
 | 
			
		||||
CONSTANT: HID_USAGE_KEYBOARD_POSTFAIL    HEX: 02
 | 
			
		||||
CONSTANT: HID_USAGE_KEYBOARD_UNDEFINED   HEX: 03
 | 
			
		||||
 | 
			
		||||
CONSTANT: HID_USAGE_KEYBOARD_aA          HEX: 04
 | 
			
		||||
CONSTANT: HID_USAGE_KEYBOARD_zZ          HEX: 1D
 | 
			
		||||
CONSTANT: HID_USAGE_KEYBOARD_ONE         HEX: 1E
 | 
			
		||||
CONSTANT: HID_USAGE_KEYBOARD_ZERO        HEX: 27
 | 
			
		||||
CONSTANT: HID_USAGE_KEYBOARD_LCTRL       HEX: E0
 | 
			
		||||
CONSTANT: HID_USAGE_KEYBOARD_LSHFT       HEX: E1
 | 
			
		||||
CONSTANT: HID_USAGE_KEYBOARD_LALT        HEX: E2
 | 
			
		||||
CONSTANT: HID_USAGE_KEYBOARD_LGUI        HEX: E3
 | 
			
		||||
CONSTANT: HID_USAGE_KEYBOARD_RCTRL       HEX: E4
 | 
			
		||||
CONSTANT: HID_USAGE_KEYBOARD_RSHFT       HEX: E5
 | 
			
		||||
CONSTANT: HID_USAGE_KEYBOARD_RALT        HEX: E6
 | 
			
		||||
CONSTANT: HID_USAGE_KEYBOARD_RGUI        HEX: E7
 | 
			
		||||
CONSTANT: HID_USAGE_KEYBOARD_SCROLL_LOCK HEX: 47
 | 
			
		||||
CONSTANT: HID_USAGE_KEYBOARD_NUM_LOCK    HEX: 53
 | 
			
		||||
CONSTANT: HID_USAGE_KEYBOARD_CAPS_LOCK   HEX: 39
 | 
			
		||||
CONSTANT: HID_USAGE_KEYBOARD_F1          HEX: 3A
 | 
			
		||||
CONSTANT: HID_USAGE_KEYBOARD_F12         HEX: 45
 | 
			
		||||
CONSTANT: HID_USAGE_KEYBOARD_RETURN      HEX: 28
 | 
			
		||||
CONSTANT: HID_USAGE_KEYBOARD_ESCAPE      HEX: 29
 | 
			
		||||
CONSTANT: HID_USAGE_KEYBOARD_DELETE      HEX: 2A
 | 
			
		||||
CONSTANT: HID_USAGE_KEYBOARD_PRINT_SCREEN HEX: 46
 | 
			
		||||
 | 
			
		||||
CONSTANT: HID_USAGE_LED_NUM_LOCK               HEX: 01
 | 
			
		||||
CONSTANT: HID_USAGE_LED_CAPS_LOCK              HEX: 02
 | 
			
		||||
CONSTANT: HID_USAGE_LED_SCROLL_LOCK            HEX: 03
 | 
			
		||||
CONSTANT: HID_USAGE_LED_COMPOSE                HEX: 04
 | 
			
		||||
CONSTANT: HID_USAGE_LED_KANA                   HEX: 05
 | 
			
		||||
CONSTANT: HID_USAGE_LED_POWER                  HEX: 06
 | 
			
		||||
CONSTANT: HID_USAGE_LED_SHIFT                  HEX: 07
 | 
			
		||||
CONSTANT: HID_USAGE_LED_DO_NOT_DISTURB         HEX: 08
 | 
			
		||||
CONSTANT: HID_USAGE_LED_MUTE                   HEX: 09
 | 
			
		||||
CONSTANT: HID_USAGE_LED_TONE_ENABLE            HEX: 0A
 | 
			
		||||
CONSTANT: HID_USAGE_LED_HIGH_CUT_FILTER        HEX: 0B
 | 
			
		||||
CONSTANT: HID_USAGE_LED_LOW_CUT_FILTER         HEX: 0C
 | 
			
		||||
CONSTANT: HID_USAGE_LED_EQUALIZER_ENABLE       HEX: 0D
 | 
			
		||||
CONSTANT: HID_USAGE_LED_SOUND_FIELD_ON         HEX: 0E
 | 
			
		||||
CONSTANT: HID_USAGE_LED_SURROUND_FIELD_ON      HEX: 0F
 | 
			
		||||
CONSTANT: HID_USAGE_LED_REPEAT                 HEX: 10
 | 
			
		||||
CONSTANT: HID_USAGE_LED_STEREO                 HEX: 11
 | 
			
		||||
CONSTANT: HID_USAGE_LED_SAMPLING_RATE_DETECT   HEX: 12
 | 
			
		||||
CONSTANT: HID_USAGE_LED_SPINNING               HEX: 13
 | 
			
		||||
CONSTANT: HID_USAGE_LED_CAV                    HEX: 14
 | 
			
		||||
CONSTANT: HID_USAGE_LED_CLV                    HEX: 15
 | 
			
		||||
CONSTANT: HID_USAGE_LED_RECORDING_FORMAT_DET   HEX: 16
 | 
			
		||||
CONSTANT: HID_USAGE_LED_OFF_HOOK               HEX: 17
 | 
			
		||||
CONSTANT: HID_USAGE_LED_RING                   HEX: 18
 | 
			
		||||
CONSTANT: HID_USAGE_LED_MESSAGE_WAITING        HEX: 19
 | 
			
		||||
CONSTANT: HID_USAGE_LED_DATA_MODE              HEX: 1A
 | 
			
		||||
CONSTANT: HID_USAGE_LED_BATTERY_OPERATION      HEX: 1B
 | 
			
		||||
CONSTANT: HID_USAGE_LED_BATTERY_OK             HEX: 1C
 | 
			
		||||
CONSTANT: HID_USAGE_LED_BATTERY_LOW            HEX: 1D
 | 
			
		||||
CONSTANT: HID_USAGE_LED_SPEAKER                HEX: 1E
 | 
			
		||||
CONSTANT: HID_USAGE_LED_HEAD_SET               HEX: 1F
 | 
			
		||||
CONSTANT: HID_USAGE_LED_HOLD                   HEX: 20
 | 
			
		||||
CONSTANT: HID_USAGE_LED_MICROPHONE             HEX: 21
 | 
			
		||||
CONSTANT: HID_USAGE_LED_COVERAGE               HEX: 22
 | 
			
		||||
CONSTANT: HID_USAGE_LED_NIGHT_MODE             HEX: 23
 | 
			
		||||
CONSTANT: HID_USAGE_LED_SEND_CALLS             HEX: 24
 | 
			
		||||
CONSTANT: HID_USAGE_LED_CALL_PICKUP            HEX: 25
 | 
			
		||||
CONSTANT: HID_USAGE_LED_CONFERENCE             HEX: 26
 | 
			
		||||
CONSTANT: HID_USAGE_LED_STAND_BY               HEX: 27
 | 
			
		||||
CONSTANT: HID_USAGE_LED_CAMERA_ON              HEX: 28
 | 
			
		||||
CONSTANT: HID_USAGE_LED_CAMERA_OFF             HEX: 29
 | 
			
		||||
CONSTANT: HID_USAGE_LED_ON_LINE                HEX: 2A
 | 
			
		||||
CONSTANT: HID_USAGE_LED_OFF_LINE               HEX: 2B
 | 
			
		||||
CONSTANT: HID_USAGE_LED_BUSY                   HEX: 2C
 | 
			
		||||
CONSTANT: HID_USAGE_LED_READY                  HEX: 2D
 | 
			
		||||
CONSTANT: HID_USAGE_LED_PAPER_OUT              HEX: 2E
 | 
			
		||||
CONSTANT: HID_USAGE_LED_PAPER_JAM              HEX: 2F
 | 
			
		||||
CONSTANT: HID_USAGE_LED_REMOTE                 HEX: 30
 | 
			
		||||
CONSTANT: HID_USAGE_LED_FORWARD                HEX: 31
 | 
			
		||||
CONSTANT: HID_USAGE_LED_REVERSE                HEX: 32
 | 
			
		||||
CONSTANT: HID_USAGE_LED_STOP                   HEX: 33
 | 
			
		||||
CONSTANT: HID_USAGE_LED_REWIND                 HEX: 34
 | 
			
		||||
CONSTANT: HID_USAGE_LED_FAST_FORWARD           HEX: 35
 | 
			
		||||
CONSTANT: HID_USAGE_LED_PLAY                   HEX: 36
 | 
			
		||||
CONSTANT: HID_USAGE_LED_PAUSE                  HEX: 37
 | 
			
		||||
CONSTANT: HID_USAGE_LED_RECORD                 HEX: 38
 | 
			
		||||
CONSTANT: HID_USAGE_LED_ERROR                  HEX: 39
 | 
			
		||||
CONSTANT: HID_USAGE_LED_SELECTED_INDICATOR     HEX: 3A
 | 
			
		||||
CONSTANT: HID_USAGE_LED_IN_USE_INDICATOR       HEX: 3B
 | 
			
		||||
CONSTANT: HID_USAGE_LED_MULTI_MODE_INDICATOR   HEX: 3C
 | 
			
		||||
CONSTANT: HID_USAGE_LED_INDICATOR_ON           HEX: 3D
 | 
			
		||||
CONSTANT: HID_USAGE_LED_INDICATOR_FLASH        HEX: 3E
 | 
			
		||||
CONSTANT: HID_USAGE_LED_INDICATOR_SLOW_BLINK   HEX: 3F
 | 
			
		||||
CONSTANT: HID_USAGE_LED_INDICATOR_FAST_BLINK   HEX: 40
 | 
			
		||||
CONSTANT: HID_USAGE_LED_INDICATOR_OFF          HEX: 41
 | 
			
		||||
CONSTANT: HID_USAGE_LED_FLASH_ON_TIME          HEX: 42
 | 
			
		||||
CONSTANT: HID_USAGE_LED_SLOW_BLINK_ON_TIME     HEX: 43
 | 
			
		||||
CONSTANT: HID_USAGE_LED_SLOW_BLINK_OFF_TIME    HEX: 44
 | 
			
		||||
CONSTANT: HID_USAGE_LED_FAST_BLINK_ON_TIME     HEX: 45
 | 
			
		||||
CONSTANT: HID_USAGE_LED_FAST_BLINK_OFF_TIME    HEX: 46
 | 
			
		||||
CONSTANT: HID_USAGE_LED_INDICATOR_COLOR        HEX: 47
 | 
			
		||||
CONSTANT: HID_USAGE_LED_RED                    HEX: 48
 | 
			
		||||
CONSTANT: HID_USAGE_LED_GREEN                  HEX: 49
 | 
			
		||||
CONSTANT: HID_USAGE_LED_AMBER                  HEX: 4A
 | 
			
		||||
CONSTANT: HID_USAGE_LED_GENERIC_INDICATOR      HEX: 4B
 | 
			
		||||
 | 
			
		||||
CONSTANT: HID_USAGE_TELEPHONY_PHONE                  HEX: 01
 | 
			
		||||
CONSTANT: HID_USAGE_TELEPHONY_ANSWERING_MACHINE      HEX: 02
 | 
			
		||||
CONSTANT: HID_USAGE_TELEPHONY_MESSAGE_CONTROLS       HEX: 03
 | 
			
		||||
CONSTANT: HID_USAGE_TELEPHONY_HANDSET                HEX: 04
 | 
			
		||||
CONSTANT: HID_USAGE_TELEPHONY_HEADSET                HEX: 05
 | 
			
		||||
CONSTANT: HID_USAGE_TELEPHONY_KEYPAD                 HEX: 06
 | 
			
		||||
CONSTANT: HID_USAGE_TELEPHONY_PROGRAMMABLE_BUTTON    HEX: 07
 | 
			
		||||
CONSTANT: HID_USAGE_TELEPHONY_REDIAL                 HEX: 24
 | 
			
		||||
CONSTANT: HID_USAGE_TELEPHONY_TRANSFER               HEX: 25
 | 
			
		||||
CONSTANT: HID_USAGE_TELEPHONY_DROP                   HEX: 26
 | 
			
		||||
CONSTANT: HID_USAGE_TELEPHONY_LINE                   HEX: 2A
 | 
			
		||||
CONSTANT: HID_USAGE_TELEPHONY_RING_ENABLE            HEX: 2D
 | 
			
		||||
CONSTANT: HID_USAGE_TELEPHONY_SEND                   HEX: 31
 | 
			
		||||
CONSTANT: HID_USAGE_TELEPHONY_KEYPAD_0               HEX: B0
 | 
			
		||||
CONSTANT: HID_USAGE_TELEPHONY_KEYPAD_D               HEX: BF
 | 
			
		||||
CONSTANT: HID_USAGE_TELEPHONY_HOST_AVAILABLE         HEX: F1
 | 
			
		||||
 | 
			
		||||
CONSTANT: HID_USAGE_MS_BTH_HF_DIALNUMBER             HEX: 21
 | 
			
		||||
CONSTANT: HID_USAGE_MS_BTH_HF_DIALMEMORY             HEX: 22
 | 
			
		||||
 | 
			
		||||
CONSTANT: HID_USAGE_CONSUMERCTRL          HEX: 01
 | 
			
		||||
CONSTANT: HID_USAGE_DIGITIZER_PEN         HEX: 02
 | 
			
		||||
CONSTANT: HID_USAGE_DIGITIZER_IN_RANGE    HEX: 32
 | 
			
		||||
CONSTANT: HID_USAGE_DIGITIZER_TIP_SWITCH  HEX: 42
 | 
			
		||||
CONSTANT: HID_USAGE_DIGITIZER_BARREL_SWITCH HEX: 44
 | 
			
		||||
 | 
			
		||||
CONSTANT: HIDP_LINK_COLLECTION_ROOT        -1
 | 
			
		||||
CONSTANT: HIDP_LINK_COLLECTION_UNSPECIFIED 0
 | 
			
		||||
 | 
			
		||||
C-ENUM:
 | 
			
		||||
    HidP_Input
 | 
			
		||||
    HidP_Output
 | 
			
		||||
    HidP_Feature ;
 | 
			
		||||
TYPEDEF: int HIDP_REPORT_TYPE
 | 
			
		||||
 | 
			
		||||
STRUCT: USAGE_AND_PAGE
 | 
			
		||||
    { Usage     USAGE }
 | 
			
		||||
    { UsagePage USAGE } ;
 | 
			
		||||
TYPEDEF: USAGE_AND_PAGE* PUSAGE_AND_PAGE
 | 
			
		||||
 | 
			
		||||
: HidP_IsSameUsageAndPage ( u1 u2 -- ? ) = ; inline
 | 
			
		||||
 | 
			
		||||
STRUCT: HIDP_BUTTONS_CAPS_range
 | 
			
		||||
    { UsageMin        USAGE  }
 | 
			
		||||
    { UsageMax        USAGE  }
 | 
			
		||||
    { StringMin       USHORT }
 | 
			
		||||
    { StringMax       USHORT }
 | 
			
		||||
    { DesignatorMin   USHORT }
 | 
			
		||||
    { DesignatorMax   USHORT }
 | 
			
		||||
    { DataIndexMin    USHORT }
 | 
			
		||||
    { DataIndexMax    USHORT } ;
 | 
			
		||||
 | 
			
		||||
STRUCT: HIDP_BUTTONS_CAPS_not_range
 | 
			
		||||
    { Usage           USAGE  }
 | 
			
		||||
    { Reserved1       USAGE  }
 | 
			
		||||
    { StringIndex     USHORT }
 | 
			
		||||
    { Reserved2       USHORT }
 | 
			
		||||
    { DesignatorIndex USHORT }
 | 
			
		||||
    { Reserved3       USHORT }
 | 
			
		||||
    { DataIndex       USHORT }
 | 
			
		||||
    { Reserved4       USHORT } ;
 | 
			
		||||
 | 
			
		||||
UNION-STRUCT: HIDP_BUTTONS_CAPS_union
 | 
			
		||||
    { Range    HIDP_BUTTONS_CAPS_range     }
 | 
			
		||||
    { NotRange HIDP_BUTTONS_CAPS_not_range } ;
 | 
			
		||||
 | 
			
		||||
STRUCT: HIDP_BUTTON_CAPS
 | 
			
		||||
    { UsagePage          USAGE                   }
 | 
			
		||||
    { ReportID           UCHAR                   }
 | 
			
		||||
    { IsAlias            BOOLEAN                 }
 | 
			
		||||
    { BitField           USHORT                  }
 | 
			
		||||
    { LinkCollection     USHORT                  }
 | 
			
		||||
    { LinkUsage          USAGE                   }
 | 
			
		||||
    { LinkUsagePage      USAGE                   }
 | 
			
		||||
    { IsRange            BOOLEAN                 }
 | 
			
		||||
    { IsStringRange      BOOLEAN                 }
 | 
			
		||||
    { IsDesignatorRange  BOOLEAN                 }
 | 
			
		||||
    { IsAbsolute         BOOLEAN                 }
 | 
			
		||||
    { Reserved           ULONG[10]               }
 | 
			
		||||
    { Union              HIDP_BUTTONS_CAPS_union } ;
 | 
			
		||||
TYPEDEF: HIDP_BUTTON_CAPS* PHIDP_BUTTON_CAPS
 | 
			
		||||
 | 
			
		||||
STRUCT: HIDP_VALUE_CAPS_range
 | 
			
		||||
    { UsageMin        USAGE  }
 | 
			
		||||
    { UsageMax        USAGE  }
 | 
			
		||||
    { StringMin       USHORT }
 | 
			
		||||
    { StringMax       USHORT }
 | 
			
		||||
    { DesignatorMin   USHORT }
 | 
			
		||||
    { DesignatorMax   USHORT }
 | 
			
		||||
    { DataIndexMin    USHORT }
 | 
			
		||||
    { DataIndexMax    USHORT } ;
 | 
			
		||||
 | 
			
		||||
STRUCT: HIDP_VALUE_CAPS_not_range
 | 
			
		||||
    { Usage             USAGE  }
 | 
			
		||||
    { Reserved1         USAGE  }
 | 
			
		||||
    { StringIndex       USHORT }
 | 
			
		||||
    { Reserved2         USHORT }
 | 
			
		||||
    { DesignatorIndex   USHORT }
 | 
			
		||||
    { Reserved3         USHORT }
 | 
			
		||||
    { DataIndex         USHORT }
 | 
			
		||||
    { Reserved4         USHORT } ;
 | 
			
		||||
 | 
			
		||||
UNION-STRUCT: HIDP_VALUE_CAPS_union
 | 
			
		||||
    { Range    HIDP_VALUE_CAPS_range     }
 | 
			
		||||
    { NotRange HIDP_VALUE_CAPS_not_range } ;
 | 
			
		||||
 | 
			
		||||
STRUCT: HIDP_VALUE_CAPS
 | 
			
		||||
    { UsagePage          USAGE                  }
 | 
			
		||||
    { ReportID           UCHAR                  }
 | 
			
		||||
    { IsAlias            BOOLEAN                }
 | 
			
		||||
    { BitField           USHORT                 }
 | 
			
		||||
    { LinkCollection     USHORT                 }
 | 
			
		||||
    { LinkUsage          USAGE                  }
 | 
			
		||||
    { LinkUsagePage      USAGE                  }
 | 
			
		||||
    { IsRange            BOOLEAN                }
 | 
			
		||||
    { IsStringRange      BOOLEAN                }
 | 
			
		||||
    { IsDesignatorRange  BOOLEAN                }
 | 
			
		||||
    { IsAbsolute         BOOLEAN                }
 | 
			
		||||
    { HasNull            BOOLEAN                }
 | 
			
		||||
    { Reserved           UCHAR                  }
 | 
			
		||||
    { BitSize            USHORT                 }
 | 
			
		||||
    { ReportCount        USHORT                 }
 | 
			
		||||
    { Reserved2          USHORT[5]              }
 | 
			
		||||
    { UnitsExp           ULONG                  }
 | 
			
		||||
    { Units              ULONG                  }
 | 
			
		||||
    { LogicalMin         LONG                   }
 | 
			
		||||
    { LogicalMax         LONG                   }
 | 
			
		||||
    { PhysicalMin        LONG                   }
 | 
			
		||||
    { PhysicalMax        LONG                   }
 | 
			
		||||
    { Union              HIDP_VALUE_CAPS_union  } ;
 | 
			
		||||
TYPEDEF: HIDP_VALUE_CAPS* PHIDP_VALUE_CAPS
 | 
			
		||||
 | 
			
		||||
STRUCT: HIDP_LINK_COLLECTION_NODE
 | 
			
		||||
    { LinkUsage                        USAGE  }
 | 
			
		||||
    { LinkUsagePage                    USAGE  }
 | 
			
		||||
    { Parent                           USHORT }
 | 
			
		||||
    { NumberOfChildren                 USHORT }
 | 
			
		||||
    { NextSibling                      USHORT }
 | 
			
		||||
    { FirstChild                       USHORT }
 | 
			
		||||
    { CollectionTypeIsAliasBitfield    ULONG  }
 | 
			
		||||
    { UserContext                      PVOID  } ;
 | 
			
		||||
TYPEDEF: HIDP_LINK_COLLECTION_NODE* PHIDP_LINK_COLLECTION_NODE
 | 
			
		||||
 | 
			
		||||
TYPEDEF: PUCHAR PHIDP_REPORT_DESCRIPTOR
 | 
			
		||||
C-TYPE: HIDP_PREPARSED_DATA
 | 
			
		||||
TYPEDEF: HIDP_PREPARSED_DATA* PHIDP_PREPARSED_DATA
 | 
			
		||||
 | 
			
		||||
STRUCT: HIDP_CAPS
 | 
			
		||||
    { Usage                       USAGE      }
 | 
			
		||||
    { UsagePage                   USAGE      }
 | 
			
		||||
    { InputReportByteLength       USHORT     }
 | 
			
		||||
    { OutputReportByteLength      USHORT     }
 | 
			
		||||
    { FeatureReportByteLength     USHORT     }
 | 
			
		||||
    { Reserved                    USHORT[17] }
 | 
			
		||||
    { NumberLinkCollectionNodes   USHORT     }
 | 
			
		||||
    { NumberInputButtonCaps       USHORT     }
 | 
			
		||||
    { NumberInputValueCaps        USHORT     }
 | 
			
		||||
    { NumberInputDataIndices      USHORT     }
 | 
			
		||||
    { NumberOutputButtonCaps      USHORT     }
 | 
			
		||||
    { NumberOutputValueCaps       USHORT     }
 | 
			
		||||
    { NumberOutputDataIndices     USHORT     }
 | 
			
		||||
    { NumberFeatureButtonCaps     USHORT     }
 | 
			
		||||
    { NumberFeatureValueCaps      USHORT     }
 | 
			
		||||
    { NumberFeatureDataIndices    USHORT     } ;
 | 
			
		||||
TYPEDEF: HIDP_CAPS* PHIDP_CAPS
 | 
			
		||||
 | 
			
		||||
STRUCT: HIDP_DATA
 | 
			
		||||
    { DataIndex  USHORT }
 | 
			
		||||
    { Reserved   USHORT }
 | 
			
		||||
    { RawValue   ULONG  } ;
 | 
			
		||||
TYPEDEF: HIDP_DATA* PHIDP_DATA
 | 
			
		||||
 | 
			
		||||
STRUCT: HIDP_UNKNOWN_TOKEN
 | 
			
		||||
    { Token     UCHAR    }
 | 
			
		||||
    { Reserved  UCHAR[3] }
 | 
			
		||||
    { BitField  ULONG    } ;
 | 
			
		||||
TYPEDEF: HIDP_UNKNOWN_TOKEN* PHIDP_UNKNOWN_TOKEN
 | 
			
		||||
 | 
			
		||||
STRUCT: HIDP_EXTENDED_ATTRIBUTES
 | 
			
		||||
    { NumGlobalUnknowns   UCHAR               }
 | 
			
		||||
    { Reserved            UCHAR[3]            }
 | 
			
		||||
    { GlobalUnknowns      PHIDP_UNKNOWN_TOKEN }
 | 
			
		||||
    { Data                ULONG[1]            } ;
 | 
			
		||||
TYPEDEF: HIDP_EXTENDED_ATTRIBUTES* PHIDP_EXTENDED_ATTRIBUTES
 | 
			
		||||
 | 
			
		||||
FUNCTION: NTSTATUS
 | 
			
		||||
HidP_GetCaps (
 | 
			
		||||
   PHIDP_PREPARSED_DATA      PreparsedData,
 | 
			
		||||
   PHIDP_CAPS                Capabilities
 | 
			
		||||
   ) ;
 | 
			
		||||
 | 
			
		||||
FUNCTION: NTSTATUS
 | 
			
		||||
HidP_GetLinkCollectionNodes (
 | 
			
		||||
   PHIDP_LINK_COLLECTION_NODE LinkCollectionNodes,
 | 
			
		||||
   PULONG                     LinkCollectionNodesLength,
 | 
			
		||||
   PHIDP_PREPARSED_DATA       PreparsedData
 | 
			
		||||
   ) ;
 | 
			
		||||
 | 
			
		||||
FUNCTION: NTSTATUS
 | 
			
		||||
HidP_GetSpecificButtonCaps (
 | 
			
		||||
   HIDP_REPORT_TYPE     ReportType,
 | 
			
		||||
   USAGE                UsagePage,
 | 
			
		||||
   USHORT               LinkCollection,
 | 
			
		||||
   USAGE                Usage,
 | 
			
		||||
   PHIDP_BUTTON_CAPS    ButtonCaps,
 | 
			
		||||
   PUSHORT              ButtonCapsLength,
 | 
			
		||||
   PHIDP_PREPARSED_DATA PreparsedData
 | 
			
		||||
   ) ;
 | 
			
		||||
 | 
			
		||||
FUNCTION: NTSTATUS
 | 
			
		||||
HidP_GetButtonCaps (
 | 
			
		||||
   HIDP_REPORT_TYPE     ReportType,
 | 
			
		||||
   PHIDP_BUTTON_CAPS    ButtonCaps,
 | 
			
		||||
   PUSHORT              ButtonCapsLength,
 | 
			
		||||
   PHIDP_PREPARSED_DATA PreparsedData
 | 
			
		||||
) ;
 | 
			
		||||
 | 
			
		||||
FUNCTION: NTSTATUS
 | 
			
		||||
HidP_GetSpecificValueCaps (
 | 
			
		||||
   HIDP_REPORT_TYPE     ReportType,
 | 
			
		||||
   USAGE                UsagePage,
 | 
			
		||||
   USHORT               LinkCollection,
 | 
			
		||||
   USAGE                Usage,
 | 
			
		||||
   PHIDP_VALUE_CAPS     ValueCaps,
 | 
			
		||||
   PUSHORT              ValueCapsLength,
 | 
			
		||||
   PHIDP_PREPARSED_DATA PreparsedData
 | 
			
		||||
   ) ;
 | 
			
		||||
 | 
			
		||||
FUNCTION: NTSTATUS
 | 
			
		||||
HidP_GetValueCaps (
 | 
			
		||||
   HIDP_REPORT_TYPE     ReportType,
 | 
			
		||||
   PHIDP_VALUE_CAPS     ValueCaps,
 | 
			
		||||
   PUSHORT              ValueCapsLength,
 | 
			
		||||
   PHIDP_PREPARSED_DATA PreparsedData
 | 
			
		||||
) ;
 | 
			
		||||
 | 
			
		||||
FUNCTION: NTSTATUS
 | 
			
		||||
HidP_GetExtendedAttributes (
 | 
			
		||||
    HIDP_REPORT_TYPE            ReportType,
 | 
			
		||||
    USHORT                      DataIndex,
 | 
			
		||||
    PHIDP_PREPARSED_DATA        PreparsedData,
 | 
			
		||||
    PHIDP_EXTENDED_ATTRIBUTES   Attributes,
 | 
			
		||||
    PULONG                      LengthAttributes
 | 
			
		||||
    ) ;
 | 
			
		||||
 | 
			
		||||
FUNCTION: NTSTATUS
 | 
			
		||||
HidP_InitializeReportForID (
 | 
			
		||||
   HIDP_REPORT_TYPE     ReportType,
 | 
			
		||||
   UCHAR                ReportID,
 | 
			
		||||
   PHIDP_PREPARSED_DATA PreparsedData,
 | 
			
		||||
   PCHAR                Report,
 | 
			
		||||
   ULONG                ReportLength
 | 
			
		||||
   ) ;
 | 
			
		||||
 | 
			
		||||
FUNCTION: NTSTATUS
 | 
			
		||||
HidP_SetData (
 | 
			
		||||
    HIDP_REPORT_TYPE     ReportType,
 | 
			
		||||
    PHIDP_DATA           DataList,
 | 
			
		||||
    PULONG               DataLength,
 | 
			
		||||
    PHIDP_PREPARSED_DATA PreparsedData,
 | 
			
		||||
    PCHAR                Report,
 | 
			
		||||
    ULONG                ReportLength
 | 
			
		||||
    ) ;
 | 
			
		||||
 | 
			
		||||
FUNCTION: NTSTATUS
 | 
			
		||||
HidP_GetData (
 | 
			
		||||
    HIDP_REPORT_TYPE     ReportType,
 | 
			
		||||
    PHIDP_DATA           DataList,
 | 
			
		||||
    PULONG               DataLength,
 | 
			
		||||
    PHIDP_PREPARSED_DATA PreparsedData,
 | 
			
		||||
    PCHAR                Report,
 | 
			
		||||
    ULONG                ReportLength
 | 
			
		||||
    ) ;
 | 
			
		||||
 | 
			
		||||
FUNCTION: ULONG
 | 
			
		||||
HidP_MaxDataListLength (
 | 
			
		||||
   HIDP_REPORT_TYPE      ReportType,
 | 
			
		||||
   PHIDP_PREPARSED_DATA  PreparsedData
 | 
			
		||||
   ) ;
 | 
			
		||||
 | 
			
		||||
FUNCTION: NTSTATUS
 | 
			
		||||
HidP_SetUsages (
 | 
			
		||||
   HIDP_REPORT_TYPE     ReportType,
 | 
			
		||||
   USAGE                UsagePage,
 | 
			
		||||
   USHORT               LinkCollection,
 | 
			
		||||
   PUSAGE               UsageList,
 | 
			
		||||
   PULONG               UsageLength,
 | 
			
		||||
   PHIDP_PREPARSED_DATA PreparsedData,
 | 
			
		||||
   PCHAR                Report,
 | 
			
		||||
   ULONG                ReportLength
 | 
			
		||||
   ) ;
 | 
			
		||||
ALIAS: HidP_SetButtons HidP_SetUsages
 | 
			
		||||
 | 
			
		||||
FUNCTION: NTSTATUS
 | 
			
		||||
HidP_UnsetUsages (
 | 
			
		||||
   HIDP_REPORT_TYPE     ReportType,
 | 
			
		||||
   USAGE                UsagePage,
 | 
			
		||||
   USHORT               LinkCollection,
 | 
			
		||||
   PUSAGE               UsageList,
 | 
			
		||||
   PULONG               UsageLength,
 | 
			
		||||
   PHIDP_PREPARSED_DATA PreparsedData,
 | 
			
		||||
   PCHAR                Report,
 | 
			
		||||
   ULONG                ReportLength
 | 
			
		||||
   ) ;
 | 
			
		||||
ALIAS: HidP_UnsetButtons HidP_UnsetUsages
 | 
			
		||||
 | 
			
		||||
FUNCTION: NTSTATUS
 | 
			
		||||
HidP_GetUsages (
 | 
			
		||||
   HIDP_REPORT_TYPE     ReportType,
 | 
			
		||||
   USAGE                UsagePage,
 | 
			
		||||
   USHORT               LinkCollection,
 | 
			
		||||
   PUSAGE               UsageList,
 | 
			
		||||
   PULONG               UsageLength,
 | 
			
		||||
   PHIDP_PREPARSED_DATA PreparsedData,
 | 
			
		||||
   PCHAR                Report,
 | 
			
		||||
   ULONG                ReportLength
 | 
			
		||||
   ) ;
 | 
			
		||||
ALIAS: HidP_GetButtons HidP_GetUsages
 | 
			
		||||
 | 
			
		||||
FUNCTION: NTSTATUS
 | 
			
		||||
HidP_GetUsagesEx (
 | 
			
		||||
    HIDP_REPORT_TYPE     ReportType,
 | 
			
		||||
    USHORT               LinkCollection,
 | 
			
		||||
    PUSAGE_AND_PAGE      ButtonList,
 | 
			
		||||
    ULONG*               UsageLength,
 | 
			
		||||
    PHIDP_PREPARSED_DATA PreparsedData,
 | 
			
		||||
    PCHAR                Report,
 | 
			
		||||
    ULONG                ReportLength
 | 
			
		||||
   ) ;
 | 
			
		||||
ALIAS: HidP_GetButtonsEx HidP_GetUsagesEx
 | 
			
		||||
 | 
			
		||||
FUNCTION: ULONG
 | 
			
		||||
HidP_MaxUsageListLength (
 | 
			
		||||
   HIDP_REPORT_TYPE      ReportType,
 | 
			
		||||
   USAGE                 UsagePage,
 | 
			
		||||
   PHIDP_PREPARSED_DATA  PreparsedData
 | 
			
		||||
   ) ;
 | 
			
		||||
 | 
			
		||||
FUNCTION: NTSTATUS
 | 
			
		||||
HidP_SetUsageValue (
 | 
			
		||||
    HIDP_REPORT_TYPE     ReportType,
 | 
			
		||||
    USAGE                UsagePage,
 | 
			
		||||
    USHORT               LinkCollection,
 | 
			
		||||
    USAGE                Usage,
 | 
			
		||||
    ULONG                UsageValue,
 | 
			
		||||
    PHIDP_PREPARSED_DATA PreparsedData,
 | 
			
		||||
    PCHAR                Report,
 | 
			
		||||
    ULONG                ReportLength
 | 
			
		||||
    ) ;
 | 
			
		||||
 | 
			
		||||
FUNCTION: NTSTATUS
 | 
			
		||||
HidP_SetScaledUsageValue (
 | 
			
		||||
    HIDP_REPORT_TYPE     ReportType,
 | 
			
		||||
    USAGE                UsagePage,
 | 
			
		||||
    USHORT               LinkCollection,
 | 
			
		||||
    USAGE                Usage,
 | 
			
		||||
    LONG                 UsageValue,
 | 
			
		||||
    PHIDP_PREPARSED_DATA PreparsedData,
 | 
			
		||||
    PCHAR                Report,
 | 
			
		||||
    ULONG                ReportLength
 | 
			
		||||
    ) ;
 | 
			
		||||
 | 
			
		||||
FUNCTION: NTSTATUS
 | 
			
		||||
HidP_SetUsageValueArray (
 | 
			
		||||
    HIDP_REPORT_TYPE     ReportType,
 | 
			
		||||
    USAGE                UsagePage,
 | 
			
		||||
    USHORT               LinkCollection,
 | 
			
		||||
    USAGE                Usage,
 | 
			
		||||
    PCHAR                UsageValue,
 | 
			
		||||
    USHORT               UsageValueByteLength,
 | 
			
		||||
    PHIDP_PREPARSED_DATA PreparsedData,
 | 
			
		||||
    PCHAR                Report,
 | 
			
		||||
    ULONG                ReportLength
 | 
			
		||||
    ) ;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
FUNCTION: NTSTATUS
 | 
			
		||||
HidP_GetUsageValue (
 | 
			
		||||
    HIDP_REPORT_TYPE     ReportType,
 | 
			
		||||
    USAGE                UsagePage,
 | 
			
		||||
    USHORT               LinkCollection,
 | 
			
		||||
    USAGE                Usage,
 | 
			
		||||
    PULONG               UsageValue,
 | 
			
		||||
    PHIDP_PREPARSED_DATA PreparsedData,
 | 
			
		||||
    PCHAR                Report,
 | 
			
		||||
    ULONG                ReportLength
 | 
			
		||||
    ) ;
 | 
			
		||||
 | 
			
		||||
FUNCTION: NTSTATUS
 | 
			
		||||
HidP_GetScaledUsageValue (
 | 
			
		||||
    HIDP_REPORT_TYPE     ReportType,
 | 
			
		||||
    USAGE                UsagePage,
 | 
			
		||||
    USHORT               LinkCollection,
 | 
			
		||||
    USAGE                Usage,
 | 
			
		||||
    PLONG                UsageValue,
 | 
			
		||||
    PHIDP_PREPARSED_DATA PreparsedData,
 | 
			
		||||
    PCHAR                Report,
 | 
			
		||||
    ULONG                ReportLength
 | 
			
		||||
    ) ;
 | 
			
		||||
 | 
			
		||||
FUNCTION: NTSTATUS
 | 
			
		||||
HidP_GetUsageValueArray (
 | 
			
		||||
    HIDP_REPORT_TYPE     ReportType,
 | 
			
		||||
    USAGE                UsagePage,
 | 
			
		||||
    USHORT               LinkCollection,
 | 
			
		||||
    USAGE                Usage,
 | 
			
		||||
    PCHAR                UsageValue,
 | 
			
		||||
    USHORT               UsageValueByteLength,
 | 
			
		||||
    PHIDP_PREPARSED_DATA PreparsedData,
 | 
			
		||||
    PCHAR                Report,
 | 
			
		||||
    ULONG                ReportLength
 | 
			
		||||
    ) ;
 | 
			
		||||
 | 
			
		||||
FUNCTION: NTSTATUS
 | 
			
		||||
HidP_UsageListDifference (
 | 
			
		||||
   PUSAGE   PreviousUsageList,
 | 
			
		||||
   PUSAGE   CurrentUsageList,
 | 
			
		||||
   PUSAGE   BreakUsageList,
 | 
			
		||||
   PUSAGE   MakeUsageList,
 | 
			
		||||
   ULONG    UsageListLength
 | 
			
		||||
    ) ;
 | 
			
		||||
 | 
			
		||||
FUNCTION: NTSTATUS
 | 
			
		||||
HidP_UsageAndPageListDifference (
 | 
			
		||||
   PUSAGE_AND_PAGE PreviousUsageList,
 | 
			
		||||
   PUSAGE_AND_PAGE CurrentUsageList,
 | 
			
		||||
   PUSAGE_AND_PAGE BreakUsageList,
 | 
			
		||||
   PUSAGE_AND_PAGE MakeUsageList,
 | 
			
		||||
   ULONG           UsageListLength
 | 
			
		||||
   ) ;
 | 
			
		||||
 | 
			
		||||
C-ENUM:
 | 
			
		||||
    HidP_Keyboard_Break
 | 
			
		||||
    HidP_Keyboard_Make ;
 | 
			
		||||
TYPEDEF: int HIDP_KEYBOARD_DIRECTION
 | 
			
		||||
 | 
			
		||||
STRUCT: HIDP_KEYBOARD_MODIFIER_STATE
 | 
			
		||||
    { ul ULONG } ;
 | 
			
		||||
TYPEDEF: HIDP_KEYBOARD_MODIFIER_STATE* PHIDP_KEYBOARD_MODIFIER_STATE
 | 
			
		||||
 | 
			
		||||
CALLBACK: BOOLEAN PHIDP_INSERT_SCANCODES (
 | 
			
		||||
    PVOID Context,
 | 
			
		||||
    PCHAR NewScanCodes,
 | 
			
		||||
    ULONG Length ) ;
 | 
			
		||||
 | 
			
		||||
FUNCTION: NTSTATUS
 | 
			
		||||
HidP_TranslateUsageAndPagesToI8042ScanCodes (
 | 
			
		||||
    PUSAGE_AND_PAGE               ChangedUsageList,
 | 
			
		||||
    ULONG                         UsageListLength,
 | 
			
		||||
    HIDP_KEYBOARD_DIRECTION       KeyAction,
 | 
			
		||||
    PHIDP_KEYBOARD_MODIFIER_STATE ModifierState,
 | 
			
		||||
    PHIDP_INSERT_SCANCODES        InsertCodesProcedure,
 | 
			
		||||
    PVOID                         InsertCodesContext
 | 
			
		||||
    ) ;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
FUNCTION: NTSTATUS
 | 
			
		||||
HidP_TranslateUsagesToI8042ScanCodes (
 | 
			
		||||
    PUSAGE                        ChangedUsageList,
 | 
			
		||||
    ULONG                         UsageListLength,
 | 
			
		||||
    HIDP_KEYBOARD_DIRECTION       KeyAction,
 | 
			
		||||
    PHIDP_KEYBOARD_MODIFIER_STATE ModifierState,
 | 
			
		||||
    PHIDP_INSERT_SCANCODES        InsertCodesProcedure,
 | 
			
		||||
    PVOID                         InsertCodesContext
 | 
			
		||||
    ) ;
 | 
			
		||||
 | 
			
		||||
CONSTANT: FACILITY_HID_ERROR_CODE HEX: 11
 | 
			
		||||
: HIDP_ERROR_CODES ( SEV CODE -- HRESULT )
 | 
			
		||||
    [ 28 shift ] dip bitor FACILITY_HID_ERROR_CODE 16 shift bitor ; inline
 | 
			
		||||
: HIDP_STATUS_SUCCESS                  ( -- HRESULT ) HEX: 0 HEX: 0 HIDP_ERROR_CODES ; inline
 | 
			
		||||
: HIDP_STATUS_NULL                     ( -- HRESULT ) HEX: 8 HEX: 1 HIDP_ERROR_CODES ; inline
 | 
			
		||||
: HIDP_STATUS_INVALID_PREPARSED_DATA   ( -- HRESULT ) HEX: C HEX: 1 HIDP_ERROR_CODES ; inline
 | 
			
		||||
: HIDP_STATUS_INVALID_REPORT_TYPE      ( -- HRESULT ) HEX: C HEX: 2 HIDP_ERROR_CODES ; inline
 | 
			
		||||
: HIDP_STATUS_INVALID_REPORT_LENGTH    ( -- HRESULT ) HEX: C HEX: 3 HIDP_ERROR_CODES ; inline
 | 
			
		||||
: HIDP_STATUS_USAGE_NOT_FOUND          ( -- HRESULT ) HEX: C HEX: 4 HIDP_ERROR_CODES ; inline
 | 
			
		||||
: HIDP_STATUS_VALUE_OUT_OF_RANGE       ( -- HRESULT ) HEX: C HEX: 5 HIDP_ERROR_CODES ; inline
 | 
			
		||||
: HIDP_STATUS_BAD_LOG_PHY_VALUES       ( -- HRESULT ) HEX: C HEX: 6 HIDP_ERROR_CODES ; inline
 | 
			
		||||
: HIDP_STATUS_BUFFER_TOO_SMALL         ( -- HRESULT ) HEX: C HEX: 7 HIDP_ERROR_CODES ; inline
 | 
			
		||||
: HIDP_STATUS_INTERNAL_ERROR           ( -- HRESULT ) HEX: C HEX: 8 HIDP_ERROR_CODES ; inline
 | 
			
		||||
: HIDP_STATUS_I8042_TRANS_UNKNOWN      ( -- HRESULT ) HEX: C HEX: 9 HIDP_ERROR_CODES ; inline
 | 
			
		||||
: HIDP_STATUS_INCOMPATIBLE_REPORT_ID   ( -- HRESULT ) HEX: C HEX: A HIDP_ERROR_CODES ; inline
 | 
			
		||||
: HIDP_STATUS_NOT_VALUE_ARRAY          ( -- HRESULT ) HEX: C HEX: B HIDP_ERROR_CODES ; inline
 | 
			
		||||
: HIDP_STATUS_IS_VALUE_ARRAY           ( -- HRESULT ) HEX: C HEX: C HIDP_ERROR_CODES ; inline
 | 
			
		||||
: HIDP_STATUS_DATA_INDEX_NOT_FOUND     ( -- HRESULT ) HEX: C HEX: D HIDP_ERROR_CODES ; inline
 | 
			
		||||
: HIDP_STATUS_DATA_INDEX_OUT_OF_RANGE  ( -- HRESULT ) HEX: C HEX: E HIDP_ERROR_CODES ; inline
 | 
			
		||||
: HIDP_STATUS_BUTTON_NOT_PRESSED       ( -- HRESULT ) HEX: C HEX: F HIDP_ERROR_CODES ; inline
 | 
			
		||||
: HIDP_STATUS_REPORT_DOES_NOT_EXIST    ( -- HRESULT ) HEX: C HEX: 10 HIDP_ERROR_CODES ; inline
 | 
			
		||||
: HIDP_STATUS_NOT_IMPLEMENTED          ( -- HRESULT ) HEX: C HEX: 20 HIDP_ERROR_CODES ; inline
 | 
			
		||||
: HIDP_STATUS_I8242_TRANS_UNKNOWN      ( -- HRESULT ) HIDP_STATUS_I8042_TRANS_UNKNOWN ; inline
 | 
			
		||||
 | 
			
		||||
STRUCT: HIDD_CONFIGURATION
 | 
			
		||||
    { cookie            PVOID }
 | 
			
		||||
    { size              ULONG }
 | 
			
		||||
    { RingBufferSize    ULONG } ;
 | 
			
		||||
TYPEDEF: HIDD_CONFIGURATION* PHIDD_CONFIGURATION
 | 
			
		||||
 | 
			
		||||
STRUCT: HIDD_ATTRIBUTES
 | 
			
		||||
    { Size           ULONG  }
 | 
			
		||||
    { VendorID       USHORT }
 | 
			
		||||
    { ProductID      USHORT }
 | 
			
		||||
    { VersionNumber  USHORT } ;
 | 
			
		||||
TYPEDEF: HIDD_ATTRIBUTES* PHIDD_ATTRIBUTES
 | 
			
		||||
 | 
			
		||||
FUNCTION: BOOLEAN
 | 
			
		||||
HidD_GetAttributes (
 | 
			
		||||
    HANDLE              HidDeviceObject,
 | 
			
		||||
    PHIDD_ATTRIBUTES    Attributes
 | 
			
		||||
    ) ;
 | 
			
		||||
 | 
			
		||||
FUNCTION: void
 | 
			
		||||
HidD_GetHidGuid (
 | 
			
		||||
   LPGUID   HidGuid
 | 
			
		||||
   ) ;
 | 
			
		||||
 | 
			
		||||
FUNCTION: BOOLEAN
 | 
			
		||||
HidD_GetPreparsedData (
 | 
			
		||||
   HANDLE                HidDeviceObject,
 | 
			
		||||
   PHIDP_PREPARSED_DATA* PreparsedData
 | 
			
		||||
   ) ;
 | 
			
		||||
 | 
			
		||||
FUNCTION: BOOLEAN
 | 
			
		||||
HidD_FreePreparsedData (
 | 
			
		||||
   PHIDP_PREPARSED_DATA PreparsedData
 | 
			
		||||
   ) ;
 | 
			
		||||
 | 
			
		||||
FUNCTION: BOOLEAN
 | 
			
		||||
HidD_FlushQueue (
 | 
			
		||||
   HANDLE                HidDeviceObject
 | 
			
		||||
   ) ;
 | 
			
		||||
 | 
			
		||||
FUNCTION: BOOLEAN
 | 
			
		||||
HidD_GetConfiguration (
 | 
			
		||||
   HANDLE               HidDeviceObject,
 | 
			
		||||
   PHIDD_CONFIGURATION  Configuration,
 | 
			
		||||
   ULONG                ConfigurationLength
 | 
			
		||||
   ) ;
 | 
			
		||||
 | 
			
		||||
FUNCTION: BOOLEAN
 | 
			
		||||
HidD_SetConfiguration (
 | 
			
		||||
   HANDLE               HidDeviceObject,
 | 
			
		||||
   PHIDD_CONFIGURATION  Configuration,
 | 
			
		||||
   ULONG                ConfigurationLength
 | 
			
		||||
   ) ;
 | 
			
		||||
 | 
			
		||||
FUNCTION: BOOLEAN
 | 
			
		||||
HidD_GetFeature (
 | 
			
		||||
   HANDLE   HidDeviceObject,
 | 
			
		||||
   PVOID    ReportBuffer,
 | 
			
		||||
   ULONG    ReportBufferLength
 | 
			
		||||
   ) ;
 | 
			
		||||
 | 
			
		||||
FUNCTION: BOOLEAN
 | 
			
		||||
HidD_SetFeature (
 | 
			
		||||
   HANDLE   HidDeviceObject,
 | 
			
		||||
   PVOID    ReportBuffer,
 | 
			
		||||
   ULONG    ReportBufferLength
 | 
			
		||||
   ) ;
 | 
			
		||||
 | 
			
		||||
FUNCTION: BOOLEAN
 | 
			
		||||
HidD_GetInputReport (
 | 
			
		||||
   HANDLE   HidDeviceObject,
 | 
			
		||||
   PVOID    ReportBuffer,
 | 
			
		||||
   ULONG    ReportBufferLength
 | 
			
		||||
   ) ;
 | 
			
		||||
 | 
			
		||||
FUNCTION: BOOLEAN
 | 
			
		||||
HidD_SetOutputReport (
 | 
			
		||||
   HANDLE   HidDeviceObject,
 | 
			
		||||
   PVOID    ReportBuffer,
 | 
			
		||||
   ULONG    ReportBufferLength
 | 
			
		||||
   ) ;
 | 
			
		||||
 | 
			
		||||
FUNCTION: BOOLEAN
 | 
			
		||||
HidD_GetNumInputBuffers (
 | 
			
		||||
    HANDLE  HidDeviceObject,
 | 
			
		||||
    PULONG  NumberBuffers
 | 
			
		||||
    ) ;
 | 
			
		||||
 | 
			
		||||
FUNCTION: BOOLEAN
 | 
			
		||||
HidD_SetNumInputBuffers (
 | 
			
		||||
    HANDLE HidDeviceObject,
 | 
			
		||||
    ULONG  NumberBuffers
 | 
			
		||||
    ) ;
 | 
			
		||||
 | 
			
		||||
FUNCTION: BOOLEAN
 | 
			
		||||
HidD_GetPhysicalDescriptor (
 | 
			
		||||
   HANDLE   HidDeviceObject,
 | 
			
		||||
   PVOID    Buffer,
 | 
			
		||||
   ULONG    BufferLength
 | 
			
		||||
   ) ;
 | 
			
		||||
 | 
			
		||||
FUNCTION: BOOLEAN
 | 
			
		||||
HidD_GetManufacturerString (
 | 
			
		||||
   HANDLE   HidDeviceObject,
 | 
			
		||||
   PVOID    Buffer,
 | 
			
		||||
   ULONG    BufferLength
 | 
			
		||||
   ) ;
 | 
			
		||||
 | 
			
		||||
FUNCTION: BOOLEAN
 | 
			
		||||
HidD_GetProductString (
 | 
			
		||||
   HANDLE   HidDeviceObject,
 | 
			
		||||
   PVOID    Buffer,
 | 
			
		||||
   ULONG    BufferLength
 | 
			
		||||
   ) ;
 | 
			
		||||
 | 
			
		||||
FUNCTION: BOOLEAN
 | 
			
		||||
HidD_GetIndexedString (
 | 
			
		||||
   HANDLE   HidDeviceObject,
 | 
			
		||||
   ULONG    StringIndex,
 | 
			
		||||
   PVOID    Buffer,
 | 
			
		||||
   ULONG    BufferLength
 | 
			
		||||
   ) ;
 | 
			
		||||
 | 
			
		||||
FUNCTION: BOOLEAN
 | 
			
		||||
HidD_GetSerialNumberString (
 | 
			
		||||
   HANDLE   HidDeviceObject,
 | 
			
		||||
   PVOID    Buffer,
 | 
			
		||||
   ULONG    BufferLength
 | 
			
		||||
   ) ;
 | 
			
		||||
 | 
			
		||||
FUNCTION: BOOLEAN
 | 
			
		||||
HidD_GetMsGenreDescriptor (
 | 
			
		||||
   HANDLE   HidDeviceObject,
 | 
			
		||||
   PVOID    Buffer,
 | 
			
		||||
   ULONG    BufferLength
 | 
			
		||||
   ) ;
 | 
			
		||||
		Loading…
	
		Reference in New Issue