Uwe Bonnes bon@elektron.ikp.physik.tu-darmstadt.de writes:
This seems to happen, because during MODULE_InitDLL of the dll it calls a Loadlibrary on itself. As MODULE_InitDLL sets WINE_MODREF_MARKER, and the flow of execution in LoadLibrary checks for WINE_MODREF_MARKER before incrementing the RefCount, the refcount gets wrong and the application unloaded. Forcing the increment of RefCount in MODULE_LoadLibraryExA unconditional of WINE_MODREF_MARKER makes the application continue.
Do we need the check for WINE_MODREF_MARKER in MODULE_LoadLibraryEx?
Yes, this is needed for circular dependencies. But maybe we need to differentiate an explicit LoadLibrary from the implicit loading of dependencies.