適用先
.NET Framework 3.5 Service Pack 1

現象

次のような状況で問題が発生します。

  • Microsoft .NET Framework 3.5 Service Pack 1 (SP1) ベースの Windows Presentation Foundation (WPF) アプリケーションを実行します。

  • WPF アプリケーションは、ハードウェア レンダリング パイプラインを使用します。

  • アプリケーションは、1 つ以上のカスタム WPF アドイン コンポーネントを含む多数のアプリケーション ドメインを読み込んでアンロードします。

このシナリオでは、アプリケーションで System.Runtime.InteropServices.COMException 例外が発生し、アプリケーションがクラッシュします。

解決方法

修正プログラムの情報

サポートされている修正プログラムは Microsoft から入手できます。 ただし、この修正プログラムは、この記事で説明されている問題のみを修正することを目的としています。 この修正プログラムは、この特定の問題が発生しているシステムにのみ適用します。 この修正プログラムは、追加のテストを受け取る可能性があります。 したがって、この問題の影響を深刻に受けない場合は、この修正プログラムを含む次のソフトウェア更新プログラムを待機することをお勧めします。 MSDN コード ギャラリーからこの修正プログラムをダウンロードするには、次の Microsoft Web サイトを参照してください。

http://code.msdn.microsoft.com/KB2276690 注 MSDN コード ギャラリーには、修正プログラムが利用可能な言語が表示されます。 言語が一覧に表示されない場合は、コード ギャラリー リソース ページがその言語で使用できないためです。 注 追加の問題が発生した場合、またはトラブルシューティングが必要な場合は、別のサービス要求を作成する必要がある場合があります。 通常のサポート コストは、この特定の修正プログラムに該当しない追加のサポートの質問と問題に適用されます。 Microsoft カスタマー サービスとサポートの電話番号の完全な一覧、または別のサービス要求を作成するには、次の Microsoft Web サイトを参照してください。

http://support.microsoft.com/contactus/?ws=support

必要条件

この修正プログラムを適用するには、.NET Framework 3.5 Service Pack 1 (SP1) がインストールされている必要があります。 

再起動の必要性

この修正プログラムを適用した後、コンピューターを再起動する必要はありません。

修正プログラムの置き換えに関する情報

この修正プログラムは、他の修正プログラムを置き換えるものではありません。

ファイル情報

この修正プログラムの英語版には、次の表に示すファイル属性 (またはそれ以降のファイル属性) があります。 これらのファイルの日付と時刻は世界協定時 (UTC) で記載されています。 ファイル情報に表示される時刻は、ローカル時刻に変換されています。 UTC と現地時刻の違いを見つけるには、コントロール パネルの [日付と時刻] 項目の [タイム ゾーン] タブを使用します。

サポートされているすべての x86 ベースバージョンの Windows Server 2003 および Windows XP

File name

ファイル バージョン

ファイル サイズ

日付

Time

Platform

Presentationcore.dll

3.0.6920.4033

4,218,880

2010 年 9 月 2 日

01:32

x86

Presentationframework.dll

3.0.6920.4033

5,279,744

2010 年 9 月 2 日

01:28

x86

Presentationhost.exe

4.0.40305.0

295,264

2010 年 9 月 2 日

01:28

x86

Presentationhostdll.dll

3.0.6920.4033

130,408

2010 年 9 月 2 日

01:32

x86

Presentationhostproxy.dll

4.0.31106.0

99,176

2010 年 9 月 2 日

01:32

x86

Windowsbase.dll

3.0.6920.4033

1,249,280

2010 年 9 月 2 日

01:32

x86

サポートされているすべての x64 ベースバージョンの Windows Server 2003 および Windows XP

File name

ファイル バージョン

ファイル サイズ

日付

Time

Platform

Presentationcore.dll

3.0.6920.4033

3,997,696

2010 年 9 月 2 日

00:53

x64

Presentationframework.dll

3.0.6920.4033

4,636,672

