Zebediah Figura : winebus.sys: Retrieve hidraw device strings from the parent USB device.

Alexandre Julliard julliard at winehq.org
Fri Aug 23 09:31:25 CDT 2019


Module: wine
Branch: stable
Commit: 239c6e4449188e6cdd1cf28b775bba9b8abba95a
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=239c6e4449188e6cdd1cf28b775bba9b8abba95a

Author: Zebediah Figura <z.figura12 at gmail.com>
Date:   Fri Mar 29 16:18:32 2019 -0500

winebus.sys: Retrieve hidraw device strings from the parent USB device.

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.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46711
Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
(cherry picked from commit cc3820ca99e65150958af5410ac2de77f9a4a505)
Signed-off-by: Michael Stefaniuc <mstefani at winehq.org>

---

 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 64b245e..3c89963 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-cvs mailing list