Compartilhar via


Verificação de bugs 0x117: VIDEO_TDR_TIMEOUT_DETECTED

O despejo ao vivo de VIDEO_TDR_TIMEOUT_DETECTED tem um valor de 0x00000117. Indica que o driver de vídeo não respondeu em tempo hábil.

(Este código nunca pode ser usado para uma verificação de bugs real; ele é usado para identificar despejos ao vivo.)

Importante

Este artigo é para programadores. Se você for um cliente que recebeu um código de erro de tela azul enquanto estava usando o computador, confira Solucionar problemas de erros de tela azul.

Parâmetros de VIDEO_TDR_TIMEOUT_DETECTED

Parâmetro Descrição

1

O ponteiro para o contexto de recuperação de TDR interno, se disponível.

2

Um ponteiro para o módulo de driver de dispositivo responsável (por exemplo, a marca de proprietário).

3

A chave de bucket específica do driver secundário.

4

Dados internos dependentes de contexto, se disponíveis.

Causa

Um problema comum de estabilidade em gráficos ocorre quando o sistema aparece completamente congelado ou travado ao processar um comando ou operação do usuário final. Em geral, a GPU permanece ocupada processando operações repletas de gráficos, normalmente durante o jogo. Não ocorrem atualizações de tela, e os usuários presumem que seu sistema esteja congelado. Os usuários geralmente aguardam alguns segundos e reinicializam o sistema pressionando o botão liga/desliga. O Windows tenta detectar essas situações problemáticas de travamento e recuperar dinamicamente uma área de trabalho responsiva.

Esse processo de detecção e recuperação é conhecido como TDR (Detecção e recuperação de tempo limite). O tempo limite padrão é de 2 segundos. No processo de TDR em placas de vídeo, o agendador de GPU do sistema operacional chama a função DxgkDdiResetFromTimeout do driver da miniporta de exibição para reinicializar o driver e redefinir a GPU.

Se o processo de recuperação for bem-sucedido, aparecerá uma mensagem indicando que o "driver de vídeo parou de responder e foi recuperado".

Para obter mais informações, consulte Detecção e recuperação de tempo limite (TDR), Chaves de Registro TDR e Alterações de TDR no Windows 8, que estão em Detecção e recuperação de tempo limite (TDR)

Resolução

A GPU está demorando mais do que o permitido para exibir gráficos em seu monitor. Esse comportamento pode ocorrer por uma ou mais das seguintes razões:

  • Talvez seja necessário instalar as atualizações mais recentes para o driver de vídeo de forma que ele passe adequadamente pelo processo de TDR.
  • Problemas de hardware que afetam a capacidade da placa de vídeo de operar corretamente, incluindo:
    • Componentes com overclock, como a placa-mãe
    • Compatibilidade e configurações incorretas de componentes (principalmente configuração e tempos de memória)
    • Resfriamento insuficiente do sistema
    • Energia insuficiente do sistema
    • Peças avariadas (módulos de memória, placas-mãe etc.)
  • Efeitos visuais ou muitos programas em execução em segundo plano podem deixar seu PC lento, fazendo com que a placa de vídeo não responda conforme necessário.

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

3: kd> !analyze -v
*******************************************************************************
*                                                                             *
*                        Bugcheck Analysis                                    *
*                                                                             *
*******************************************************************************

VIDEO_TDR_TIMEOUT_DETECTED (117)
The display driver failed to respond in timely fashion.
(This code can never be used for a real bug check; it is used to identify live dumps.)
Arguments:
Arg1: 8975d500, Optional pointer to internal TDR recovery context (TDR_RECOVERY_CONTEXT).
Arg2: 9a02381e, The pointer into responsible device driver module (e.g owner tag).
Arg3: 00000000, The secondary driver specific bucketing key.
Arg4: 00000000, Optional internal context dependent data.

...

O nome do módulo com falha também será exibido

MODULE_NAME: atikmpag

IMAGE_NAME:  atikmpag.sys

Você pode usar o comando lmv para exibir informações sobre o driver com falha, incluindo o carimbo de data/hora.

3: kd> lmvm atikmpag
Browse full module list
start    end        module name
9a01a000 9a09a000   atikmpag T (no symbols)           
    Loaded symbol image file: atikmpag.sys
    Image path: atikmpag.sys
    Image name: atikmpag.sys
    Browse all global symbols  functions  data
    Timestamp:        Fri Dec  6 12:20:32 2013 (52A23190)
    CheckSum:         0007E58A
    ImageSize:        00080000
    Translations:     0000.04b0 0000.04e4 0409.04b0 0409.04e4

O parâmetro 1 contém um ponteiro para o TDR_RECOVERY_CONTEXT.

3: kd> dt dxgkrnl!_TDR_RECOVERY_CONTEXT fffffa8010041010
   +0x000 Signature        : ??
   +0x004 pState           : ???? 
   +0x008 TimeoutReason    : ??
   +0x010 Tick             : _ULARGE_INTEGER
   +0x018 pAdapter         : ???? 
   +0x01c pVidSchContext   : ???? 
   +0x020 GPUTimeoutData   : _TDR_RECOVERY_GPU_DATA
   +0x038 CrtcTimeoutData  : _TDR_RECOVERY_CONTEXT::<unnamed-type-CrtcTimeoutData>
   +0x040 DbgOwnerTag      : ??
   +0x048 PrivateDbgInfo   : _TDR_DEBUG_REPORT_PRIVATE_INFO
   +0xae0 pDbgReport       : ???? 
   +0xae4 pDbgBuffer       : ???? 
   +0xae8 DbgBufferSize    : ??
   +0xaec pDumpBufferHelper : ???? 
   +0xaf0 pDbgInfoExtension : ???? 
   +0xaf4 pDbgBufferUpdatePrivateInfo : ???? 
   +0xaf8 ReferenceCount   : ??