2010 年 9 月 2 日

00:48

x64

Presentationhost.exe

4.0.31106.0

320,352

2010 年 9 月 2 日

00:48

x64

Presentationhostdll.dll

3.0.6920.4033

171,368

2010 年 9 月 2 日

00:53

x64

Presentationhostproxy.dll

4.0.31106.0

109,928

2010 年 9 月 2 日

00:53

x64

Windowsbase.dll

3.0.6920.4033

1,110,016

2010 年 9 月 2 日

00:53

x64

サポートされているすべての x86 ベースバージョンの Windows Vista Service Pack 2 (SP2) および Windows Server 2008 Service Pack 2 (SP2)

File name

ファイル バージョン

ファイル サイズ

日付

Time

Platform

Presentationcore.dll

3.0.6920.4033

4,218,880

2010 年 9 月 9 日

10:52

x86

Presentationfontcache.exe.config

該当なし

161

2009 年 4 月 3 日

2,125

該当なし

Wpfgfx_v0300.dll

3.0.6920.4003

1,736,024

2009 年 6 月 17 日

03:08

x86

Presentationframework.dll

3.0.6920.4033

5,279,744

2010 年 9 月 9 日

10:52

x86

Presentationhostdll.dll

3.0.6920.4033

130,408

2010 年 9 月 9 日

10:52

x86

Windowsbase.dll

3.0.6920.4033

1,249,280

2010 年 9 月 9 日

10:52

x86

サポートされているすべての x64 ベースバージョンの Windows Vista SP2 および Windows Server 2008 SP2

File name

ファイル バージョン

ファイル サイズ

日付

Time

Platform

Presentationcore.dll

3.0.6920.4033

3,997,696

2010 年 9 月 9 日

10:52

x64

Presentationfontcache.exe.config

該当なし

161

2009 年 4 月 3 日

20:58

該当なし

Wpfgfx_v0300.dll

3.0.6920.4003

2,254,168

2009 年 6 月 17 日

03:08

x64

Presentationframework.dll

3.0.6920.4033

4,636,672

2010 年 9 月 9 日

10:52

x64

Presentationhostdll.dll

3.0.6920.4033

171,368

2010 年 9 月 9 日

10:52

x64

Windowsbase.dll

3.0.6920.4033

1,110,016

2010 年 9 月 9 日

10:52

x64

サポートされているすべての x86 ベースバージョンの Windows 7

File name

ファイル バージョン

ファイル サイズ

日付

Time

Platform

Presentationcore.dll

3.0.6920.5012

4,218,880

2010 年 9 月 11 日

01:29

x86

Presentationfontcache.exe.config

該当なし

161

2009 年 6 月 10 日

2,114

該当なし

Wpfgfx_v0300.dll

3.0.6920.4902

1,736,536

2009 年 6 月 10 日

2,114

x86

Presentationframework.dll

3.0.6920.5012

5,279,744

2010 年 9 月 11 日

01:29

x86

Presentationhostdll.dll

3.0.6920.5012

130,408

2010 年 9 月 11 日

01:29

x86

Presentationhost.exe

4.0.31106.0

295,264

2010 年 9 月 11 日

01:29

x86

Presentationhostproxy.dll

4.0.31106.0

99,176

2010 年 9 月 11 日

01:29

x86

Windowsbase.dll

3.0.6920.5012

1,253,376

2010 年 9 月 11 日

01:29

x86

サポートされているすべてのバージョンの Windows 7 および Windows Server 2008 R2 (x64 ベース)

File name

ファイル バージョン

ファイル サイズ

日付

Time

Platform

Presentationcore.dll

3.0.6920.5012

3,997,696

2010 年 9 月 11 日

01:28

x64

Presentationfontcache.exe.config

該当なし

161

2009 年 6 月 10 日

20:30

該当なし

Wpfgfx_v0300.dll

3.0.6920.4902

2,255,176

2009 年 6 月 10 日

20:30

x64

Presentationframework.dll

