5a32339dc8
DualSense controller's report descriptor comes with a 1 bit vendor specific (Usage Page & Usage) element repeated through 'report count'. Those were correctly interpreted as non-ranged buttons (exposed as button caps with appropriate usage values) but their size was incorrectly assumed to be 1 ignoring the 'report count'. Because of that the InputReportByteLength is miscalculated as 63 instead of 64. If the buffer passed to HidD_GetInputReport() is allocated using that value the call will fail with ERROR_INSUFFICIENT_BUFFER. This change fixes the above and cleans up the code a bit so the size for each case is calculated directly from the count and size instead of using the values that were derived from them. Signed-off-by: Arkadiusz Hiler <ahiler@codeweavers.com> Signed-off-by: Aric Stewart <aric@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org> |
||
---|---|---|
.. | ||
Makefile.in | ||
buffer.c | ||
descriptor.c | ||
device.c | ||
hid.h | ||
hidclass.sys.spec | ||
main.c | ||
pnp.c |