Partager via


Bug Check 0x117 : VIDEO_TDR_TIMEOUT_DETECTED

L’erreur VIDEO_TDR_TIMEOUT_DETECTED live dump a une valeur de 0x00000117. Cela indique que le pilote d’affichage n’a pas répondu en temps opportun.

(Ce code ne peut jamais être utilisé pour un vrai bug check ; il est utilisé pour identifier les live dumps.)

Important

Cet article s’adresse aux programmeurs. Si vous êtes un client et que vous avez reçu ce code d’erreur d’écran bleu en utilisant votre ordinateur, consultez Résoudre les erreurs d’écran bleu.

Paramètres VIDEO_TDR_TIMEOUT_DETECTED

Paramètre Description

1

Le pointeur vers le contexte de récupération TDR interne, si disponible.

2

Un pointeur dans le module du pilote de périphérique responsable (par exemple, l’étiquette du propriétaire).

3

La clé de regroupement spécifique au pilote secondaire.

4

Données contextuelles internes dépendantes, si disponibles.

Cause

Un problème de stabilité commun en graphisme se produit lorsque le système semble complètement gelé ou bloqué lors du traitement d’une commande ou d’une opération de l’utilisateur final. Habituellement, le GPU est occupé à traiter des opérations graphiques intensives, généralement pendant le jeu. Aucune mise à jour de l’écran ne se produit, et les utilisateurs supposent que leur système est gelé. Les utilisateurs attendent généralement quelques secondes, puis redémarrent le système en appuyant sur le bouton d’alimentation. Windows essaie de détecter ces situations de blocage problématiques et de récupérer dynamiquement un bureau réactif.

Ce processus de détection et de récupération est connu sous le nom de Timeout Detection and Recovery (TDR). Le délai d’expiration par défaut est de 2 secondes. Dans le processus TDR pour les cartes vidéo, le planificateur GPU du système d’exploitation appelle la fonction DxgkDdiResetFromTimeout du pilote miniport d’affichage pour réinitialiser le pilote et le GPU.

Si le processus de récupération réussit, un message sera affiché, indiquant que le « pilote d’affichage a cessé de répondre et a été récupéré ».

Pour plus d’informations, veuillez consulter la section Timeout Detection and Recovery (TDR), les clés de registre TDR et les modifications TDR dans Windows 8 qui se trouvent dans Timeout Detection and Recovery (TDR).

Résolution

Le GPU prend plus de temps que permis pour afficher les graphiques sur votre moniteur. Ce comportement peut être dû à différentes raisons :

  • Vous devrez peut-être installer les dernières mises à jour pour votre pilote d’affichage, afin qu’il prenne en charge correctement le processus TDR.
  • Les problèmes matériels qui impactent la capacité de la carte vidéo à fonctionner correctement, dont :
    • Des composants surcadencés, tels que la carte mère
    • Compatibilité et paramètres incorrects des composants (en particulier la configuration et les timings de la mémoire)
    • Refroidissement insuffisant du système
    • Puissance du système insuffisante
    • Pièces défectueuses (modules de mémoire, cartes mères, etc.)
  • Les effets visuels ou trop de programmes en cours d’exécution en arrière-plan peuvent ralentir votre PC au point que la carte vidéo ne puisse pas répondre comme nécessaire.

L'extension de débogage !analyze affiche des informations sur la vérification d'un bogue et peut être utile pour déterminer la cause racine.

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.

...

Le nom du module défaillant sera également affiché.

MODULE_NAME: atikmpag

IMAGE_NAME:  atikmpag.sys

Vous pouvez utiliser la commande lmv pour afficher des informations sur le pilote défaillant, y compris le timestamp.

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

Le paramètre 1 contient un pointeur vers le 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

Le paramètre 2 contient un pointeur dans le module du pilote de périphérique responsable (par exemple, l’étiquette du propriétaire).

BUGCHECK_P2: ffffffff9a02381e

Vous pouvez examiner la trace d’appels en utilisant la commande k, kb, kc, kd, kp, kP, kv (affichage de la trace d’appels).

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]

Vous pouvez également définir un point d’arrêt dans le code précédant ce code d’arrêt et essayer d’avancer pas à pas dans le code défaillant, si vous pouvez reproduire systématiquement le code d’arrêt.

Pour plus d'informations, consultez les rubriques suivantes :

Analyse des dumps de crash à l’aide des débogueurs Windows (WinDbg)

Si vous n’êtes pas équipé pour utiliser le débogueur Windows pour travailler sur ce problème, vous pouvez utiliser quelques techniques de dépannage de base.

  • Vérifiez le journal système dans le Visualisateur d’événements pour des messages d’erreur supplémentaires qui pourraient aider à identifier le périphérique ou le pilote qui cause ce bug check.

  • Si un pilote est identifié dans le message de bug check, désactivez le pilote ou vérifiez auprès du fabricant les mises à jour du pilote.

  • Vérifiez que tous les logiciels liés aux graphismes tels que DirectX et OpenGL sont à jour, et que toutes les applications intensives en graphismes (comme les jeux) sont entièrement corrigées.

  • Confirmez que tout nouveau matériel installé est compatible avec la version installée de Windows. Par exemple, vous pouvez obtenir des informations sur le matériel requis sur les Spécifications de Windows 10.

  • Utilisation du mode sans échec

    Envisagez d’utiliser le mode sans échec pour aider à isoler ce problème. L’utilisation du mode sans échec charge uniquement les pilotes et services système minimum requis pendant le démarrage de Windows. Pour entrer en mode sans échec, utilisez Mise à jour et sécurité dans Paramètres. Sélectionnez Récupération->Démarrage avancé pour démarrer en mode maintenance. Dans le menu résultant, choisissez Dépannage->Options avancées->Paramètres de démarrage->Redémarrer. Après le redémarrage de Windows sur l’écran Paramètres de démarrage, sélectionnez l’option 4, 5 ou 6 pour démarrer en mode sans échec.

    Le mode sans échec peut être disponible en appuyant sur une touche de fonction au démarrage, par exemple F8. Consultez les informations du fabricant pour des options de démarrage spécifiques.

  • Exécutez l’outil de diagnostic de la mémoire Windows, pour tester la mémoire. Dans la zone de recherche du panneau de configuration, tapez Mémoire, puis sélectionnez Diagnostiquer les problèmes de mémoire de votre ordinateur. Après l’exécution du test, utilisez le Visualisateur d’événements pour afficher les résultats dans le journal Système. Recherchez l’entrée MemoryDiagnostics-Results pour afficher les résultats.

  • Vous pouvez essayer d’exécuter les diagnostics matériels fournis par le fabricant du système.

  • Pour davantage d’informations concernant le dépannage, veuillez consulter la section Analyser les données d’écran bleu de vérification des bogues.

Notes

Conditions de certification matérielle

Pour obtenir des informations sur les exigences que les périphériques matériels doivent respecter lorsqu’ils implémentent le TDR, consultez la documentation WHCK sur Device.Graphics…TDRResiliency.