0x116 de vérification des bogues : VIDEO_TDR_FAILURE

La VIDEO_TDR_FAILURE vérification des bogues a une valeur de 0x00000116. Cette vérification des bogues indique qu’une tentative de réinitialisation du pilote d’affichage et de récupération à partir d’un délai d’attente a échoué.

Important

Cet article s’adresse aux programmeurs. Si vous êtes un client qui a reçu un code d’erreur d’écran bleu lors de l’utilisation de votre ordinateur, consultez Résoudre les erreurs d’écran bleu.

paramètres VIDEO_TDR_FAILURE

Paramètre Description
1 Pointeur vers le contexte de récupération TDR interne, si disponible.
2 Pointeur vers le module pilote de périphérique responsable (par exemple, la balise propriétaire).
3 Code d’erreur de la dernière opération ayant échoué, s’il est disponible.
4 Données dépendantes du contexte interne, si elles sont disponibles.

Cause

Un problème de stabilité courant dans les graphiques se produit lorsque le système apparaît complètement figé ou bloqué lors du traitement d’une commande ou d’une opération de l’utilisateur final. Généralement, 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 Marche/Arrêt. Windows tente de détecter ces situations problématiques de blocage et de récupérer dynamiquement un bureau réactif.

Ce processus de détection et de récupération est appelé Détection et récupération du délai d’expiration (TDR). Le délai d’attente 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 réinitialiser le GPU.

Pendant ce processus, le système d’exploitation indique au pilote de ne pas accéder au matériel ou à la mémoire, ce qui lui donne un peu de temps pour que les threads en cours d’exécution se terminent. Si les threads ne se terminent pas dans le délai d’expiration, le bogue système vérifie avec 0x116 VIDEO_TDR_FAILURE. Pour plus d’informations, consultez Synchronisation de threads et TDR.

Le système peut également vérifier les bogues avec VIDEO_TDR_FAILURE si plusieurs événements TDR se produisent dans un court laps de temps. Le montant par défaut est supérieur à cinq TDR en une minute.

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

Pour plus d’informations, consultez Détection et récupération du délai d’expiration (TDR),Clés de Registre TDR et modifications TDR dans Windows 8 et versions ultérieures.

Résolution

Le GPU prend plus de temps que ce qui est autorisé à afficher des 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 correctement en charge le processus TDR.
  • Problèmes matériels qui affectent la capacité de la carte vidéo à fonctionner correctement, notamment :
    • Composants over-clocked, tels que la carte mère
    • Compatibilité et paramètres incorrects des composants (en particulier la configuration de la mémoire et les minutages)
    • Refroidissement insuffisant du système
    • Puissance système insuffisante
    • Pièces défectueuses (modules de mémoire, cartes mères, etc.)
  • Les effets visuels ou un trop grand nombre de programmes exécutés en arrière-plan peuvent ralentir votre PC, de sorte que la carte vidéo ne peut pas répondre si nécessaire.

L’extension !analyze debug affiche des informations sur la vérification des bogues et peut être utile pour déterminer la cause racine.

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

VIDEO_TDR_FAILURE (116)
Attempt to reset the display driver and recover from timeout failed.
Arguments:
Arg1: ffffe000c2c404c0, Optional pointer to internal TDR recovery context (TDR_RECOVERY_CONTEXT).
Arg2: fffff8016470c14c, The pointer into responsible device driver module (e.g. owner tag).
Arg3: ffffffffc000009a, Optional error code (NTSTATUS) of the last failed operation.
Arg4: 0000000000000004, Optional internal context dependent data.

...

Le nom du module d’erreur s’affiche également.

MODULE_NAME: nvlddmkm

IMAGE_NAME:  nvlddmkm.sys

Vous pouvez utiliser la commande lm (Liste des modules chargés) pour afficher des informations sur le pilote d’erreur, y compris l’horodatage.

