Поделиться через


Проверка ошибок 0x117: VIDEO_TDR_TIMEOUT_DETECTED

VIDEO_TDR_TIMEOUT_DETECTED динамический дамп имеет значение 0x00000117. Это означает, что драйвер отображения не смог своевременно реагировать.

(Этот код никогда не может использоваться для реальной проверки ошибок; он используется для идентификации динамических дампов.)

Внимание

Эта статья предназначена для программистов. Если вы являетесь клиентом, который получил код ошибки синего экрана при использовании компьютера, см. статью "Устранение неполадок синим экраном".

Параметры VIDEO_TDR_TIMEOUT_DETECTED

Параметр Описание

1

Указатель на внутренний контекст восстановления TDR, если он доступен.

2

Указатель на модуль драйвера ответственного устройства (например, тег владельца).

3

Дополнительный ключ сегментирования для конкретного драйвера.

4

Внутренние зависимые от контекста данные, если они доступны.

Причина

Распространенная проблема стабильности в графике возникает, когда система отображается полностью замороженной или зависает при обработке команды или операции конечного пользователя. Обычно GPU занят обработкой интенсивных графических операций, как правило, во время игры. Обновление экрана не происходит, и пользователи предполагают, что их система заморожена. Обычно пользователи ожидают несколько секунд, а затем перезагружают систему, нажав кнопку питания. Windows пытается обнаружить эти проблемные ситуации зависания и динамически восстановить адаптивный рабочий стол.

Этот процесс обнаружения и восстановления называется обнаружением времени ожидания и восстановлением (TDR). Время ожидания по умолчанию — 2 секунды. В процессе TDR для видеокарточек планировщик GPU операционной системы вызывает функцию DxgkDdiResetFromTimeout драйвера для отображения минипорта, чтобы повторно инициализировать драйвер и сбросить GPU.

Если процесс восстановления выполнен успешно, отобразится сообщение, указывающее, что драйвер отображения перестал отвечать и восстановился.

Дополнительные сведения см. в разделе "Обнаружение времени ожидания" и "Восстановление" (TDR), разделы реестра TDR и изменения TDR в Windows 8 , которые находятся в области обнаружения времени ожидания и восстановления (TDR)

Разрешение

Gpu занимает больше времени, чем разрешено отображать графику на мониторе. Эта реакция на событие может возникать по одной или нескольким из следующих причин.

  • Возможно, потребуется установить последние обновления для драйвера дисплея, чтобы он правильно поддерживал процесс TDR.
  • Аппаратные проблемы, влияющие на способность видеоадаптер правильно работать, в том числе:
    • Более часовые компоненты, такие как материнской платы
    • Неправильное совместимость компонентов и параметры (особенно конфигурация памяти и время)
    • Недостаточно системного охлаждения
    • Недостаточно системной мощности
    • Дефектные части (модули памяти, материнской платы и т. д.)
  • Визуальные эффекты или слишком много программ, работающих в фоновом режиме, могут замедлить работу компьютера, чтобы видеоадаптер не мог реагировать по мере необходимости.

Расширение отладки !analyze отображает сведения о проверке ошибок и может оказаться полезным при определении первопричины.

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.

...

Также отображается имя модуля сбоя

MODULE_NAME: atikmpag

IMAGE_NAME:  atikmpag.sys

Команду lmv можно использовать для отображения сведений о драйвере сбоя, включая метку времени.

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

Параметр 1 содержит указатель на 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

Параметр 2 содержит указатель на модуль драйвера ответственного устройства (например, тег владельца).

BUGCHECK_P2: ffffffff9a02381e

Вы можете проверить трассировку стека с помощью команды 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]

Вы также можете задать точку останова в коде, ведущую к этому коду остановки, и попытаться выполнить один шаг вперед в код сбоя, если вы можете последовательно воспроизвести код остановки.

Дополнительные сведения см. в следующих статьях:

Анализ аварийного дампа с помощью отладчиков Windows (WinDbg)

Если вы не оснащены отладчиком Windows для работы с этой проблемой, можно использовать некоторые основные методы устранения неполадок.

  • Проверьте системный журнал в Просмотр событий для получения дополнительных сообщений об ошибках, которые могут помочь определить устройство или драйвер, вызывающий эту ошибку.

  • Если драйвер определен в сообщении проверки ошибок, отключите драйвер или обратитесь к изготовителю обновлений драйверов.

  • Убедитесь, что все связанные с графикой программы, такие как DirectX и OpenGL, обновлены, и все приложения с интенсивным графикой (например, игры) полностью исправлены.

  • Убедитесь, что любое новое оборудование, которое установлено, совместимо с установленной версией Windows. Например, можно получить сведения о требуемом оборудовании в спецификациях Windows 10.

  • Использование безопасного режима

    Рекомендуется использовать безопасный режим, чтобы изолировать эту проблему. Использование безопасного режима загружает только минимальные необходимые драйверы и системные службы во время запуска Windows. Чтобы войти в безопасный режим, используйте обновление и безопасность в параметрах. Выберите "Дополнительное восстановление>", чтобы загрузиться в режим обслуживания. В результирующем меню выберите пункт "Устранение неполадок с> дополнительными параметрами" -> "Параметры запуска" ->"Перезапустить". После перезапуска Windows на экране "Параметры запуска" выберите параметр, 4, 5 или 6, чтобы загрузиться в безопасный режим.

    Безопасный режим может быть доступен, нажав клавишу функции при загрузке, например F8. Сведения от производителя см. в конкретных параметрах запуска.

  • Запустите средство диагностики памяти Windows, чтобы проверить память. В поле поиска панели управления введите память и выберите " Диагностика проблем с памятью компьютера". После выполнения теста используйте средство просмотра событий для просмотра результатов в системном журнале. Найдите запись MemoryDiagnostics-Results, чтобы просмотреть результаты.

  • Можно попробовать запустить средство диагностики оборудования, предоставленное производителем системы.

  • Дополнительные общие сведения об устранении неполадок см. в разделе "Анализ данных с синим экраном".

Замечания

Требования к сертификации оборудования

Сведения о требованиях, которые должны соответствовать аппаратным устройствам при реализации TDR, см. в документации по WHCK на Device.Graphics... TDRResiliency.