다음을 통해 공유


버그 확인 0x117: VIDEO_TDR_TIMEOUT_DETECTED

VIDEO_TDR_TIMEOUT_DETECTED 라이브 덤프의 값은 0x00000117. 이는 디스플레이 드라이버가 적시에 응답하지 못했음을 나타냅니다.

(이 코드는 실제 버그 검사에 사용할 수 없으며 라이브 덤프를 식별하는 데 사용됩니다.)

Important

이 문서는 프로그래머를 위한 것입니다. 컴퓨터를 사용하는 동안 파란색 화면 오류 코드를 받은 고객인 경우 파란색 화면 오류 문제 해결을 참조하세요.

VIDEO_TDR_TIMEOUT_DETECTED 매개 변수

매개 변수 설명

1

사용 가능한 경우 내부 TDR 복구 컨텍스트에 대한 포인터입니다.

2

책임 있는 디바이스 드라이버 모듈(예: 소유자 태그)에 대한 포인터입니다.

3

보조 드라이버별 버킷팅 키입니다.

4

내부 컨텍스트 종속 데이터(사용 가능한 경우)입니다.

원인

그래픽의 일반적인 안정성 문제는 최종 사용자 명령 또는 작업을 처리하는 동안 시스템이 완전히 고정되거나 중단된 것처럼 보일 때 발생합니다. 일반적으로 GPU는 주로 게임 플레이 중에 집중적인 그래픽 작업을 처리하는 중입니다. 화면 업데이트가 발생하지 않으며 사용자는 시스템이 고정되어 있다고 가정합니다. 사용자는 일반적으로 몇 초 정도 기다린 다음 전원 단추를 눌러 시스템을 다시 부팅합니다. Windows는 이러한 문제가 있는 중단 상황을 감지하고 반응형 데스크톱을 동적으로 복구하려고 합니다.

이 검색 및 복구 프로세스를 TDR(시간 제한 검색 및 복구)으로 알려져 있습니다. 기본 시간 제한은 2초입니다. 비디오 카드에 대한 TDR 프로세스에서 운영 체제의 GPU 스케줄러는 디스플레이 미니포트 드라이버의 DxgkDdiResetFromTimeout 함수를 호출하여 드라이버를 다시 초기화하고 GPU를 다시 설정합니다.

복구 프로세스가 성공하면 "표시 드라이버가 응답을 중지하고 복구되었습니다"라는 메시지가 표시됩니다.

자세한 내용은 TDR(시간 제한 검색 및 복구), TDR 레지스트리 키 및 TDR(시간 제한 검색 및 복구)에 있는 Windows 8TDR 변경 내용을 참조하세요.

해결

GPU는 모니터에 그래픽을 표시하는 데 허용되는 시간보다 더 많은 시간이 소요됩니다. 다음 이유 중 하나 이상으로 인해 이 동작이 발생할 수 있습니다.

  • TDR 프로세스를 제대로 지원하도록 디스플레이 드라이버에 대한 최신 업데이트를 설치해야 할 수 있습니다.
  • 다음을 포함하여 비디오 카드가 제대로 작동하는 기능에 영향을 주는 하드웨어 문제
    • 마더보드와 같은 오버 클럭 구성 요소
    • 잘못된 구성 요소 호환성 및 설정(특히 메모리 구성 및 타이밍)
    • 시스템 냉각 부족
    • 시스템 전원 부족
    • 결함이 있는 부품(메모리 모듈, 마더보드 등)
  • 시각 효과 또는 백그라운드에서 실행되는 프로그램이 너무 많으면 비디오 카드가 필요에 따라 응답할 수 없도록 PC 속도가 느려질 수 있습니다.

!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(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을 구현할 때 충족해야 하는 요구 사항에 대한 자세한 내용은 Device.Graphics의 WHCK 설명서를 참조하세요. TDRResiliency.