Comprobación de error 0x117: VIDEO_TDR_TIMEOUT_DETECTED
El volcado en vivo VIDEO_TDR_TIMEOUT_DETECTED 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 va dirigido a 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 |
El puntero al contexto de recuperación de TDR interno, si está disponible. |
2 |
Un puntero al módulo de controlador de dispositivo responsable (por ejemplo, la etiqueta de propietario) |
3 |
La clave de depósito específica del controlador secundario. |
4 |
Los datos dependientes del contexto interno, si están disponibles. |
Causa
Un problema común de estabilidad en los gráficos ocurre cuando el sistema parece estar completamente congelado o bloqueado mientras procesa un comando u 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é congelado. Los usuarios suelen esperar unos segundos y luego reinician el sistema presionando el botón de encendido. Windows intenta detectar estas situaciones problemáticas de bloqueo y recuperar de forma dinámica 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 TDR para tarjetas de vídeo, el programador de GPU del sistema operativo llama a la función DxgkDdiResetFromTimeout del controlador de minipuerto de pantalla para reinicializar el controlador y restablecer la GPU.
Si el proceso de recuperación se realiza correctamente, se mostrará un mensaje indicando que "el controlador de pantalla dejó de responder y se recuperó".
Para obtener más información, consulte Claves de registro de TDR y TDR en Windows 8 y versiones posteriores que se encuentran en Detección y recuperación de tiempo de espera (TDR).
Solución
La GPU está tardando más tiempo del permitido en mostrar gráficos en el monitor. Este comportamiento puede producirse por uno o varios de los siguientes motivos:
- Es posible que necesite instalar las últimas actualizaciones para el controlador de pantalla, para que admita adecuadamente el proceso TDR.
- Problemas de hardware que afectan a la capacidad de la tarjeta de vídeo para funcionar correctamente, entre los que se incluyen:
- Componentes con la frecuencia aumentada, como la placa base
- Compatibilidad y configuración de componentes incorrectas (especialmente configuración de memoria y tiempos)
- Refrigeración insuficiente del sistema
- Energía insuficiente del sistema
- Piezas defectuosas (módulos de memoria, placas base, etc.)
- Los efectos visuales o demasiados programas ejecutándose en segundo plano pueden ralentizar su equipo y hacer que la tarjeta de vídeo no pueda responder como es necesario.
La extensión de depuración !analyze indica información sobre la comprobación de errores y puede resultar ú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 hasta 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 registro del sistema en el Visor de eventos para ver si hay mensajes de error adicionales que puedan ayudar a identificar el dispositivo o controlador que está causando este error.
Si se identifica un controlador en el mensaje de verificación de errores, deshabilítelo o consulte al fabricante para obtener actualizaciones del controlador.
Compruebe que estén actualizados todos los software relacionados con gráficos, como DirectX y OpenGL, y que todas las aplicaciones de uso intensivo de gráficos (como juegos) estén totalmente revisadas.
Confirme que todo el hardware nuevo que se instale sea compatible con la versión instalada de Windows. Por ejemplo, puede obtener información sobre el hardware necesario en Cómo buscar las especificaciones del equipo y los requisitos del sistema para Windows 10.
Uso del modo seguro
Considere la posibilidad de usar el modo seguro para ayudar a aislar este problema. El uso del modo seguro carga solo 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 Recuperación>>Inicio avanzado para arrancar en modo de mantenimiento. En el menú resultante, elija Solución de problemas>>Opciones avanzadas>>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 de 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 los problemas de memoria del equipo. Una vez ejecutada la prueba, use el Visor de eventos para ver los resultados en el registro del sistema. Busque la entrada Resultados de MemoryDiagnostics 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 generales, consulte Análisis de los datos de la comprobación de errores de la 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.