Partilhar via


0x102 de Verificação de Bugs: DPC_WATCHDOG_TIMEOUT

O marcar de bugs DPC_WATCHDOG_TIMEOUT tem um valor de 0x00000102. Isso indica que a rotina de watchdog do DPC não foi executada dentro do intervalo de tempo alocado.

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 DPC_WATCHDOG_TIMEOUT

Parâmetro Descrição
1 Intervalo de tempo limite do cão de guarda DPC em tiques de relógio nominais.
2 O endereço PRCB do processador suspenso.
3 Reservado
4 Reservado

Causa

Esse bug marcar normalmente significa que um ISR é pendurado em um IRQL abaixo do nível do relógio e acima do nível de expedição, ou uma rotina DPC é pendurada no processador especificado.

Por exemplo, para drivers storport miniport, StorPort.sys lida com conclusões de E/S em uma rotina que é executada em DISPATCH_LEVEL e que chama serialmente as rotinas de conclusão de E/S de todos os IRPs que acabaram de ser concluídos. Se as rotinas de conclusão de E/S ingrem ou juntas levarem muito tempo, o teclado e/ou o mouse poderão parar de responder. Também é possível que a rotina do temporizador do Windows DPC Watchdog decida que a rotina do StorPort levou tempo excessivo para ser concluída.

Resolução

Um driver de kernel na pilha de armazenamento pode reduzir a probabilidade do problema pela codificação eficiente da rotina de conclusão de E/S do driver. Se ainda não for possível fazer todo o processamento necessário na rotina de conclusão em tempo suficiente, a rotina poderá criar um elemento de trabalho para o trabalho de E/S, enfileirar o elemento em uma fila de trabalho e retornar STATUS_MORE_PROCESSING_REQUIRED; um thread de trabalho do driver deve então encontrar o elemento de trabalho, fazer o trabalho e fazer IoCallerDriver para o IRP para garantir o processamento de E/S adicional do IRP.