winexinput.sys: Create an additional internal xinput PDO.
commit99614467c19482e24bcf7eef980710b56cc86f8c
authorRémi Bernon <rbernon@codeweavers.com>
Fri, 3 Sep 2021 05:57:37 +0000 (3 07:57 +0200)
committerAlexandre Julliard <julliard@winehq.org>
Fri, 3 Sep 2021 19:43:03 +0000 (3 21:43 +0200)
tree91fdc5f4f54742f0579a4444e8f981491638a8c0
parented63e1bcf0d5a56af52ce813691889cb7dd4e7ec
winexinput.sys: Create an additional internal xinput PDO.

This internal xinput PDO is an HID compatible pass-through device, but
it needs to be kept private and is listed on the internal WINEXINPUT
device interface class, instead of the HID device interface class.

This is a Wine extension for convenience and native XInput driver uses a
different, undocumented, device interface.

We now filter the report read requests to make sure only one is sent
through to the lower bus device, and we complete both gamepad and xinput
read requests at once using the returned data.

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
dlls/winexinput.sys/main.c