Windowsを使用していると突然ブルースクリーン(BSOD)が表示されることがあります。ドライバの不良やハードウェアの問題などさまざまな原因で発生し、重大な問題が存在することを示しているため、多くのユーザーが二度と見たくないと思っている画面だと思います。
しかし、Windows用ソフトウェアを開発している場合は、ブルースクリーンのメカニズムを知っている必要があるしれません。Microsoftのベテラン技術者Raymond Chen氏は、ブログ記事「Why can’t I trigger a manual blue screen crash by injecting the magic key sequence?」を公開し、ブルースクリーンを発生させるための正しい方法を説明しています。
記事によると、Windowsには「Ctrlキーを押しながらScrollLockキーを2回押す」ことで、システムを強制的にクラッシュさせることができる機能が搭載されています。
ある開発者が、このキーシーケンス自動的に送る簡単なプログラムを書いたものの、それはうまくいかなかったそうです。キーシーケンスを認識し、クラッシュ画面をトリガーするのはキーボードドライバであるのが原因で、ウィンドウマネージャーにキーシーケンスをインジェクトしても意味がないからだとのことです。
理由を説明する簡単な図が掲載されています:
プログラムからの入力がキーボードドライバに影響を及ぼさないことがわかります。
同氏は、人工的なカーネルクラッシュを引き起こす最良の方法は、SysInternalsツールに含まれるNotMyFaultを使用することで、winlogon.exeのような重要なプロセスを終了させるようなトリックは使わないようにアドバイスしています。(Watsonサービスを通じてwinlogon.exeのクラッシュとして報告され、winlogon.exeチームの混乱を招くため)。