[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