[PATCH] winebus.sys: Retrieve hidraw device strings from the parent USB device.
Aric Stewart
aric at codeweavers.com
Mon Apr 1 07:25:38 CDT 2019
On 3/29/19 4:18 PM, Zebediah Figura wrote:
> This partially reverts 164517fe575564daa44f74cc3bc4a6bbdd7d3f3d. The
> manufacturer, product, and serial string attributes are not exposed by the
> HID device on Linux, but by its parent USB device.
>
Does this work with bluetooth devices? I know I did some revision to this code in order to support bluetooth devices in the past.
-aric
> Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46711
> Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
> ---
> dlls/winebus.sys/bus_udev.c | 12 ++++++------
> 1 file changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/dlls/winebus.sys/bus_udev.c b/dlls/winebus.sys/bus_udev.c
> index 1f671cf568..99753d603e 100644
> --- a/dlls/winebus.sys/bus_udev.c
> +++ b/dlls/winebus.sys/bus_udev.c
> @@ -674,23 +674,23 @@ static NTSTATUS hidraw_get_reportdescriptor(DEVICE_OBJECT *device, BYTE *buffer,
>
> static NTSTATUS hidraw_get_string(DEVICE_OBJECT *device, DWORD index, WCHAR *buffer, DWORD length)
> {
> - struct udev_device *hiddev;
> + struct udev_device *usbdev;
> struct platform_private *private = impl_from_DEVICE_OBJECT(device);
> WCHAR *str = NULL;
>
> - hiddev = udev_device_get_parent_with_subsystem_devtype(private->udev_device, "hid", NULL);
> - if (hiddev)
> + usbdev = udev_device_get_parent_with_subsystem_devtype(private->udev_device, "usb", "usb_device");
> + if (usbdev)
> {
> switch (index)
> {
> case HID_STRING_ID_IPRODUCT:
> - str = get_sysattr_string(hiddev, "product");
> + str = get_sysattr_string(usbdev, "product");
> break;
> case HID_STRING_ID_IMANUFACTURER:
> - str = get_sysattr_string(hiddev, "manufacturer");
> + str = get_sysattr_string(usbdev, "manufacturer");
> break;
> case HID_STRING_ID_ISERIALNUMBER:
> - str = get_sysattr_string(hiddev, "serial");
> + str = get_sysattr_string(usbdev, "serial");
> break;
> default:
> ERR("Unhandled string index %08x\n", index);
>
More information about the wine-devel
mailing list