3.0.6920.5012

4,636,672

2010 年 9 月 11 日

01:28

x64

Presentationhostdll.dll

3.0.6920.5012

171,368

2010 年 9 月 11 日

01:28

x64

Presentationhost.exe

4.0.31106.0

320,352

2010 年 9 月 11 日

01:28

x64

Presentationhostproxy.dll

4.0.31106.0

109,928

2010 年 9 月 11 日

01:28

x64

Windowsbase.dll

3.0.6920.5012

1,114,112

2010 年 9 月 11 日

01:28

x64

状態

マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。

回避策 

この問題を回避するには、ハードウェア レンダリング パイプラインを無効にしてから、ソフトウェア レンダリング パイプラインを有効にします。 ハードウェア レンダリング パイプラインを無効にし、ソフトウェア レンダリング パイプラインを有効にするには、次のいずれかの方法を使用します。

  • System.Windows.Interop.RenderMode 列挙型を設定します。WPF ウィンドウが読み込まれるときにソフトウェア レンダリング パイプラインを有効にするために System.Windows.Interop.RenderMode 列挙体を設定するコード例を次に示します。

    private void OnLoaded(object sender, EventArgs e){System.Windows.Interop.HwndSource hwndSource = PresentationSource.FromVisual(this) as System.Windows.Interop.HwndSource;System.Windows.Interop.HwndTarget hwndTarget = hwndSource.CompositionTarget; hwndTarget.RenderMode = System.Windows.Interop.RenderMode.SoftwareOnly;}
  • DisableHWAcceleration レジストリ キーを設定します。重要 このセクション、メソッド、またはタスクには、レジストリを変更する方法を示す手順が含まれています。 レジストリを誤って変更すると、深刻な問題が発生することがあります。 レジストリを変更する際には十分に注意してください。 万一に備えて、編集の前にレジストリをバックアップしてください。 問題が発生した場合でも、レジストリを復元できます。 レジストリのバックアップ方法および復元方法の詳細を参照するには、以下のサポート技術情報番号をクリックしてください。

    322756 Windows でレジストリをバックアップおよび復元する方法Warning このメソッドは、コンピューター上のすべての WPF アプリケーションのハードウェア レンダリング パイプラインを無効にします。 したがって、このメソッドは通常、お客様が環境を制御し、すべての WPF アプリケーションの効果を気にしない場合を除いて推奨されません。

    1. [ スタート] をクリックし、[ 実行] をクリックし、「regedit」と入力し、Enter キーを押します。

    2. 次のレジストリ サブキーを見つけてクリックします。

      HKEY_CURRENT_USER\SOFTWARE\Microsoft\Avalon.Graphics

    3. DisableHWAcceleration レジストリ エントリの値を 1 に設定します。DisableHWAcceleration レジストリ エントリが存在しない場合は、レジストリ サブキーを右クリックし、[新規] をポイントし、[ 文字列値 ] をクリックして新しいレジストリ エントリを作成します。 新しいレジストリ エントリの名前に「 DisableHWAcceleration 」と入力し、[ DisableHWAcceleration] をダブルクリックし、 DisableHWAcceleration 値データを 1 に変更します。

    4. レジストリ エディターを終了します。

詳細情報

ソフトウェア レンダリング パイプラインの詳細については、次の Microsoft Developer Network (MSDN) Web サイト:ソフトウェア レンダリング パイプラインに関する全般的な情報を参照してください WPF レンダリングのレジストリ設定の詳細については、次の MSDN Web サイト:WPF レンダリングのレジストリ設定に関する一般的な情報を参照してくださいSystem.Windows.Interop.RenderMode 列挙体の詳細については、次の MSDN web サイトを参照してください:"System.Windows.Interop.RenderMode" 列挙体に関する一般的な情報

ヘルプを表示

その他のオプションが必要ですか?

サブスクリプションの特典の参照、トレーニング コースの閲覧、デバイスのセキュリティ保護方法などについて説明します。