ブルースクリーン(BSoD)特集

mixiを散歩していたら、ブルースクリーンならぬ、グリーンスクリーンになった人々が居たので、ちょっとネタにすることにしました。

またもやPC破損
やすみすぎ


ブルースクリーン(BSoD)ですぐにPCが再起動して文字が読めない
bsodb
よくある話ですが、システムのプロパティの、起動と回復に設定があります。

bsoda
システムエラーで自動的に再起動するのチェックが入っていると、BSoDの後のメモリダンプが終わると勝手に再起動してしまいます。

意図的にBSoDを発生させたい
Windows XP/2000/2003用

右の Ctrl キーを押しながら ScrollLock キーを 2 回押すことでBSoDを任意のタイミングで発生させることができます。
要するに、いつでも好きなときのWindowsのメモリの中身をファイル化することが可能になります。

標準キーボードの場合
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters
にCrashOnCtrlScrollという名前を作成して、 REG_DWORD で1を設定します。

USBキーボードの場合
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\kbhid\Parameters
にCrashOnCtrlScrollという名前を作成して、 REG_DWORD で1を設定します。

BSoDの色を変更したい

Windows 9x 系の場合は \WINDOWS\System.iniに以下の設定を加えることで、色を変更できます。

[386enh]
woafont=app932.FON
EGA80WOA.FON=EGA80WOA.FON
EGA40WOA.FON=EGA40WOA.FON
CGA80WOA.FON=CGA80WOA.FON
CGA40WOA.FON=CGA40WOA.FON
MessageBackColor=2
MessageTextColor=F

デフォルトは 1が青、2が緑、4が栗色

Windows2000/XPの場合

NTOSKRNEL.EXEの中で処理されていて固定値です。
逆アセンブルしてみると栗色のRSoDと緑色のGSoDとネイビーのBSoDの3種類がコードの中に定義されています。

BSoDは  KeBugCheckEx / KeBugCheck から呼ばれますが、コードを追ってみたところ、他の色は、NTOSKRNEL.EXEのメイン処理内でエラーが発生した場合に出てくるようです。

ちなみに該当箇所のコード

 call    InbvAcquireDisplayOwnership
 call    InbvResetDisplay
 push    00000004h ... ネイビー指定
 push    000001DFh ... 右座標 479
 mov    esi,0000027Fh ... 底座標 639
 push    esi
 push    ebx
 push    ebx
 call    InbvSolidColorFill
 push    0000000Fh ... テキスト白
 call    InbvSetTextColor
 push    ebx
 call    InbvInstallDisplayStringFilter
 push    00000001h
 call    InbvEnableDisplayString

色コードについては こんな感じ
1...粟色 2...緑 3...オリーブ(橄欖) 4...ネイビー 5...紫 6...ティール(水鴨色) 7...灰色 8...銀色 9...赤 10...ライム(酸橙色) 11...黄色 12... 青 13...フクシア(紫紅色) 14...水色 15...白

bsod2bsod1
真っ白に燃え尽きたり、赤くしてみたり・・・。

bsod3
緑にしてみたり。

XPの場合は、FFFF6A0468DF010000 を検索して 04 の部分を変更すると背景色変更、 その後に出てくる最初の 6A0F の 0Fを変更すると 文字色が変更できます。(SP1~SP3共通)
2000の場合は、FFFFBFDF0100006A04 を検索して、同様に04、0Fの部分を変更します。

後、fcwinで チェックサムをあわせて Windows File Protectionを無効にするか、\WINDOWS\Driver Cache\i386 のフォルダ名を変更してしまえば、後は、SYSTEM32にコピーしなおすだけで 置き換えることができます。

bsod4
このダイアログが出てきてキャンセルすれば成功。
失敗した場合は、起動できなくなるので、オリジナルをバックアップしておきましょう。

自分で置き換えるのが怖い人は、BSOD Properties NTなんてのもあるようです。(こちらは、ドライバで関数をフックします)

関連サイト:
MessageBackColor および MessageTextColor の設定の色の値
HTML色名/颜色(色相)名称
キーボード操作でメモリ ダンプ ファイルを作成できる Windows の機能
Windows Server 2003 で、カーネル ダンプ ファイルまたは完全メモリ ダンプ ファイルを生成する方法
Kevins Crate.com/Blog ≫ Change The BSOD or Blue Screen Of Death To A Different Color
BSOD Properties NT公開 - やや温め納豆

おすすめ

2件のフィードバック

  1. こっぺ より:

    Windows XP以降でしか使えない”Google日本語入力”をWin2000 Proで使いたいんです。よろしくお願いします。http://tools.google.com/dlpage/japaneseinput/thankyou.html?hl=ja&platform=win_i386

  2. hi6se より:

    昔NECのPC9821Nr15でWindowsNT4.0を使っていた頃もよく『STOP0x00…』画面が出たのですが、PC9800用のNT4.0のSTOP画面はは黒背景に白い内蔵フォントでMS-DOSのコンソール画面と同じでした。(ブラックスクリーン?)
    Windows2000Beta3のSTOP画面はAT互換機と同じ青背景に白いグラフィックフォントだったので初めてSTOP画面を見たときおかしくて笑い転げてしまいました。
    なんだか無理して頑張ってる感が可愛らしかったです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です