Condividi tramite


Controllo bug 0x117: VIDEO_TDR_TIMEOUT_DETECTED

Il dump live VIDEO_TDR_TIMEOUT_DETECTED ha un valore di 0x00000117. Ciò indica che il driver di visualizzazione non è riuscito a rispondere in modo tempestivo.

Questo codice non può mai essere usato per un controllo di bug reale. Viene usato per identificare i dump in tempo reale.

Importante

Questo articolo è destinato ai programmatori. Se si è un cliente che ha ricevuto un codice di errore della schermata blu durante l'uso del computer, vedere Risolvere gli errori della schermata blu.

parametri VIDEO_TDR_TIMEOUT_DETECTED

Parametro Descrizione

1

Puntatore al contesto di ripristino TDR interno, se disponibile.

2

Puntatore al modulo del driver di dispositivo responsabile , ad esempio il tag proprietario.

3

Chiave di bucket specifica del driver secondario.

4

Dati dipendenti dal contesto interno, se disponibili.

Causa

Un problema comune di stabilità nella grafica si verifica quando il sistema appare completamente bloccato o bloccato durante l'elaborazione di un comando o di un'operazione dell'utente finale. In genere la GPU è occupata nell'elaborazione di operazioni grafiche a elevato utilizzo, in genere durante il gioco. Non si verificano aggiornamenti dello schermo e gli utenti presuppongono che il sistema sia bloccato. Gli utenti in genere attendono alcuni secondi e quindi riavviano il sistema premendo il pulsante di alimentazione. Windows tenta di rilevare queste situazioni di blocco problematiche e ripristinare dinamicamente un desktop reattivo.

Questo processo di rilevamento e ripristino è noto come rilevamento e ripristino del timeout.this process of detection and recovery (TDR). Il timeout predefinito è 2 secondi. Nel processo TDR per le schede video, l'utilità di pianificazione GPU del sistema operativo chiama la funzione DxgkDdiResetFromTimeout del driver miniport di visualizzazione per reinizializzare il driver e reimpostare la GPU.

Se il processo di ripristino ha esito positivo, verrà visualizzato un messaggio che indica che il driver di visualizzazione ha smesso di rispondere ed è stato ripristinato.

Per altre informazioni, vedere Timeout Detection and Recovery (TDR), TDR Registry Keys and TDR changes in Windows 8 are located in Timeout Detection and Recovery (TDR)

Risoluzione

La GPU richiede più tempo rispetto a quanto consentito per visualizzare la grafica nel monitor. Questo comportamento può verificarsi per uno o più dei motivi seguenti:

  • Potrebbe essere necessario installare gli aggiornamenti più recenti per il driver di visualizzazione, in modo che supporti correttamente il processo TDR.
  • Problemi hardware che influisce sulla capacità della scheda video di funzionare correttamente, tra cui:
    • Componenti con clock eccessivo, ad esempio la scheda madre
    • Compatibilità e impostazioni non corrette dei componenti (in particolare la configurazione e gli intervalli di memoria)
    • Raffreddamento del sistema insufficiente
    • Alimentazione del sistema insufficiente
    • Parti difettose (moduli di memoria, schede madre e così via)
  • Gli effetti visivi o troppi programmi in esecuzione in background potrebbero rallentare il PC in modo che la scheda video non possa rispondere in base alle esigenze.

L'estensione di debug !analyze visualizza informazioni sul controllo dei bug e può essere utile per determinare la causa radice.

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.

...

Verrà visualizzato anche il nome del modulo di errore

MODULE_NAME: atikmpag

IMAGE_NAME:  atikmpag.sys

È possibile usare il comando lmv per visualizzare informazioni sul driver di errore, incluso il 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

Il parametro 1 contiene un puntatore 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

Il parametro 2 contiene un puntatore nel modulo del driver di dispositivo responsabile (ad esempio, il tag proprietario).

BUGCHECK_P2: ffffffff9a02381e

È possibile esaminare l'analisi dello stack usando il 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]

È anche possibile impostare un punto di interruzione nel codice che conduce a questo codice di arresto e tentare di eseguire un singolo passaggio nel codice di errore, se è possibile riprodurre in modo coerente il codice di arresto.

Per altre informazioni, vedere gli argomenti seguenti:

Analisi dei dump di arresto anomalo del sistema usando i debugger Windows (WinDbg)

Se non si è dotati di usare il debugger Windows per risolvere questo problema, è possibile usare alcune tecniche di risoluzione dei problemi di base.

  • Controllare l'accesso di sistema Visualizzatore eventi per ulteriori messaggi di errore che potrebbero aiutare a identificare il dispositivo o il driver che sta causando questo controllo di bug.

  • Se un driver viene identificato nel messaggio del controllo errori, disabilita il driver o rivolgiti al produttore per ottenere gli aggiornamenti del driver.

  • Verificare che tutti i software correlati alla grafica, ad esempio DirectX e OpenGL, siano aggiornati e che tutte le applicazioni a elevato utilizzo di grafica (ad esempio i giochi) siano completamente patch.

  • Verificare che qualsiasi nuovo hardware installato sia compatibile con la versione installata di Windows. Ad esempio, è possibile ottenere informazioni sull'hardware richiesto in specifiche di Windows 10.

  • Uso della modalità provvisoria

    Prendere in considerazione l'uso della modalità provvisoria per isolare questo problema. L'uso della modalità provvisoria carica solo i driver e i servizi di sistema minimi necessari durante l'avvio di Windows. Per accedere alla modalità provvisoria, usare Aggiorna e sicurezza in Impostazioni. Selezionare Ripristino-Avvio>avanzato per avviare la modalità di manutenzione. Nel menu risultante scegliere Risoluzione dei problemi-Opzioni>avanzate ->Impostazioni di avvio ->Riavvia. Dopo il riavvio di Windows nella schermata Impostazioni di avvio , selezionare l'opzione 4, 5 o 6 per l'avvio in modalità provvisoria.

    La modalità provvisoria può essere disponibile premendo un tasto funzione all'avvio, ad esempio F8. Fare riferimento alle informazioni del produttore per opzioni di avvio specifiche.

  • Eseguire lo strumento Diagnostica memoria di Windows per testare la memoria. Nella casella di ricerca del pannello di controllo digitare Memoria e quindi selezionare Diagnosticare i problemi di memoria del computer. Dopo l'esecuzione del test, usare visualizzatore eventi per visualizzare i risultati nel registro di sistema. Cercare la voce MemoryDiagnostics-Results per visualizzare i risultati.

  • È possibile provare a eseguire la diagnostica hardware fornita dal produttore del sistema.

  • Per altre informazioni generali sulla risoluzione dei problemi, vedere Dati della schermata blu.

Commenti

Requisiti di certificazione hardware

Per informazioni sui requisiti che i dispositivi hardware devono soddisfare quando implementano la route TDR, vedere la documentazione di WHCK in Device.Graphics... TDRResiliency.