Windowsでは以前より致命的なエラーが発生した場合に、悪名高い真っ青なエラー画面「Blue Screen of Death(BSOD)」が表示されることが知られています。
Windows 10では幸いなことに、上記画面のようなBSODが表示される頻度は以前より大幅に少なくなっていますが、開発者やIT管理者がメモリダンプを取得するために、BSODを強制的に発生させる方法が存在しています。
今回レジストリを変更しBSODをキーボードから発生させる方法を説明します。
レジストリを変更
BSODをキーボードで発生させるためにレジストリエディタを利用しレジストリ値を設定します。
regedit.exeを起動して以下のキーに移動します。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\kbdhid\Parameters
新しいDWORD(32ビット)値を追加し、名前を「CrashOnCtrlScroll」、値を「1」に設定します。これはUSBキーボードのための設定です。
次に以下のキーに移動します。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters
こちらも同様にDWORD(32ビット)値を追加し、名前を「CrashOnCtrlScroll」、値を「1」に設定します。これはPS/2キーボードのための設定です。
システムを再起動した後、「右Ctrl」を押しながら「Scroll Lock」を2度押すとBSODを発生させることができます。
なおVMwareのゲストOSとして実行しているWindows 10ではScroll Lockが上手く送信できないようでした。この場合VMwareのキーの置き換え機能を利用しScroll Lockを別のキーに割り当てると良いようです(設定 > キーボードとマウス > プロファイルでScroll LockをF9キーに置き換えるなど)。
まとめ
Windowsではレジストリ値の設定とキーボード操作によって手動でBSODを発生させメモリダンプを作成することができます(メモリダンプファイルはC:\Windows\Minidumpの下に作成されます)。ソフトウェアの検証を行う管理者や開発者ならば覚えておいて損はない方法だと思います。