Internet Explorer において印刷中にモーダル ダイアログを表示すると、ハングアップする

現象
Internet Explorer 10 および Internet Explorer 11 で印刷処理中にモーダル ダイアログを表示すると、ハングアップする場合があります。プリンター ドライバーによっては、以下のような場合にモーダル ダイアログを表示しますが、このときタイミングによっては Internet Explorer がハングアップします。
  • 印刷結果を保存するファイル名を指定するために、[ファイルを開く] ダイアログを表示する
  • 印刷するユーザーを認証するために、[ユーザー認証] ダイアログを表示する
  • その他、プリンター ドライバー固有の印刷設定のために、[詳細設定] ダイアログを表示する

原因
本現象は、Internet Explorer 内において、描画処理用の同期オブジェクトとウィンドウ管理機能が競合し、デッドロックに至るために発生します。
解決方法
Internet Explorer の設定では、この現象を回避することができません。プリンター ドライバーでは、Internet Explorer のプロセス外にてダイアログを表示することで回避が可能です。
状況
弊社では、本現象を Windows 8 および Windows 7 用の Internet Explorer 10、Windows 8.1 および Windows 7 用の Internet Explorer 11 の問題と認識しています。
詳細
Internet Explorer 10 および Internet Explorer 11 が使用する HTML レンダリング モジュール "mshtml.dll" では、印刷時に描画処理用の同期オブジェクトをロックします。また、この同期オブジェクトをロックした状態でプリンター ドライバーを呼び出します。このとき、プリンター ドライバーから GetSaveFileName 関数や PrintDlg 関数などを使用してモーダル ダイアログを表示すると、フォーカス処理などのウィンドウ メッセージが mshtml.dll のウィンドウに送信されます。しかし、mshtml.dll では描画処理用の同期オブジェクトがロックされた状態であるため、メッセージを処理できません。その結果、ほかの処理も進められず、デッドロックが発生します。
関連情報
注意 : これは、マイクロソフトのサポート組織内で直接作成された "緊急公開" の資料です。 この資料には、確認中の問題に関する現状ベースの情報が記載されています。 情報提供のスピードを優先するため、資料には誤植が含まれる可能性があり、予告なしに随時改定される場合があります。 その他の考慮事項については、使用条件を参照してください。
プロパティ

文書番号:2845571 - 最終更新日: 09/29/2016 14:55:00 - リビジョン: 4.0

Windows Internet Explorer 10, Internet Explorer 11

  • KB2845571
フィードバック