From: Sven Baars sbaars@codeweavers.com
The wayland driver does this during initialization. --- dlls/win32u/driver.c | 8 ++++++++ 1 file changed, 8 insertions(+)
diff --git a/dlls/win32u/driver.c b/dlls/win32u/driver.c index 12390c026ce..26fb11b0a68 100644 --- a/dlls/win32u/driver.c +++ b/dlls/win32u/driver.c @@ -1314,6 +1314,14 @@ void __wine_set_user_driver( const struct user_driver_funcs *funcs, UINT version return; }
+ if (!funcs) + { + prev = InterlockedExchangePointer( (void **)&user_driver, (void *)&lazy_load_driver ); + if (prev != &lazy_load_driver) + free( prev ); + return; + } + driver = malloc( sizeof(*driver) ); *driver = funcs ? *funcs : null_user_driver;