Article ID: 967634 - Last Review: October 19, 2009 - Revision: 2.0

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

On This Page

Expand all | Collapse all

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

A supported hotfix is now available from Microsoft. However, it is intended to correct only the problem that is described in this article. Apply it only to systems that are experiencing this specific problem. This hotfix may receive additional testing. Therefore, if you are not severely affected by this problem, we recommend that you wait for the next service pack that contains this hotfix.

To resolve this problem immediately, contact Microsoft Customer Support Services to obtain the hotfix. For a complete list of Microsoft Customer Support Services telephone numbers and information about support costs, visit the following Microsoft Web site:
http://support.microsoft.com/contactus/?ws=support (http://support.microsoft.com/?scid=http%3a%2f%2fsupport.microsoft.com%2fcontactus%2f%3fws%3dsupport)
Note In special cases, charges that are ordinarily incurred for support calls may be canceled if a Microsoft Support Professional determines that a specific update will resolve your problem. The usual support costs will apply to additional support questions and issues that do not qualify for the specific update in question.

Prerequisites

You must have Microsoft .NET Framework 3.5 Service Pack 1 (SP1) installed to apply this hotfix.

Restart requirement

You do not have to restart the computer after you apply this hotfix.

Hotfix replacement information

This hotfix does not replace any other hotfixes.

File information

The English version of this hotfix has the file attributes (or later file attributes) that are listed in the following table. The dates and times for these files are listed in Coordinated Universal Time (UTC). When you view the file information, it is converted to local time. To find the difference between UTC and local time, use the Time Zone tab in the Date and Time item in Control Panel.
Windows XP, x86-based version
Collapse this tableExpand this table
File nameFile versionFile sizeDateTimePlatform
presentationcore.dll3.0.6920.40004,214,78410-Mar-200923:02x86
wpfgfx_v0300.dll3.0.6920.40001,736,02410-Mar-200923:02x86

Windows XP, x64-based version
Collapse this tableExpand this table
File nameFile versionFile sizeDateTimePlatform
presentationcore.dll3.0.6920.40003,996,67210-Mar-200922:33x64
wpfgfx_v0300.dll3.0.6920.40002,254,16810-Mar-200922:33x64

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.

APPLIES TO
  • Microsoft .NET Framework 3.5 Service Pack 1
Keywords: 
kbhotfixserver kbexpertiseadvanced kbqfe kbsurveynew KB967634
 

Article Translations