[PATCH v2] ntoskrnl.exe: Use case insensitive driver name comparison.

Rémi Bernon rbernon at codeweavers.com
Thu Sep 19 06:45:11 CDT 2019


For instance winebus driver is sometimes referred as WineBus, when
loaded by winedevice.exe, and sometimes as winebus, when loaded from
devices. This makes Wine try to load it twice and initializes the
backend twice as well.

Signed-off-by: Rémi Bernon <rbernon at codeweavers.com>
---

It happened to me while forcing hidraw driver to be loaded before SDL.
It causes winebus to be loaded twice and created two devices for each
HID device.

This is a better version that should pass our ntoskrnl.exe tests, but
I'm not sure how to write native tests for that and if it is possible.

 dlls/ntoskrnl.exe/ntoskrnl.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c
index 18b17f89fd8..009b0dda812 100644
--- a/dlls/ntoskrnl.exe/ntoskrnl.c
+++ b/dlls/ntoskrnl.exe/ntoskrnl.c
@@ -93,7 +93,7 @@ static int wine_drivers_rb_compare( const void *key, const struct wine_rb_entry
     const struct wine_driver *driver = WINE_RB_ENTRY_VALUE( entry, const struct wine_driver, entry );
     const UNICODE_STRING *k = key;

-    return RtlCompareUnicodeString( k, &driver->driver_obj.DriverName, FALSE );
+    return RtlCompareUnicodeString( k, &driver->driver_obj.DriverName, TRUE );
 }

 static struct wine_rb_tree wine_drivers = { wine_drivers_rb_compare };
--
2.23.0




More information about the wine-devel mailing list