Symptoms
You may experience one of the following issues when you render graphics by using Windows Presentation Foundation (WPF) in a .NET Framework 3.5 Service Pack 1 (SP1)-based application.
Issue 1
When you change the value of the VisualBrush.Visual property in a WPF application, the application crashes.
Issue 2
A memory leak occurs in the render thread of a WPF application when you perform one of the following actions:
-
You use the software-rendering pipeline to render a 3D scene that includes a VisualBrush object or a DrawingBrush object. For example, you are using the software-rendering pipeline when you perform one of the following actions:
-
You render the scene by using the RenderTargetBitmap class.
-
You print the scene.
-
You set the rendering tier property to 0.
-
You render the scene over a remote desktop connection.
-
-
You render a scene by using the WriteableBitmap class on a computer that does not use the Windows Display Driver Model (WDDM).
-
You use the hardware-rendering pipeline to render a scene by using a tiled VisualBrush object or a tiled DrawingBrush object on a computer that does not use the WDDM.
Issue 3
WPF applications that use layered windows crash when you perform one of the following actions:
-
You put a computer that uses the Windows XP Display Driver Model (XPDDM) into standby, and then you resume the computer from standby.
-
You switch to the full-screen console mode on Windows XP.
Cause
Cause 1
This issue occurs because a generic error is returned from a render thread when the operations in the thread are ordered incorrectly. These operations cause child objects to detach from a null parent object.
For example, a Visual object must be removed from a VisualBrush object before it is detached from the VisualBrush object. However, the operations to remove the Visual object may be ordered incorrectly. Therefore, the Visual object detaches from a null parent object.Cause 2
This issue occurs because of a reference counting error in the render thread.
Cause 3
This issue occurs because a Win32 error code is handled incorrectly.
Resolution
To resolve this issue, apply the hotfix package that is described in the following Microsoft Knowledge Base article:2667241An update rollup is available for Windows Presentation Foundation (WPF) for Microsoft .NET Framework 3.5
More Information
Stack output
System.InvalidOperationException: An unspecified error occurred on the render thread.
at System.Windows.Media.MediaContext.NotifyPartitionIsZombie(Int32 failureCode) at System.Windows.Media.MediaContext.NotifyChannelMessage() at System.Windows.Interop.HwndTarget.HandleMessage(Int32 msg, IntPtr wparam, IntPtr lparam) at System.Windows.Interop.HwndSource.HwndTargetFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o) at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Boolean isSingleParameter) at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler)
Status
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.