Quickly reading through the hidclass docs, physical descriptors are not supported, only report descriptors. As to why you are getting 2 more IOCTL_HID_GET_REPORT_DESCRIPTOR, I don’t know. I would suggest you capture the call stack on the last 2 calls to see if they are any different than the first.
d
-----Original Message-----
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of xxxxx@yahoo.com
Sent: Monday, September 21, 2009 1:55 PM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] Hidclass joystick trouble
I don’t think so, since there is only a single type of input (and also output, in the real joystick desc) report. Anyway, the problem occurs at the report descriptor stage, before any reports are sent.
That’s desc tool’s descriptor:
USAGE_PAGE (Generic Desktop) 05 01
LOGICAL_MINIMUM (0) 15 00
USAGE (Joystick) 09 04
COLLECTION (Application) A1 01
USAGE_PAGE (Simulation Controls) 05 02
USAGE (Throttle) 09 BB
LOGICAL_MINIMUM (-127) 15 81
LOGICAL_MAXIMUM (127) 25 7F
REPORT_SIZE (8) 75 08
REPORT_COUNT (1) 95 01
INPUT (Data,Var,Abs) 81 02
USAGE_PAGE (Generic Desktop) 05 01
USAGE (Pointer) 09 01
COLLECTION (Physical) A1 00
USAGE (X) 09 30
USAGE (Y) 09 31
REPORT_COUNT (2) 95 02
INPUT (Data,Var,Abs) 81 02
END_COLLECTION C0
USAGE (Hat switch) 09 39
LOGICAL_MINIMUM (0) 15 00
LOGICAL_MAXIMUM (3) 25 03
PHYSICAL_MINIMUM (0) 35 00
PHYSICAL_MAXIMUM (270) 46 0E 01
UNIT (Eng Rot:Angular Pos) 65 14
REPORT_SIZE (4) 75 04
REPORT_COUNT (1) 95 01
INPUT (Data,Var,Abs) 81 02
USAGE_PAGE (Button) 05 09
USAGE_MINIMUM (Button 1) 19 01
USAGE_MAXIMUM (Button 4) 29 04
LOGICAL_MINIMUM (0) 15 00
LOGICAL_MAXIMUM (1) 25 01
REPORT_SIZE (1) 75 01
REPORT_COUNT (4) 95 04
UNIT_EXPONENT (0) 55 00
UNIT (None) 65 00
INPUT (Data,Var,Abs) 81 02
END_COLLECTION C0
This is the real joystick’s desc:
Usage Page (Generic Desktop) 05 01
Usage (Joystick) 09 04
Collection (Application) A1 01
Collection (Logical) A1 02
Report Size (8) 75 08
Report Count (5) 95 05
Logical Minimum (0) 15 00
Logical Maximum (255) 26 FF 00
Physical Minimum (0) 35 00
Physical Maximum (255) 46 FF 00
Usage (X) 09 30
Usage (Y) 09 31
Usage (Z) 09 32
Usage (Z) 09 32
Usage (Rz) 09 35
Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02
Report Size (4) 75 04
Report Count (1) 95 01
Logical Maximum (7) 25 07
Physical Maximum (315) 46 3B 01
Unit (Eng Rot: Degree) 65 14
Usage (Hat Switch) 09 39
Input (Data,Var,Abs,NWrp,Lin,Pref,Null,Bit) 81 42
Unit (None) 65 00
Report Size (1) 75 01
Report Count (12) 95 0C
Logical Maximum (1) 25 01
Physical Maximum (1) 45 01
Usage Page (Button) 05 09
Usage Minimum (Button 1) 19 01
Usage Maximum (Button 12) 29 0C
Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02
Usage Page (Vendor-Defined 1) 06 00 FF
Report Size (1) 75 01
Report Count (8) 95 08
Logical Maximum (1) 25 01
Physical Maximum (1) 45 01
Usage (Vendor-Defined 1) 09 01
Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02
End Collection C0
Collection (Logical) A1 02
Report Size (8) 75 08
Report Count (7) 95 07
Physical Maximum (255) 46 FF 00
Logical Maximum (255) 26 FF 00
Usage (Vendor-Defined 2) 09 02
Output (Data,Var,Abs,NWrp,Lin,Pref,NNul,NVol,Bit) 91 02
End Collection C0
End Collection C0
NTDEV is sponsored by OSR
For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars
To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer