Partilhar via


0x20 de Verificação de Bugs: KERNEL_APC_PENDING_DURING_EXIT

O bug KERNEL_APC_PENDING_DURING_EXIT marcar tem um valor de 0x00000020. Isso indica que uma APC (chamada de procedimento assíncrono) ainda estava pendente quando um thread foi encerrado.

Importante

Este artigo é para programadores. Se você for um cliente que recebeu um código de erro de tela azul ao usar o computador, consulte Solucionar erros de tela azul.

Parâmetros de KERNEL_APC_PENDING_DURING_EXIT

Parâmetro Descrição

1

O endereço do APC encontrado pendente durante a saída

2

Contagem de desabilitação de APC do thread

3

O IRQL atual

4

Reservado

Causa

O item de dados de chave é a contagem de desabilitação de APC (Parâmetro 2) para o thread. Se a contagem for diferente de zero, ela indicará a origem do problema.

A contagem de desabilitação do APC é decrementada sempre que um driver chama KeEnterCriticalRegion, FsRtlEnterFileSystem ou adquire um mutex.

A contagem de desabilitação do APC é incrementada sempre que um driver chama KeLeaveCriticalRegion, KeReleaseMutex ou FsRtlExitFileSystem.

Como essas chamadas devem estar sempre em pares, a contagem de desabilitação de APC deve ser zero quando um thread é encerrado. Um valor negativo indica que um driver desabilitou chamadas APC sem habilitá-las novamente. Um valor positivo indica que o inverso é verdadeiro.

Se você vir esse erro, desconfie de todos os drivers instalados no computador , especialmente drivers incomuns ou não padrão.

Esse IRQL atual (Parâmetro 3) deve ser zero. Se não estiver, a rotina de cancelamento do driver pode ter causado esse bug marcar retornando em um IRQL elevado. Nesse caso, observe cuidadosamente o que estava em execução (e o que estava fechando) no momento do acidente, e observe todos os drivers instalados no momento do acidente. A causa nesse caso geralmente é um bug grave em um driver.

Resolução

A extensão de depuração !analyze exibe informações sobre o bug marcar e pode ser útil para determinar a causa raiz.