[PATCH 4/4] hidclass.sys: Add input.inf that matches all HID devices.
Rémi Bernon
rbernon at codeweavers.com
Fri Jan 21 17:01:12 CST 2022
On 1/21/22 17:10, Arkadiusz Hiler wrote:
> This makes it so that all the devices on the HID bus now have Class,
> ClassGUID, Driver and DriverDesc register properties populated.
>
> Without having at least Driver and Class set SDL2 refuses to use HID
> devices directly.
>
> Signed-off-by: Arkadiusz Hiler <ahiler at codeweavers.com>
> ---
> dlls/hidclass.sys/Makefile.in | 2 ++
> dlls/hidclass.sys/hidclass.rc | 20 ++++++++++++++++++++
> dlls/hidclass.sys/input.inf | 13 +++++++++++++
> loader/wine.inf.in | 1 +
> 4 files changed, 36 insertions(+)
> create mode 100644 dlls/hidclass.sys/hidclass.rc
> create mode 100644 dlls/hidclass.sys/input.inf
>
> diff --git a/dlls/hidclass.sys/Makefile.in b/dlls/hidclass.sys/Makefile.in
> index 25a0396dabe..788828ad66a 100644
> --- a/dlls/hidclass.sys/Makefile.in
> +++ b/dlls/hidclass.sys/Makefile.in
> @@ -5,3 +5,5 @@ IMPORTS = hal ntoskrnl user32 hidparse
> C_SRCS = \
> device.c \
> pnp.c
> +
> +RC_SRCS = hidclass.rc
> diff --git a/dlls/hidclass.sys/hidclass.rc b/dlls/hidclass.sys/hidclass.rc
> new file mode 100644
> index 00000000000..409bdc16b45
> --- /dev/null
> +++ b/dlls/hidclass.sys/hidclass.rc
> @@ -0,0 +1,20 @@
> +/*
> + * Copyright 2022 Arkadiusz Hiler
> + *
> + * This library is free software; you can redistribute it and/or
> + * modify it under the terms of the GNU Lesser General Public
> + * License as published by the Free Software Foundation; either
> + * version 2.1 of the License, or (at your option) any later version.
> + *
> + * This library is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
> + * Lesser General Public License for more details.
> + *
> + * You should have received a copy of the GNU Lesser General Public
> + * License along with this library; if not, write to the Free Software
> + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
> + */
> +
> +/* @makedep: input.inf */
> +1 WINE_DATA_FILE input.inf
> diff --git a/dlls/hidclass.sys/input.inf b/dlls/hidclass.sys/input.inf
> new file mode 100644
> index 00000000000..d9222b13672
> --- /dev/null
> +++ b/dlls/hidclass.sys/input.inf
> @@ -0,0 +1,13 @@
> +[Version]
> +Signature="$CHICAGO$"
> +ClassGuid={745a17a0-74d3-11d0-b6fe-00a0c90f57da}
> +Class=HIDClass
> +
> +[Manufacturer]
> +Wine=mfg_section
> +
> +[mfg_section]
> +Wine HID device=device_section,HID\
> +
> +[device_section.Services]
> +AddService = ,0x2
> diff --git a/loader/wine.inf.in b/loader/wine.inf.in
> index c0251934dfc..afa344ffa80 100644
> --- a/loader/wine.inf.in
> +++ b/loader/wine.inf.in
> @@ -5717,6 +5717,7 @@ protocol,"@%11%\ws2_32.dll,-3"
> services,"@%11%\ws2_32.dll,-4"
>
> [InfFiles]
> +input.inf,"@%12%\hidclass.sys,-1"
> winebus.inf,"@%12%\winebus.sys,-1"
> winehid.inf,"@%12%\winehid.sys,-1"
> wineusb.inf,"@%12%\wineusb.sys,-1"
Looking at the SDL hidapi code it looks like they have much more HID
devices than just the DS4 and DS5.
Isn't there a risk, if we satisfy all the requirements, that this would
make SDL try using the devices through HID where we don't support the
same reports, when it would currently just fallback to XInput / DInput?
--
Rémi Bernon <rbernon at codeweavers.com>
More information about the wine-devel
mailing list