Comprobación de errores 0x117: VIDEO_TDR_TIMEOUT_DETECTED

El VIDEO_TDR_TIMEOUT_DETECTED volcado en vivo tiene un valor de 0x00000117. Esto indica que el controlador de pantalla no pudo responder de forma oportuna.

(Este código nunca se puede usar para una comprobación de errores real; se usa para identificar volcados en vivo).

Importante

Este artículo es para programadores. Si es un cliente que ha recibido un código de error de pantalla azul mientras usa el equipo, consulte Solución de errores de pantalla azul.

parámetros de VIDEO_TDR_TIMEOUT_DETECTED

Parámetro Descripción

1

Puntero al contexto de recuperación de TDR interno, si está disponible.

2

Puntero al módulo de controlador de dispositivo responsable (por ejemplo, la etiqueta de propietario).

3

Clave de depósito específica del controlador secundario.

4

Datos dependientes del contexto interno, si están disponibles.

Causa

Un problema de estabilidad común en los gráficos se produce cuando el sistema aparece completamente inmovilizado o bloqueado al procesar un comando o una operación del usuario final. Normalmente, la GPU está ocupada procesando operaciones gráficas intensivas, normalmente durante el juego. No se producen actualizaciones de pantalla y los usuarios asumen que su sistema está inmovilizado. Los usuarios suelen esperar unos segundos y, a continuación, reiniciar el sistema presionando el botón de encendido. Windows intenta detectar estas situaciones de bloqueo problemáticas y recuperar dinámicamente un escritorio con capacidad de respuesta.

Este proceso de detección y recuperación se conoce como detección y recuperación de tiempo de espera (TDR). El tiempo de espera predeterminado es de 2 segundos. En el proceso de TDR para tarjetas de vídeo, el programador de GPU del sistema operativo llama a la función DxgkDdiResetFromTimeout del controlador de miniporte de pantalla para reinicializar el controlador y restablecer la GPU.

Si el proceso de recuperación se realiza correctamente, se mostrará un mensaje que indica que el controlador de pantalla dejó de responder y se recuperó.

Para obtener más información, consulte Timeout Detection and Recovery (TDR), TDR Registry Keys and TDR changes in Windows 8 which are located in Timeout Detection and Recovery (TDR)

Resolución

La GPU tarda más tiempo de lo permitido para mostrar gráficos en el monitor. Este comportamiento puede producirse por uno o varios de los siguientes motivos:

  • Es posible que tenga que instalar las actualizaciones más recientes para el controlador de pantalla, de modo que admita correctamente el proceso de TDR.
  • Problemas de hardware que afectan a la capacidad de la tarjeta de vídeo para funcionar correctamente, entre los que se incluyen:
    • Componentes a lo largo del reloj, como la placa base
    • Compatibilidad y configuración incorrectas de los componentes (especialmente la configuración y los intervalos de memoria)
    • Refrigeración insuficiente del sistema
    • Alimentación insuficiente del sistema
    • Piezas defectuosas (módulos de memoria, placas base, etc.)
  • Efectos visuales, o demasiados programas que se ejecutan en segundo plano pueden ralentizar su PC para que la tarjeta de vídeo no pueda responder según sea necesario.

La extensión de depuración !analyze muestra información sobre la comprobación de errores y puede ser útil para determinar la causa principal.

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.

...

También se mostrará el nombre del módulo con errores.

MODULE_NAME: atikmpag

IMAGE_NAME:  atikmpag.sys

Puede usar el comando lmv para mostrar información sobre el controlador con errores, incluida la marca de tiempo.

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

El parámetro 1 contiene un puntero al 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

El parámetro 2 contiene un puntero al módulo de controlador de dispositivo responsable (por ejemplo, la etiqueta de propietario).

BUGCHECK_P2: ffffffff9a02381e

Es posible que desee examinar el seguimiento de la pila mediante el 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]

También puede establecer un punto de interrupción en el código que conduce a este código de detención e intentar avanzar un paso hacia delante en el código de error, si puede reproducir de forma coherente el código de detención.

Para obtener más información, consulte los siguientes temas:

Análisis de volcado de memoria mediante los depuradores de Windows (WinDbg)

Si no está equipado para usar el depurador de Windows para trabajar con este problema, puede usar algunas técnicas básicas de solución de problemas.

  • Compruebe el inicio de sesión del sistema Visor de eventos si hay mensajes de error adicionales que pueden ayudar a identificar el dispositivo o controlador que está causando esta comprobación de errores.

  • Si un controlador está identificado en el mensaje de comprobación de errores, deshabilita el controlador o ponte en contacto con el fabricante para obtener actualizaciones de controladores.

  • Compruebe que todos los softwares relacionados con gráficos, como DirectX y OpenGL, están actualizados, y todas las aplicaciones de uso intensivo de gráficos (como juegos) están totalmente revisadas.

  • Confirme que cualquier nuevo hardware instalado sea compatible con la versión instalada de Windows. Por ejemplo, puede obtener información sobre el hardware necesario en Windows 10 Especificaciones.

  • Uso del modo seguro

    Considere la posibilidad de usar el modo seguro para ayudar a aislar este problema. El uso del modo seguro solo carga los controladores y servicios del sistema mínimos necesarios durante el inicio de Windows. Para entrar en modo seguro, use Actualizar y seguridad en Configuración. Seleccione Inicio avanzado de recuperación> para arrancar en modo de mantenimiento. En el menú resultante, elija Opciones avanzadasde solución de problemas ->>Configuración de inicio ->Reiniciar. Después de que Windows se reinicie en la pantalla Configuración de inicio , seleccione la opción 4, 5 o 6 para arrancar en modo seguro.

    El modo seguro puede estar disponible presionando una tecla de función en el arranque, por ejemplo F8. Consulte la información del fabricante para obtener opciones de inicio específicas.

  • Ejecute la herramienta Diagnóstico de memoria de Windows para probar la memoria. En el cuadro de búsqueda del panel de control, escriba Memoria y, a continuación, seleccione Diagnosticar problemas de memoria del equipo. Una vez ejecutada la prueba, use visor de eventos para ver los resultados en el registro del sistema. Busque la entrada MemoryDiagnostics-Results para ver los resultados.

  • Puede intentar ejecutar los diagnósticos del hardware proporcionados por el fabricante del sistema.

  • Para obtener información adicional sobre la solución de problemas general, consulte Datos de pantalla azul.

Comentarios

Requisitos de certificación de hardware

Para obtener información sobre los requisitos que deben cumplir los dispositivos de hardware al implementar TDR, consulte la documentación de WHCK en Device.Graphics... TDRResiliency.