[Bug 43408] Quest 5.7.x (.NET 4.0 WPF app) crashes on direct access of MIL4 (Media Integration Layer, wpfgfx_v0400.dll) to internal bitmap struct/class impl ( depends on exact layout)

wine-bugs at winehq.org wine-bugs at winehq.org
Sun Jul 23 06:42:56 CDT 2017


https://bugs.winehq.org/show_bug.cgi?id=43408

Anastasius Focht <focht at gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |focht at gmx.net
                URL|                            |https://github.com/textadve
                   |                            |ntures/quest/releases/downl
                   |                            |oad/v5.7.1/quest571.exe
           Keywords|                            |download
             Status|UNCONFIRMED                 |NEW
          Component|-unknown                    |windowscodecs
            Summary|Running Quest with Dotnet   |Quest 5.7.x (.NET 4.0 WPF
                   |4.0 crashes                 |app) crashes on direct
                   |                            |access of MIL4 (Media
                   |                            |Integration Layer,
                   |                            |wpfgfx_v0400.dll) to
                   |                            |internal bitmap
                   |                            |struct/class impl (depends
                   |                            |on exact layout)
     Ever confirmed|0                           |1

--- Comment #4 from Anastasius Focht <focht at gmx.net> ---
Hello folks,

initial bug report -> dupe of bug 37988 ("Jeskola Buzz Build 1499 (.NET 4.0
app) fails to run (samba/winbind package not installed with distro)")

Comment #2 relates to bug 34764 (".NET Framework 3.5 SP1 based WPF applications
crash on direct access of MIL (Media Integration Layer) to internal bitmap
struct/class impl (depends on exact layout)") but it's not an exact dupe.

Wine-staging patchset still causes crash here.
Maybe they changed layout again when updating MILCore for WPF 4.0.

--- snip ---
$ pwd
/home/focht/.wine/drive_c/Program Files/Quest 5

$ wine ./Quest.exe
...
Unhandled Exception: System.AccessViolationException: Attempted to read or
write protected memory. This is often an indication that other memory is
corrupt.
   at MS.Win32.PresentationCore.UnsafeNativeMethods.MILUnknown.Release(IntPtr
pIUnkown)
   at
MS.Win32.PresentationCore.UnsafeNativeMethods.MILUnknown.ReleaseInterface(IntPtr&
ptr)
   at
System.Windows.Media.Imaging.BitmapDecoder.SetupDecoderFromUriOrStream(Uri uri,
Stream stream, BitmapCacheOption cacheOption, Guid& clsId, Boolean&
isOriginalWritable, Stream& uriStream, UnmanagedMemoryStream&
unmanagedMemoryStream, SafeFileHandle& safeFilehandle)
   at System.Windows.Media.Imaging.BitmapDecoder.CreateFromUriOrStream(Uri
baseUri, Uri uri, Stream stream, BitmapCreateOptions createOptions,
BitmapCacheOption cacheOption, RequestCachePolicy uriCachePolicy, Boolean
insertInDecoderCache)
   at System.Windows.Media.Imaging.BitmapImage.FinalizeCreation()
   at System.Windows.Media.Imaging.BitmapImage.EndInit()
   at GameBrowser.GameListItem.m_imageClient_DownloadDataCompleted(Object
sender, DownloadDataCompletedEventArgs e)
   at
System.Net.WebClient.OnDownloadDataCompleted(DownloadDataCompletedEventArgs e)
   at System.Net.WebClient.DownloadDataOperationCompleted(Object arg)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate
callback, Object args, Int32 numArgs)
   at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source,
Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
...
--- snip ---

-> 'winetricks -q windowscodecs'

After that:

--- snip ---
System.InvalidOperationException: An error occurred creating the form. See
Exception.InnerException for details.  The error is: Parameter is not valid.
---> System.ArgumentException: Parameter is not valid.
   at System.Drawing.Image.get_RawFormat()
   at System.Windows.Forms.ToolStripItem.set_ImageTransparentColor(Color value)
   at TextAdventures.Quest.Toolbar.InitializeComponent()
   at TextAdventures.Quest.Toolbar..ctor()
   at TextAdventures.Quest.Player..ctor()
   at TextAdventures.Quest.Main.InitializeComponent()
   at TextAdventures.Quest.Main..ctor()
   --- End of inner exception stack trace ---
   at TextAdventures.Quest.My.MyProject.MyForms.Create__Instance__[T](T
Instance)
   at TextAdventures.Quest.My.MyApplication.OnCreateMainForm()
   at
Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()
   at
Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
--- snip ---

--- snip ---
...
004d:Call gdiplus.GdipLoadImageFromStream(05c00030,0033e460) ret=05c1b73b 
...
004d:trace:gdiplus:initialize_decoder_wic
0x5c00030,{1b7cfaf4-713f-473c-bbcd-6137425faeaf}
004d:Call KERNEL32.LoadLibraryA(7d8fee10 "windowscodecs.dll") ret=7d8da1af 
...
004d:Ret  rpcrt4.NdrDllGetClassObject() retval=80040111 ret=530144f6
004d:err:ole:apartment_getclassobject DllGetClassObject returned error
0x80040154
...
004d:err:ole:CoGetClassObject no class object
{3692ca39-e082-4350-9e1f-3704cb083cd5} could be created for context 0x1
004d:Ret  ole32.CoCreateInstance() retval=80040154 ret=5302d97b 
...
004d:Ret  gdiplus.GdipLoadImageFromStream() retval=00000001 ret=05c1b73b
...
004d:Call KERNEL32.GetProcAddress(7d880000,03c7cc32 "GdipGetImageRawFormat")
ret=79171e1e
004d:Ret  KERNEL32.GetProcAddress() retval=7d88d9b0 ret=79171e1e
...
004d:Call gdiplus.GdipGetImageRawFormat(00000000,0033eac4) ret=05c1d2b3
004d:trace:gdiplus:GdipGetImageRawFormat ((nil), 0x33eac4)
004d:Ret  gdiplus.GdipGetImageRawFormat() retval=00000002 ret=05c1d2b3 
--- snip ---

Native Windows Imaging Component (WIC) for Windows XP installed by 'winetricks'
doesn't implement PNG gAMA metadata reader hence 'gdiplus' must be here native
too.

https://msdn.microsoft.com/en-us/library/windows/desktop/dn280986(v=vs.85).aspx

-> 'winetricks -q gdiplus'

After that the main user interface is black due to other insufficiencies.
I'm too lazy to find the dupes here though.

Wine-Staging 2.x makes the user interface fully appear and usable with the
aforementioned native overrides.

$ sha1sum quest571.exe 
828639754a27f3576a7a86a876ee240d3a8e978e  quest571.exe

$ du -sh quest571.exe 
30M    quest571.exe

$ wine --version
wine-2.13

Regards

-- 
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