"Stop 0xC2" または "Stop 0x000000C2" エラー メッセージのデバッグ方法

文書翻訳 文書翻訳
文書番号: 265879 - 対象製品
この記事は、以前は次の ID で公開されていました: JP265879
Microsoft Windows XP については、次の資料を参照してください。314492
すべて展開する | すべて折りたたむ

概要

この資料では、Stop C2 エラー メッセージのデバッグ方法について説明します。

詳細

Windows 2000 には、プールの割り当て処理を強化する、多くの組み込み機能があります。正しく機能していないドライバの特定を支援する stop コードが多数追加されています。これらの追加機能により、簡単なデバッグで、ドライバが正常に機能しない根本的な原因を発見できる場合があります。

ここでは、0xC2 stop をデバッグする方法について説明します。

まず、stop ドキュメントを確認します。以下に stop ドキュメントの例を示します。
BAD_POOL_CALLER                              (0xC2)

現在のスレッドが無効なプール要求を発行しています。通常、これは IRQL レベルが無効な場合、または同じ割り当てを二重に解放しようとする場合などに発生します。

1 - 呼び出し元が原因であるプール違反の種類。
6 - 解放しようとしているプール アドレスは既に解放されています。
7 - 解放しようとしているプール アドレスは既に解放されています。
8 - パラメータ 2 は割り当て時の IRQL、パラメータ 3 はプールの種類です。
9 - パラメータ 2 は解放時の IRQL、パラメータ 3 はプールの種類です。

パラメータ 1 = 0x1、0x2、または 0x4 :  プール ヘッダーが破損しています。
   パラメータ 2 = プール ヘッダーへのポインタ
   パラメータ 3 = プール ヘッダーの内容の最初の部分
   パラメータ 4 = 0

パラメータ 1 = 0x6 :    既に解放されているプールを解放しようとしました。
   パラメータ 2 = 予約済み (__LINE__)
   パラメータ 3 = プール ヘッダーへのポインタ
   パラメータ 4 = プール ヘッダーの内容

パラメータ 1 = 0x7 :    既に解放されているプールを解放しようとしました。
   パラメータ 2 = 予約済み (__LINE__)
   パラメータ 3 = プール ヘッダーへのポインタ
   パラメータ 4 = 0

パラメータ 1 = 0x8 :    無効な IRQL でプールを割り当てようとしました。
   パラメータ 2 = 現在の IRQL
   パラメータ 3 = プールの種類
   パラメータ 4 = 割り当てサイズ

パラメータ 1 = 0x9 :    無効な IRQL でプールを解放しようとしました。
   パラメータ 2 = 現在の IRQL
   パラメータ 3 = プールの種類
   パラメータ 4 = プールのアドレス

パラメータ 1 = 0x40 :    ユーザーモード アドレスをカーネル プールに解放しようとしました。
   パラメータ 2 = 開始アドレス
   パラメータ 3 = システム アドレス空間の開始アドレス
   パラメータ 4 = 0

パラメータ 1 = 0x41 : 未割り当ての非ページ プール アドレスを解放しようとしました。
   パラメータ 2 = 開始アドレス
   パラメータ 3 = 物理ページ フレーム
   パラメータ 4 = 物理ページ フレームの上限

パラメータ 1 = 0x50 :    未割り当てのページ プール アドレスを解放しようとしました。
   パラメータ 2 = 開始アドレス
   パラメータ 3 = ページ プールの先頭からの開始オフセット (ページ単位)
   パラメータ 4 = ページ プールのサイズ (バイト単位)

パラメータ 1 = 0x99 :    無効なアドレスを使用してプールを解放しようとしました (または、
プール ヘッダーが破損しています)。
   パラメータ 2 = 解放しようとしているアドレス
   パラメータ 3 = 0
   パラメータ 4 = 0

				
0xC2 stop に関する詳細情報を収集した後、デバッガを使用します。
E:\bin>i386kd -z  K:\DOWNLOAD\memory.dmp
Loading Dump File [K:\DOWNLOAD\memory.dmp]
Full Kernel Dump File
...
0: kd> !reload                GOOD HOUSEKEEPING DONE HERE

0: kd> dd kibugcheckdata  l8    DUMPING THE ERROR

8047fba0  000000c2 00000007 00000b68 815bade0
8047fbb0  815bade8 e1007000 00000000 818988c0

0: kd> kv                     DUMPING STACK         

