Como depurar as mensagens de erro "Stop 0xC2" ou "Stop 0x000000C2"

Traduções deste artigo Traduções deste artigo
ID do artigo: 265879 - Exibir os produtos aos quais esse artigo se aplica.
Para obter uma versão deste artigo para o Microsoft Windows XP, consulte 314492.
Expandir tudo | Recolher tudo

Sumário

Este artigo descreve como depurar mensagens de erros de parada C2.

Mais Informações

O Windows 2000 contém muitos recursos internos que aperfeiçoam o processo de alocação de pool. Uma quantidade de novos códigos de parada foram adicionados para ajudá-lo a localizar drivers que não funcionam corretamente. Devido a estes recursos adicionais, você pode localizar a principal causa de um mau funcionamento de um driver por uma simples depuração.

O seguinte procedimento descreve como depurar um erro de parada 0xC2.

Primeiro, verifique a documentação da parada. Por exemplo:
BAD_POOL_CALLER                              (0xC2)

O processo atual está fazendo uma solicitação de pool inválida.  Normalmente isto está em um nível IRQL inválido ou liberando duplamente a mesma alocação, etc.

1 - Tipo de violação de pool em que o chamador é culpado.
6 - O endereço de pool que está sendo liberado já está livre.
7 - O endereço de pool que está sendo liberado já está livre.
8 - O parâmetro 2 é a IRQL em alocação, o parâmetro 3 é o tipo de pool.
9 - O parâmetro 2 é a IRQL em liberação, o parâmetro 3 é o tipo de pool.

Parâmetro 1 = 0x1, 0x2 ou 0x4:  O cabeçalho do pool foi corrompido
   Parâmetro 2 = Ponteiro para o cabeçalho do pool
   Parâmetro 3 = Primeira parte do conteúdo do cabeçalho do pool
   Parâmetro 4 = 0

Parâmetro 1 = 0x6:    Tentativa de liberar o pool que já estava livre
   Parâmetro 2 = Reservado (__LINE__)
   Parâmetro 3 = Ponteiro para o cabeçalho do pool
Parâmetro 4 = Conteúdo do cabeçalho do pool

Parâmetro 1 = 0x7:    Tentativa de liberar o pool que já estava livre
   Parâmetro 2 = Reservado (__LINE__)
   Parâmetro 3 = Ponteiro para o cabeçalho do pool
Parâmetro 4 = 0

Parâmetro 1 = 0x8:    Tentativa de alocar pool em um IRQL inválido
   Parâmetro 2 = IRQL atual
   Parâmetro 3 = Tipo de pool
   Parâmetro 4 = Tamanho da alocação

Parâmetro 1 = 0x9:    Tentativa de liberar pool em um IRQL inválido
   Parâmetro 2 = IRQL atual
   Parâmetro 3 = Tipo de pool
   Parâmetro 4 = Endereço de pool

Parâmetro 1 = 0x40:    Tentativa de liberar o endereço de usermode para pool de Kernel
   Parâmetro 2 = Endereço de inicialização
   Parâmetro 3 = Inicialização do espaço de endereço de sistema
   Parâmetro 4 = 0

Parâmetro 1 = 0x41:    Tentativa de liberar um pool não paginado e não alocado
endereço
   Parâmetro 2 = Endereço de inicialização
   Parâmetro 3 = Quadro de página física
   Parâmetro 4 = Quadro de página física mais alto

Parâmetro 1 = 0x50:    Tentativa de liberar um endereço de pool não paginado e não alocado
   Parâmetro 2 = Endereço de inicialização
   Parâmetro 3 = Iniciar o recuo nas páginas a partir do início do pool paginado
   Parâmetro 4 = Tamanho em bytes de pool paginado

Parâmetro 1 = 0x99:    Tentativa de liberar pool com endereço inválido (ou
com cabeçalho do pool corrompido)
   Parâmetro 2 = Endereço sendo liberado
   Parâmetro 3 = 0
   Parâmetro 4 = 0

				
Após você coletar informações detalhadas sobre o erro de parada 0xC2, use o depurador:
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
A documentação da parada indica que a memória está sendo liberada. Esta informação é indicada pela seguinte linha:
Parâmetro 1 = 0x7: Tentativa de liberar o pool que já estava livre.
Mas a pilha mostra que a placa de vídeo está em processo de gravação e por isso deve continuar investigando. Primeiro, é necessário determinar se este computador é um multiprocessador.
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
				
O texto anterior indica que memória está sendo liberada pelo driver nome_do_driver. Esta poderia ser a possível causa principal.

A seguir, defina o driver:

1: kd> !drivers
Resumo do driver de sistema carregado

Base       Tamanho do código       Tamanho dos dados  Nome do driver         Hora de criação
80400000 139f40 (1255 kb) 4f3c0 (316 kb) ntoskrnl.exe  Ter 07 dez 14:05:26 1999
80062000   ffe0 (  63 kb)  3d60 ( 15 kb)      hal.dll  Ter 02 nov 20:14:22 1999
ed410000   1760 (   5 kb)  1000 (  4 kb)  BOOTVID.dll  Qua 03 nov 20:24:33 1999
ed49c000   1b00 (   6 kb)   680 (  1 kb) gameenum.sys  Sab 25 set 14:35:57 1999
ed080000   a000 (  40 kb)  20c0 (  8 kb) VIDEOPRT.SYS  Sab 06 nov 16:55:20 1999
bfdcf000  1d480 ( 117 kb)  7520 ( 29 kb)   mga64m.sys  Seg 29 nov 20:47:46 1999
bfdbc000  11600 (  69 kb)  1600 (  5 kb) el90xnd5.sys  Sex 29 out 17:54:34 1999
ed090000   3a60 (  14 kb)  5980 ( 22 kb)  banshee.sys  Sex 29 out 19:00:56 1999
ed5df000    2e0 (   0 kb)   4a0 (  1 kb)  audstub.sys  Sab 25 set 14:35:33 1999
ed370000   33e0 (  12 kb)   a40 (  2 kb)   raspti.sys  Sex 08 out 16:45:10 1999
ed0c0000   c5e0 (  49 kb)  20e0 (  8 kb) parallel.sys  Sex 22 out 18:00:54 1999
ed5e0000    580 (   1 kb)   540 (  1 kb)   swenum.sys  Sab 25 set 14:36:31 1999
be552000  72a60 ( 458 kb) 13c40 ( 79 kb)   mga64d.dll  Ter 30 nov 04:33:19 1999
be113000  36f00 ( 219 kb)  7a20 ( 30 kb)  banshee.dll  Ter 30 nov 04:31:18 1999
be031000   FFFF (  FF kb)  FFFF (  F kb) BADDRIVER.sys Seg 30 fev 23:22:43 2000

TOTAL:   7f8dc0 (8163 kb) 172140 (1480 kb) (    0 kb     0 kb)
				
O texto anterior indica que o driver é usado por um pacote de software de terceiros. Este driver é geralmente a causa do erro. Para obter informações adicionais sobre esse problema, procure pelo respectivo artigo na Base de Dados de Conhecimento Microsoft. Verifique também as propriedades do arquivo com o Windows Explorer ou sobre o uso de um editor Hex no próprio arquivo. É possível também verificar o site do fornecedor de terceiros em busca de qualquer atualização ou problemas conhecidos.

Propriedades

ID do artigo: 265879 - Última revisão: terça-feira, 17 de maio de 2011 - Revisão: 6.0
A informação contida neste artigo aplica-se a:
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Professional Edition
Palavras-chave: 
kberrmsg kbhowto KB265879

Submeter comentários

 

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