Memory read error 10041b08

O parâmetro 2 contém um ponteiro para o módulo de driver de dispositivo responsável (por exemplo, a marca de proprietário).

BUGCHECK_P2: ffffffff9a02381e

Você pode querer examinar o rastreamento de pilha usando o comando k, kb, kc, kd, kp, kP, kv (Display Stack Backtrace).

3: kd> k
 # ChildEBP RetAddr  
00 81d9ace0 976e605e dxgkrnl!TdrUpdateDbgReport+0x93 [d:\blue_gdr\windows\core\dxkernel\dxgkrnl\core\dxgtdr.cxx @ 944]
01 81d9acfc 976ddead dxgkrnl!TdrCollectDbgInfoStage2+0x195 [d:\blue_gdr\windows\core\dxkernel\dxgkrnl\core\dxgtdr.cxx @ 1759]
02 81d9ad24 976e664f dxgkrnl!DXGADAPTER::Reset+0x23f [d:\blue_gdr\windows\core\dxkernel\dxgkrnl\core\adapter.cxx @ 14972]
03 81d9ad3c 977be9e0 dxgkrnl!TdrResetFromTimeout+0x16 [d:\blue_gdr\windows\core\dxkernel\dxgkrnl\core\dxgtdr.cxx @ 2465]
04 81d9ad50 977b7518 dxgmms1!VidSchiRecoverFromTDR+0x13 [d:\blue_gdr\windows\core\dxkernel\dxgkrnl\dxgmms1\vidsch\vidscher.cxx @ 1018]
05 (Inline) -------- dxgmms1!VidSchiRun_PriorityTable+0xfa71
06 81d9ad70 812c01d4 dxgmms1!VidSchiWorkerThread+0xfaf2 [d:\blue_gdr\windows\core\dxkernel\dxgkrnl\dxgmms1\vidsch\vidschi.cxx @ 424]
07 81d9adb0 81325fb1 nt!PspSystemThreadStartup+0x58 [d:\blue_gdr\minkernel\ntos\ps\psexec.c @ 5884]
08 81d9adbc 00000000 nt!KiThreadStartup+0x15 [d:\blue_gdr\minkernel\ntos\ke\i386\threadbg.asm @ 81]

Você também pode definir um ponto de quebra no código que leva a esse código de parada e tentar avançar uma única etapa no código de falha, se conseguir reproduzir consistentemente o código de parada.

Para obter mais informações, consulte estes tópicos:

Análise de despejo de memória usando os depuradores do Windows (WinDbg)

Se você não estiver equipado para usar o depurador do Windows para resolver esse problema, use algumas técnicas básicas de solução de problemas.

  • Verifique se há mensagens de erro adicionais no log do sistema no Visualizador de Eventos que possam ajudar a identificar o dispositivo ou o driver que está causando a verificação de bugs.

  • Se um driver for identificado na mensagem de verificação de bugs, desabilite o driver ou verifique com o fabricante se há atualizações de driver.

  • Verifique se todos os softwares relacionados a gráficos, como DirectX e OpenGL, estão atualizados e se todos os aplicativos que usam muitos gráficos (como jogos) estão totalmente corrigidos.

  • Confirme se o novo hardware instalado é compatível com a versão instalada do Windows. Por exemplo, você pode obter informações sobre o hardware necessário em Especificações do Windows 10.

  • Como usar o modo de segurança

    Use o Modo de segurança para ajudar a isolar esse problema. O uso do Modo de segurança carrega apenas os drivers e serviços do sistema mínimos necessários durante a inicialização do Windows. Para entrar no Modo de segurança, use Atualização e segurança, em Configurações. Selecione Recuperação->Inicialização avançada para inicializar no modo de manutenção. No menu resultante, escolha Solução de problemas->Opções avançadas - >Configurações de inicialização - >Reiniciar. Depois que o Windows reiniciar na tela Configurações de inicialização, selecione a opção 4, 5 ou 6 para inicializar no Modo de segurança.

    O Modo de segurança costuma estar disponível ao pressionar uma tecla de função durante a inicialização, por exemplo, F8. Consulte as informações do fabricante para obter opções específicas de inicialização.

  • Execute a ferramenta de Diagnóstico de memória do Windows para testar a memória. Na caixa de pesquisa do painel de controle, digite Memory e selecione Diagnosticar problemas de memória do computador. Depois que o teste for executado, use o Visualizador de eventos para exibir os resultados no log do sistema. Procure a entrada MemoryDiagnostics-Results para exibir os resultados.

  • Você pode tentar executar o diagnóstico de hardware fornecido pelo fabricante do sistema.

  • Para obter mais informações gerais sobre solução de problemas, consulte Analisar dados de tela azul de verificação de bugs.

Comentários

Requisitos de certificação de hardware

Para obter informações sobre os requisitos que os dispositivos de hardware devem atender ao implementar o TDR, consulte a documentação do WHCK em Device.Graphics... TDRResiliency.