ChildEBP RetAddr  Args to Child
bdce0348 be11dc84 e1fff000 a08d0008 000007f8 banshee!vH3ImageTransferMm32
bdce037c be116f18 be85fd78 00000001 bdce03dc banshee!vMmXferNative
bdce03ac be113eec e1fff000 e25e2a38 bdce03dc banshee!vPutBits
bdce03e8 a008e47f e1ff86f8 e25e2a38 e1fef908 banshee!DrvCopyBits
bdce0430 a008e899 be113d40 bdce04d8 e1ff86f8 win32k!OffCopyBits
bdce04e4 a008e4d1 e1ff86f8 e25e2a38 00000000 win32k!SpBitBlt
この stop ドキュメントから、メモリが解放されていることがわかります。この情報は、次の行で示されています。
パラメータ 1 = 0x7: 既に解放されているプールを解放しようとしました。
ただし、スタックはビデオ カードが書き込み処理中であることを示しているので、調査を続ける必要があります。まず、このコンピュータがマルチプロセッサであるかどうかを確認する必要があります。
0: kd> ~1                     SWITCH PROC

1: kd> kv                     DUMPING STACK  

ChildEBP RetAddr  Args to Child
bde81b7c 8046894d 815bade8 00000000 be03bb2b ntkrnlmp!ExFreePoolWithTag
bde81b88 be03bb2b 815bade8 be03ca94 815bade8 ntkrnlmp!ExFreePool
00000128 00000000 00000000 00000000 00000000 BADDRIVER
				
上記のテキストは、メモリが drivername ドライバで解放されていることを示しています。このことが、ドライバが正常に機能しない根本的原因である可能性があります。

次にドライバを絞り込みます。

1: kd> !drivers               
Loaded System Driver Summary

Base       Code Size       Data Size       Driver Name       Creation Time
80400000 139f40 (1255 kb) 4f3c0 (316 kb) ntoskrnl.exe  Tue Dec 07 14:05:26 1999
80062000   ffe0 (  63 kb)  3d60 ( 15 kb)      hal.dll  Tue Nov 02 20:14:22 1999
ed410000   1760 (   5 kb)  1000 (  4 kb)  BOOTVID.dll  Wed Nov 03 20:24:33 1999
ed49c000   1b00 (   6 kb)   680 (  1 kb) gameenum.sys  Sat Sep 25 14:35:57 1999
ed080000   a000 (  40 kb)  20c0 (  8 kb) VIDEOPRT.SYS  Sat Nov 06 16:55:20 1999
bfdcf000  1d480 ( 117 kb)  7520 ( 29 kb)   mga64m.sys  Mon Nov 29 20:47:46 1999
bfdbc000  11600 (  69 kb)  1600 (  5 kb) el90xnd5.sys  Fri Oct 29 17:54:34 1999
ed090000   3a60 (  14 kb)  5980 ( 22 kb)  banshee.sys  Fri Oct 29 19:00:56 1999
ed5df000    2e0 (   0 kb)   4a0 (  1 kb)  audstub.sys  Sat Sep 25 14:35:33 1999
ed370000   33e0 (  12 kb)   a40 (  2 kb)   raspti.sys  Fri Oct 08 16:45:10 1999
ed0c0000   c5e0 (  49 kb)  20e0 (  8 kb) parallel.sys  Fri Oct 22 18:00:54 1999
ed5e0000    580 (   1 kb)   540 (  1 kb)   swenum.sys  Sat Sep 25 14:36:31 1999
be552000  72a60 ( 458 kb) 13c40 ( 79 kb)   mga64d.dll  Tue Nov 30 04:33:19 1999
be113000  36f00 ( 219 kb)  7a20 ( 30 kb)  banshee.dll  Tue Nov 30 04:31:18 1999
be031000   FFFF (  FF kb)  FFFF (  F kb) BADDRIVER.sys Mon Feb 30 23:22:43 2000

TOTAL:   7f8dc0 (8163 kb) 172140 (1480 kb) (    0 kb     0 kb)
				
上記のテキストは、ドライバがサードパーティのソフトウェア パッケージで使用されていることを示しています。このドライバがエラーの原因であると考えられます。この問題をさらに調査する場合、「サポート技術情報」 (Microsoft Knowledge Base) で詳細情報を検索してください。また、エクスプローラを使用するか、またはファイルに対して 16 進エディタを使用してファイルのプロパティを調査してください。製造元の Web サイトで更新プログラムおよび既知の問題点について調べることもできます。

プロパティ

文書番号: 265879 - 最終更新日: 2011年5月18日 - リビジョン: 6.0
この資料は以下の製品について記述したものです。
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Professional
キーワード:?
kberrmsg kbhowto KB265879
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com