Windows Error Reporting Part.3
2011/08/06 コメントを残す
Part.1 と Part.2 で WER の仕組みと前提となる SEH の概要をお伝えしました。Part.3 では、いよいよ WER の
API を紹介したいと思います。
Windows Error Reporting Part.1 で WER は Microsoft WER サイトに採取したデータを送信し、
その動きをレジストリで制御することができると紹介しましたが、API を使うと、一時的に現在のプロセスの設定のみを
変更することができます。
- 現在のプロセスの WER 設定を変更する
WerSetFlags()
http://msdn.microsoft.com/en-us/library/bb513629.aspx - 現在のプロセスの WER 設定を取得する
WerGetFlags()
http://msdn.microsoft.com/en-us/library/bb513618.aspx
一つだけ注意があります。WerGetFlags() は、WerSetFlags() の結果を取得するときに使う用途になっているので
WerSetFlags() を呼び出さずに、いきなり WerGetFlags() を呼びだすと、エラーになります。
次に、WER の問題レポートの作成ですが、MSDN にある
に従い、以下の流れで処理します。
- WER_REPORT_INFORMATION 構造体を準備する
- WerReportCreate() を呼び出し、WER 問題レポートを作成する
- WerReportSetParameter() を呼び出して、パラメーターを追加する
- WerReportAddFile() を呼び出して、レポートに独自のファイルを追加する
- WerReportAddDump() を呼び出して、ミニダンプをレポートに追加する
- WerReportSubmit() を呼び出して、レポートを送信するか、ローカルキューに保存する
- WerReportCloseHandle() でリソースを解放して終了する
イメージがわかるように、実際の画面との対応を行ってみます。
まず、WER 問題レポートの表示です。