• Zebediah Figura's avatar
    user32: Do not delay-load setupapi. · 50aeb5e7
    Zebediah Figura authored
    This fixes a deadlock in the Steel Series Engine installer, between the
    "user_section" lock and the loader lock.
    
    Currently user32 takes the "user_section" lock during THREAD_DETACH, i.e. while
    the loader lock is held. However, it is also possible for a thread to take the
    locks in the reverse order. The observed path is:
     - register_builtin()
     - LoadCursorA()
     - get_display_bpp()
     - get_display_dc()
     - CreateDCW()
     - GetDeviceCaps(DESKTOPHORZRES)
     - GetSystemMetrics(SM_CXVIRTUALSCREEN)
     - EnumDisplayMonitors()
     - update_monitor_cache()
    
    Since we now rely on setupapi for fundamental tasks such as determining screen
    size, it doesn't make much sense to delay-load it.
    Signed-off-by: 's avatarZebediah Figura <z.figura12@gmail.com>
    Signed-off-by: 's avatarAlexandre Julliard <julliard@winehq.org>
    50aeb5e7
Name
Last commit
Last update
dlls Loading commit data...
documentation Loading commit data...
fonts Loading commit data...
include Loading commit data...
libs Loading commit data...
loader Loading commit data...
nls Loading commit data...
po Loading commit data...
programs Loading commit data...
server Loading commit data...
tools Loading commit data...
.editorconfig Loading commit data...
.mailmap Loading commit data...
ANNOUNCE Loading commit data...
AUTHORS Loading commit data...
COPYING.LIB Loading commit data...
LICENSE Loading commit data...
LICENSE.OLD Loading commit data...
MAINTAINERS Loading commit data...
Makefile.in Loading commit data...
README Loading commit data...
VERSION Loading commit data...
aclocal.m4 Loading commit data...
configure Loading commit data...
configure.ac Loading commit data...