• 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
..
resources Loading commit data...
tests Loading commit data...
Makefile.in Loading commit data...
button.c Loading commit data...
caret.c Loading commit data...
class.c Loading commit data...
clipboard.c Loading commit data...
combo.c Loading commit data...
controls.h Loading commit data...
cursoricon.c Loading commit data...
dde_client.c Loading commit data...
dde_misc.c Loading commit data...
dde_private.h Loading commit data...
dde_server.c Loading commit data...
defdlg.c Loading commit data...
defwnd.c Loading commit data...
desktop.c Loading commit data...
dialog.c Loading commit data...
driver.c Loading commit data...
edit.c Loading commit data...
exticon.c Loading commit data...
focus.c Loading commit data...
hook.c Loading commit data...
icontitle.c Loading commit data...
input.c Loading commit data...
listbox.c Loading commit data...
lstr.c Loading commit data...
mdi.c Loading commit data...
menu.c Loading commit data...
message.c Loading commit data...
misc.c Loading commit data...
msgbox.c Loading commit data...
nonclient.c Loading commit data...
painting.c Loading commit data...
property.c Loading commit data...
rawinput.c Loading commit data...
resource.c Loading commit data...
resources.h Loading commit data...
scroll.c Loading commit data...
spy.c Loading commit data...
static.c Loading commit data...
sysparams.c Loading commit data...
text.c Loading commit data...
uitools.c Loading commit data...
user32.rc Loading commit data...
user32.spec Loading commit data...
user_main.c Loading commit data...
user_private.h Loading commit data...
win.c Loading commit data...
win.h Loading commit data...
winhelp.c Loading commit data...
winpos.c Loading commit data...
winproc.c Loading commit data...
winstation.c Loading commit data...
wsprintf.c Loading commit data...