[Bug 30075] New: Microsoft .NET Framework 4.5 Developer Preview CLR needs kernel32.dll WerRegisterRuntimeExceptionModule (returning S_OK) to run .NET apps

wine-bugs at winehq.org wine-bugs at winehq.org
Sun Mar 4 07:56:15 CST 2012


http://bugs.winehq.org/show_bug.cgi?id=30075

             Bug #: 30075
           Summary: Microsoft .NET Framework 4.5 Developer Preview CLR
                    needs kernel32.dll WerRegisterRuntimeExceptionModule
                    (returning S_OK) to run .NET apps
           Product: Wine
           Version: 1.4-rc6
          Platform: x86
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: -unknown
        AssignedTo: wine-bugs at winehq.org
        ReportedBy: focht at gmx.net
    Classification: Unclassified


Hello,

after upgrading an existing .NET Framework 4.0 WINEPREFIX with .NET Framework
4.5 (dev preview) some simple apps that previously worked failed to run.

I created a simple C# based .NET "hello world" console app using the provided
C# compiler (csc.exe) in .NET 4.0 prefix and it fails to execute after .NET 4.5
CLR upgrade:

--- snip ---
002b:Starting process
L"C:\\windows\\Microsoft.NET\\Framework\\v4.0.30319\\hello.exe"
(entryproc=0x40233e) 
...
002b:Call KERNEL32.GetModuleHandleW(007f8424 L"kernel32.dll") ret=008378ea
002b:Ret  KERNEL32.GetModuleHandleW() retval=7b810000 ret=008378ea
002b:Call KERNEL32.GetProcAddress(7b810000,00837968
"WerRegisterRuntimeExceptionModule") ret=008378fe
002b:Ret  KERNEL32.GetProcAddress() retval=00000000 ret=008378fe 
...
002b:Call KERNEL32.LoadLibraryExW(0032f944
L"C:\\windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscorrc.dll",00000000,00000002)
ret=008e1f58
002b:Ret  KERNEL32.LoadLibraryExW() retval=00f00001 ret=008e1f58 
...
002b:Call user32.MessageBoxW(00000000,0032fa20 L"CLR error: 80004005.\n The
program will now terminate.",0032f3f0 L"hello.exe - Fatal error",00002010)
ret=00ace3f9 
...
--- snip ---

It seems there is an improved integration of error reporting with WER.

MSDN:
http://msdn.microsoft.com/en-us/library/windows/desktop/dd408167%28v=vs.85%29.aspx

Adding a stub returning E_NOTIMPL doesn't make the CLR happy:

--- snip ---
002b:Call KERNEL32.GetModuleHandleW(007f8424 L"kernel32.dll") ret=008378ea
002b:Ret  KERNEL32.GetModuleHandleW() retval=7b810000 ret=008378ea
002b:Call KERNEL32.GetProcAddress(7b810000,00837968
"WerRegisterRuntimeExceptionModule") ret=008378fe
002b:Ret  KERNEL32.GetProcAddress() retval=7b825418 ret=008378fe
002b:Call KERNEL32.WerRegisterRuntimeExceptionModule(0032f88c
L"C:\\windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscordacwks.dll",00740000)
ret=00837915
002b:fixme:wer:WerRegisterRuntimeExceptionModule
(L"C:\\windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscordacwks.dll",
0x740000) stub!
002b:Ret  KERNEL32.WerRegisterRuntimeExceptionModule() retval=80004001
ret=00837915
...
002b:Call user32.MessageBoxW(00000000,0032fa20 L"CLR error: 80004005.\n The
program will now terminate.",0032f3f0 L"hello.exe - Fatal error",00002010)
ret=00ace3f9 
--- snip ---

You have to return S_OK to please the CLR.
With that change "hello world" runs again. Yay!

Regards

-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.



More information about the wine-bugs mailing list