アプリケーションは、アプリケーションの復旧と再起動 (ARR) を使用して、ハンドルされない例外が原因で、またはアプリケーションが応答を停止したときに、アプリケーションが終了する前にデータと状態情報を保存できます。 要求された場合は、アプリケーションも再起動されます。
復旧または再起動に登録すると、登録情報がプロセスに追加されます。 Windows エラー報告 (WER) は、登録情報を使用して復旧コールバックを呼び出し、アプリケーションを再起動します。 たとえば、回復に登録し、アプリケーションでハンドルされない例外が発生した場合、WER はダイアログをユーザーに表示し、ユーザーはソリューションをオンラインで確認したり、プログラムを閉じたり、プログラムをデバッグしたりできます。 ユーザーがソリューションを確認するか、プログラムを閉じるかを選択した場合、WER は登録済みのコールバックを呼び出し、アプリケーションにデータと状態情報を保存する機会を与えます。 復旧が完了すると、アプリケーションは終了します。
再起動に登録し、アプリケーションでハンドルされない例外が発生した場合、WER はユーザーに同じダイアログを表示しますが、プログラムを閉じる代わりにプログラムを再起動するオプションを提供します。 復旧と再起動の両方に登録すると、最初に復旧が行われます。その後、アプリケーションが終了し、再起動されます。
応答しないアプリケーションも同様の方法で処理されます。 アプリケーションが Windows メッセージに 5 秒間応答せず、ユーザーがアプリケーションと対話しようとすると、アプリケーションは応答しないと見なされます。ユーザーはタイトル バーに (応答していません) と表示されます。 WER は、ユーザーがシステムの閉じるボタンをクリックするとアクティブ化されます。
アプリケーションが応答しなくなるか、ハンドルされない例外が発生する前に、復旧または再起動に登録するか、登録を削除する必要があります。 ただし、復旧コールバックでは、再起動コマンド ラインを変更できます。
復旧または再起動の登録の詳細については、次のトピックを参照してください。
回復機能と再起動機能を実装するサンプルについては、WinBase\WindowsErrorReporting フォルダーにある Windows SDK の AppRecovery と AppRestart のサンプルを参照してください。