http://bugs.winehq.org/show_bug.cgi?id=3620
--- Comment #5 from Dmitry Timoshkov dmitry@codeweavers.com 2007-12-24 10:02:41 --- Created an attachment (id=9786) --> (http://bugs.winehq.org/attachment.cgi?id=9786) Sample app replicating the bug
(In reply to comment #4)
sysupe is PKWare's 16-bit SFX module, which unpacks and starts 32-bit InstallShield-based installer via WinExec(16), and then waits for it using GetModuleUsage(16). On Windows this works, on Wine GetModuleUsage doesn't work on 32-bit applications, so SFX thinks it can close and it "cleans" things up, disrupting some of installer files.
Thanks for the investigation. In order to make debugging and fixing this bug a bit easier I've created a sample 16-bit application which replicates the bug.
It's worth to mention that 16-bit GetModuleFileName in the test returns C:\WINNT\SYSTEM32\WINOLDAP.MOD under 32-bit XP. In Wine we have no a 16-bit wrapper for ShellExecute16 to run 32-bit applications, so we either need to introduce it, or somehow extend WinExec16/ShellExecute16 to return a proper handler for 32-bit modules on which GetModuleUsage16 would work.