1: kd> lmvm nvlddmkm
Browse full module list
start             end                 module name
fffff801`63ec0000 fffff801`649a7000   nvlddmkm T (no symbols)           
    Loaded symbol image file: nvlddmkm.sys
    Image path: \SystemRoot\system32\DRIVERS\nvlddmkm.sys
    Image name: nvlddmkm.sys
    Browse all global symbols  functions  data
    Timestamp:        Wed Jul  8 15:43:44 2015 (559DA7A0)
    CheckSum:         00AA7491
    ImageSize:        00AE7000
    Translations:     0000.04b0 0000.04e4 0409.04b0 0409.04e4

Le paramètre 1 contient un pointeur vers le TDR_RECOVERY_CONTEXT. Comme indiqué dans la sortie !analyze, si vous avez des symboles pour le code associé, vous pouvez utiliser la dt commande pour afficher ces données.

1: kd> dt dxgkrnl!_TDR_RECOVERY_CONTEXT ffffe000c2c404c0
   +0x000 Signature        : 0x52445476
   +0x008 pState           : 0xffffe000`c2b12a40 ??
   +0x010 TimeoutReason    : 9 ( TdrEngineTimeoutPromotedToAdapterReset )
   +0x018 Tick             : _ULARGE_INTEGER 0xb2
   +0x020 pAdapter         : 0xffffe000`c2a89010 DXGADAPTER
   +0x028 pVidSchContext   : (null) 
   +0x030 GPUTimeoutData   : _TDR_RECOVERY_GPU_DATA
   +0x048 CrtcTimeoutData  : _TDR_RECOVERY_CONTEXT::<unnamed-type-CrtcTimeoutData>
   +0x050 pProcessName     : (null) 
   +0x058 DbgOwnerTag      : 0xfffff801`6470c14c
   +0x060 PrivateDbgInfo   : _TDR_DEBUG_REPORT_PRIVATE_INFO
   +0xb00 pDbgReport       : 0xffffe000`c2c3f750 _WD_DEBUG_REPORT
   +0xb08 pDbgBuffer       : 0xffffc000`bd000000 Void
   +0xb10 DbgBufferSize    : 0x37515
   +0xb18 pDumpBufferHelper : (null) 
   +0xb20 pDbgInfoExtension : 0xffffc000`ba7e47a0 _DXGKARG_COLLECTDBGINFO_EXT
   +0xb28 pDbgBufferUpdatePrivateInfo : 0xffffc000`bd000140 Void
   +0xb30 ReferenceCount   : 0n1
   +0xb38 pResetCompletedEvent : (null) 

Le paramètre 2 contient un pointeur vers le module pilote de périphérique responsable (par exemple, la balise propriétaire).

1: kd> ub fffff8016470c14c
nvlddmkm+0x84c132:
fffff801`6470c132 cc              int     3
fffff801`6470c133 cc              int     3
fffff801`6470c134 48ff254d2deaff  jmp     qword ptr [nvlddmkm+0x6eee88 (fffff801`645aee88)]
fffff801`6470c13b cc              int     3
fffff801`6470c13c 48ff252d2eeaff  jmp     qword ptr [nvlddmkm+0x6eef70 (fffff801`645aef70)]
fffff801`6470c143 cc              int     3
fffff801`6470c144 48ff257d2deaff  jmp     qword ptr [nvlddmkm+0x6eeec8 (fffff801`645aeec8)]
fffff801`6470c14b cc              int     3

Vous pouvez examiner la trace de pile à l’aide de la commande k, kb, kc, kd, kp, kP, kv (Display Stack Backtrace).

1: kd> k
 # Child-SP          RetAddr           Call Site
00 ffffd001`7d53d918 fffff801`61ba2b4c nt!KeBugCheckEx [d:\th\minkernel\ntos\ke\amd64\procstat.asm @ 122]
01 ffffd001`7d53d920 fffff801`61b8da0e dxgkrnl!TdrBugcheckOnTimeout+0xec [d:\th\windows\core\dxkernel\dxgkrnl\core\dxgtdr.cxx @ 2731]
02 ffffd001`7d53d960 fffff801`61b8dd7f dxgkrnl!ADAPTER_RENDER::Reset+0x15e [d:\th\windows\core\dxkernel\dxgkrnl\core\adapter.cxx @ 19443]
03 ffffd001`7d53d990 fffff801`61ba2385 dxgkrnl!DXGADAPTER::Reset+0x177 [d:\th\windows\core\dxkernel\dxgkrnl\core\adapter.cxx @ 19316]
04 ffffd001`7d53d9e0 fffff801`63c5fba7 dxgkrnl!TdrResetFromTimeout+0x15 [d:\th\windows\core\dxkernel\dxgkrnl\core\dxgtdr.cxx @ 2554]
05 ffffd001`7d53da10 fffff801`63c47e5d dxgmms1!VidSchiRecoverFromTDR+0x11b [d:\th\windows\core\dxkernel\dxgkrnl\dxgmms1\vidsch\vidscher.cxx @ 1055]
06 ffffd001`7d53dbc0 fffff801`aa55c698 dxgmms1!VidSchiWorkerThread+0x8d [d:\th\windows\core\dxkernel\dxgkrnl\dxgmms1\vidsch\vidschi.cxx @ 426]
07 ffffd001`7d53dc00 fffff801`aa5c9306 nt!PspSystemThreadStartup+0x58 [d:\th\minkernel\ntos\ps\psexec.c @ 6845]
08 ffffd001`7d53dc60 00000000`00000000 nt!KxStartSystemThread+0x16 [d:\th\minkernel\ntos\ke\amd64\threadbg.asm @ 80]

Vous pouvez également définir un point d’arrêt dans le code menant à ce code d’arrêt et tenter d’avancer de manière unique dans le code d’erreur, si vous pouvez reproduire le code d’arrêt de manière cohérente.

Pour plus d’informations, consultez Analyser les fichiers de vidage sur incident à l’aide de WinDbg.

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

  • Vérifiez le observateur d'événements de connexion système pour rechercher d’autres messages d’erreur susceptibles d’aider à identifier le périphérique ou le pilote à l’origine de cette vérification des bogues.

  • Si un pilote est identifié dans un message de vérification d’erreur, désactivez-le ou contactez le fabricant pour obtenir les mises à jour.

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

  • Vérifiez 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 dans Windows 10 Spécifications.

  • Exécutez l’outil Diagnostics de mémoire Windows pour tester la mémoire. Dans la zone de recherche du panneau de configuration, entrez Mémoire, puis sélectionnez Diagnostiquer les problèmes de mémoire de votre ordinateur. Une fois le test exécuté, utilisez l’Observateur 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.

  • Utiliser le mode sans échec

    Envisagez d’utiliser le mode sans échec pour isoler ce problème. L’utilisation du mode sans échec charge uniquement les pilotes et services système minimum requis au démarrage de Windows.

    1. Pour entrer en mode sans échec, accédez à Mise à jour et sécurité dans Paramètres.
    2. SélectionnezDémarrage avancéde récupération> pour démarrer en mode maintenance.
    3. Dans le menu résultant, choisissez Résoudre les problèmes des> paramètresde démarrage> desoptions> avancéesRedémarrer.
    4. Une fois Windows redémarré 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. Reportez-vous aux informations du fabricant pour obtenir des options de démarrage spécifiques.

Pour obtenir des informations générales sur la résolution des problèmes, consultez Données d’écran bleu.

Notes

Pour plus d’informations sur les exigences que les appareils matériels doivent respecter lorsqu’ils implémentent le TDR, consultez la documentation du Kit De laboratoire matériel Windows . Par exemple, TDR2 - Graphiques de test à deux appareils standard.

Voir aussi

Référence du Code de vérification de bogue