FIX: You may experience several issues when you render graphics by using Windows Presentation Foundation (WPF) in a .NET Framework 3.5 SP1-based application

Article translations Article translations
Article ID: 967634 - View products that this article applies to.
Expand all | Collapse all

On This Page

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:

2667241 An 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.

Properties

Article ID: 967634 - Last Review: April 10, 2012 - Revision: 3.0
APPLIES TO
  • Microsoft .NET Framework 3.5 Service Pack 1
Keywords: 
kbHotfixServer kbexpertiseadvanced kbqfe kbsurveynew KB967634

Give Feedback

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com