![問題](https://rvso.com/image/1316768/%E5%95%8F%E9%A1%8C.png)
問題
クライアント ノートブックに、コード 0000002c のブルー スクリーンが表示されます。これは、Windows XP の起動が完了し、ようこそインターフェイスを読み込もうとしたときに発生します。
これまでやってきたこと
- これはハードウェアの問題ではありません。HD (Victoria Scan、製造元 (Samsung) HD 診断ツール)、RAM (Memtest86+ 24 時間)、CPU (ストレステスト) をすでにテストしましたが、エラーはありませんでした。
- セーフモード: BSOD 2c
- Windows 修復: BSOD 2c (ドライバーのインストール中)
- まったく別のノートブック (別のチップセット) で HD を使用しましたが、仮想環境でも BSOD 2c が発生しました。
- すべての logonui.exe と ntkrpamp.exe を元のものに置き換えました。
診断
- Windows PE (Hirens Boot CD 15.1) を使用してノートブックを起動し、起動時に読み込まれるプログラムとドライバー (Sysinternals の autorun.exe) を確認したい場合、PE 環境で同じ BSOD 2c が表示されます。
リクエストがあれば、最新のミニダンプの *.dmp ファイルをアップロードできます。
ミニダンプ
z:\TOOLS\windbg_6.12.0002.633_x86\debugger_x86>kd -y srv*c:\symbols*http://msdl. microsoft.com/download/symbols -ic:\windows\i386 -zz:\TMP\User\Mini052512-07 です。 dmp Microsoft (R) Windows デバッガー バージョン 6.12.0002.633 X86 Copyright (c) Microsoft Corporation. 無断複写・転載を禁じます。 ダンプ ファイル [z:\TMP\User\Mini052512-07.dmp] を読み込んでいます ミニカーネルダンプファイル: レジスタとスタックトレースのみが利用可能です シンボル検索パスは次のとおりです: srv*c:\symbols*http://msdl.microsoft.com/download/symbols 実行ファイルの検索パスは c:\windows\i386 です Windows XP カーネル バージョン 2600 (Service Pack 3) MP (4 プロセッサ) フリー x86 互換 製品: WinNt、スイート: TerminalServer SingleUserTS Personal 作成者: 2600.xpsp.080413-2111 マシン名: カーネル ベース = 0x804d7000 PsLoadedModuleList = 0x8055d720 デバッグ セッション時間: 2012 年 5 月 25 日金曜日 18:48:44.218 (UTC + 2:00) システム稼働時間: 0 日 0:19:39.765 カーネルシンボルの読み込み ............................................................... .............................................. ユーザーシンボルの読み込み ロードされていないモジュールリストをロードしています ............... ****************************************************************************************** * * * バグチェック分析 * * * ****************************************************************************************** 詳細なデバッグ情報を取得するには、!analyze -v を使用します。 バグチェック C2、{43、c68a4000、0、0} おそらく原因: ntkrpamp.exe ( nt!CmpFree+17 ) フォローアップ: MachineOwner --------- 0: kd> !分析 -v ****************************************************************************************** * * * バグチェック分析 * * * ****************************************************************************************** 不正なプール呼び出し元 (c2) 現在のスレッドは不正なプール要求を行っています。通常、これは不正な IRQ で発生します。 L レベルまたは同じ割り当ての二重解放など。 引数: Arg1: 00000043、どのプールにもなかった仮想アドレスを解放しようとしました Arg2: c68a4000、アドレスが解放されています。 引数3: 00000000, 0 引数4: 00000000, 0 デバッグの詳細: ------------------ 障害のあるIP: nt!CmpFree+17 8063ビーフ 5d ポップ ebp バグチェック_STR: 0xc2_43 顧客クラッシュ数: 7 デフォルト_バケット_ID: COMMON_SYSTEM_FAULT プロセス名: setup.exe LAST_CONTROL_TRANSFER: 80548c2d から 804f9f33 へ スタックテキスト: ba2979e4 80548c2d 000000c2 00000043 c68a4000 nt!KeBugCheckEx+0x1b ba297a24 8054b49a c68a4000 e1cc3640 e1c97000 nt!MiFreePoolPages+0x8b ba297a64 8063beef c68a4000 00000000 ba297ad0 nt!ExFreePoolWithTag+0x1ba ba297a74 8063eaf6 c68a4000 00001000 00000000 nt!CmpFree+0x17 ba297ad0 8063eedb 9d308b60 00000000 00000000 nt!HvpRecoverData+0x3ec ba297b1c 80630854 9d308b60 00000000 00000001 nt!HvMapHive+0x133 ba297b34 8063837f 9d308c01 00000005 00000000 nt!HvInitializeHive+0x416 ba297ba0 80625bcf ba297bdc 00000005 00000000 nt!CmpInitializeHive+0x26d ba297bf8 8062ad61 ba297d04 00000000 ba297c64 nt!CmpInitHiveFromFile+0xa3 ba297c20 80631efa ba297ccc ba297c6c ba297c5c nt!CmpCmdHiveOpen+0x21 ba297cac 8062578a ba297ce4 ba297ccc 00000000 nt!CmLoadKey+0x90 ba297d40 80625994 0641a62c 0641a614 00000000 nt!NtLoadKey2+0x1fc ba297d54 8054161c 0641a62c 0641a614 0641a658 nt!NtLoadKey+0x12 ba297d54 7c91e4f4 0641a62c 0641a614 0641a658 nt!KiFastCallEntry+0xfc 警告: フレーム IP が既知のモジュールにありません。次のフレームは間違っている可能性があります。 0641a658 00000000 00000000 00000000 00000000 0x7c91e4f4 スタックコマンド: kb フォローアップIP: nt!CmpFree+17 8063ビーフ 5d ポップ ebp シンボルスタックインデックス: 3 SYMBOL_NAME: nt!CmpFree+17 フォローアップ名: マシン所有者 モジュール名: nt イメージ名: ntkrpamp.exe DEBUG_FLR_IMAGE_TIMESTAMP: 4802516a FAILURE_BUCKET_ID: 0xc2_43_nt!CmpFree+17 バケットID: 0xc2_43_nt!CmpFree+17 フォローアップ: MachineOwner --------- 0: えー
では、BSOD の原因は何でしょうか?
答え1
呼び出しはHvpRecoverData
レジストリの破損を示唆しています。回復プロセス中の障害はハイブの破損を示しています。ログファイル (Windows Research Kernel ソースによる)。この問題が発生したときは、すべてのC:\Documents and Settings\<USERNAME>\NTUSER.DAT.LOG
ファイルを削除すると解決しました。私のケースでは、プロセス中にユーザー データや設定は失われませんでした。