Hotfix rollup 2889633 is available for the .NET Framework 3.5 on Windows 8 or Windows Server 2012

Applies to: Windows 8Windows Server 2012 StandardWindows Server 2012 Standard

Introduction


This article describes hotfix rollup 2889633 that is available for the Microsoft .NET Framework 3.5. For more information about the issue that the hotfix resolves, see the "More information" section.

This hotfix rollup is available for the following operating systems:
  • Windows 8
  • Windows Server 2012

More Information


Hotfix Information

A supported hotfix is now available from Microsoft. However, it is intended to correct only the problem that this article describes. Apply it only to systems that are experiencing this specific problem.

To resolve this problem, 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 website: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.

Restart requirement

You must restart the computer after you apply this hotfix if any affected files are being used. We recommend that you close all .NET Framework-based applications before you apply this hotfix.

Hotfix replacement information

This hotfix package does not replace a previously released hotfix package.

Issues that this hotfix rollup resolves


Common language runtime (CLR) issues

Issue 1:

An out-of-memory error occurs when you run a 64-bit mixed mode application that uses lots of memory, even if sufficient memory is available.

After you install this fix, you have to enable and adjust the following configurations in either the app.exe.config file or the 64-bit registry hive.

For the app.exe.config file, make the following adjustments:
<?xml version ="1.0"?>
<configuration>
<runtime>
<ReserveMemoryForJumpStubs enabled="true"/>
<PrecodeInCodeHeap enabled="true"/>
<JumpStubReserve value="<value>"/>
</runtime>
</configuration>
For the registry, make the following adjustments:


HKLM\Software\Microsoft\.NETFramework\ReserveMemoryForJumpStubs:dword = 1
HKLM\Software\Microsoft\.NETFramework\PrecodeInCodeHeap:dword = 1
HKLM\Software\Microsoft\.NETFramework\JumpStubReserve:dword = <value>

Notes:
  • To enable this fix, ReserveMemoryForJumpStubs and PrecodeInCodeHeap must be set to "true." JumpStubReserve is an optional setting, and it has a default value of 2 percent.
  • If out-of-memory errors still occur, incrementally larger values can be used in order to reserve a larger percentage of the code heap. "20" is a reasonable intermediate value for JumpStubReserve. However, larger values start to have an increasingly adverse effect on performance.

Windows Forms

Issue 1:

Assume that you have a Windows Forms application that has multiple forms, and that a user is scrolling one of these forms. During the scroll operation, the form is closed asynchronously, such as from a timed event, by the UI Automation, or during a system restart. When the form is closed, the application throws an ObjectedDisposedException exception on the following stack:

System.Windows.Forms.dll!System.Windows.Forms.Control.CreateHandle()
System.Windows.Forms.dll!System.Windows.Forms.Control.Handle.get()
System.Windows.Forms.dll!System.Windows.Forms.Control.CaptureInternal.set(bool value)
System.Windows.Forms.dll!System.Windows.Forms.Control.WmMouseDown(ref System.Windows.Forms.Message m, System.Windows.Forms.MouseButtons button, int clicks)

Issue 2:

In a Windows Form application, CheckedListBox and ComboBox controls are displayed as empty rectangles on a 64-bit operating system.