From: Sven Baars <sbaars(a)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; -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/6908