これは、32ビットアプリケーションと64ビットドライバー間の相互作用に関するx64 Windowsの設計上の制限が原因である場合があります。印刷ダイアログに加えて、これが発生するもう1つの一般的なシナリオは、32ビットInternet Explorerとスマートカード用のダイアログを使用する場合です。
マイクロソフトは、原因に関するいくつかの背景情報をここに提供します。
Windows 7の64ビットバージョンでXPS Document Writerプリンターに印刷すると、32ビットアプリケーションの背後に[名前を付けて保存]ダイアログボックスが表示される
http://support.microsoft.com/kb/2567869
プリンタードライバーは、印刷中のプロセスに読み込まれるダイナミックリンクライブラリ(DLL)として実装されます。プリンタードライバーは、64ビットバージョンのWindowsで64ビットDLLとして実装されます。プリンタードライバーは、32ビットバージョンのWindowsで32ビットDLLとして実装されます。
32ビットプロセスは64ビットDLLをロードできません。したがって、64ビットバージョンのWindowsは、Splwow64.exeプロセスを介した32ビットプロセスからの印刷をサポートします。Splwow64.exeは、64ビットプリンタードライバーを読み込むことができ、32ビットプロセスに代わって印刷を処理できる64ビットプロセスです。
アプリケーションがStartDoc関数を呼び出してXPS Document Writerプリンターに印刷すると、XPS Document Writerプリンタードライバーは[名前を付けて保存]ダイアログボックスを表示し、ユーザーがXPSファイルの名前と場所を指定できるようにします。ダイアログボックスの所有者ウィンドウは通常、StartDoc関数を呼び出しているスレッドのアクティブウィンドウであり、ダイアログボックスはアクティブウィンドウの上に表示されます。
32ビットアプリケーションがWindowsの64ビットバージョンでStartDoc関数を呼び出すと、Splwow64.exeプロセスは、32ビットアプリケーションに代わってXPS Document Writerプリンタードライバーを呼び出します。このシナリオでは、Splwow64.exeプロセスのスレッドにアクティブなウィンドウがないため、[名前を付けて保存]ダイアログボックスは所有されていません。さらに、Splwow64.exeプロセスにはフォアグラウンドウィンドウを設定する権限がないため、印刷しているアプリケーションの背後にダイアログボックスが表示される場合があります。
ダイアログボックスが閉じられるまでStartDoc呼び出しは返されないため、アプリケーションが応答を停止したように見える場合があります。
Splwow64.exeプロセスによって作成された場合、[名前を付けて保存]ダイアログボックスには、Windowsエクスプローラーのタスクバーに独自のボタンがあります。これは、ダイアログボックスが所有されていないためです。Splwow64.exeプロセスがフォアグラウンドウィンドウを設定できない場合、タスクバーボタンも点滅します。