We noticed from multiple customers’ environment that Windows 7 operating system intermittently crashes, while they  working with Visual Studio 2010 [VS 2010]. Since this was happening with multiple customers’ environment, I just thought of publish the details and fix for this issue in this blog.

Issue Details :

Windows 7 operating system crashes, while opening the multiple instances of Silverlight project through Visual Studio 2010 SP1 IDE. Troubleshoot this issue further; we have collected below data from the machine, which was crashed:

  1. Windows Event Log [System Event Log]
  2. Kernel Memory dump located under ‘%SystemRoot%\MEMORY.DMP’

Windows Event Log [System Event Log]

Log Name:      System
Source:        Microsoft-Windows-WER-SystemErrorReporting
Event ID:      1001
Task Category: None
Level:         Error
Keywords:      Classic
User:          N/A
The computer has rebooted from a bugcheck.  The bugcheck was: 0x00000116 (0x8894a008, 0x990499b0, 0x00000000, 0x00000002). A dump was saved in: C:\Windows\MEMORY.DMP. Report Id: XXXXXXX

Log Name:      System
Source:        EventLog
Event ID:      6008
Task Category: None
Level:         Error
Keywords:      Classic
User:          N/A
The previous system shutdown at XXXX  on XXXXXXXX was unexpected.

The above event logs indicate that, Operating System is crashed due to Bug Check 0x116. To get the more detail about this, I have reviewed the Kernel dump

Kernel Memory dump 

VIDEO_TDR_FAILURE (116)  =>  This indicate that an attempt to reset the display driver and recovered from a timeout failed (Ref Bug Check 0x116).
Attempt to reset the display driver and recover from timeout failed.
Arg1: 8894a008, Optional pointer to internal TDR recovery context (TDR_RECOVERY_CONTEXT).
Arg2: 990499b0, The pointer into responsible device driver module (e.g. owner tag).
Arg3: 00000000, Optional error code (NTSTATUS) of the last failed operation.
Arg4: 00000002, Optional internal context dependent data.


VIDEO_TDR_CONTEXT: dt dxgkrnl!_TDR_RECOVERY_CONTEXT ffffffff85701510
   +0x000 Signature        : 0x52445476
   +0x004 pState           : 0x870ab638 0 ( TdrStateIdle )
   +0x008 TimeoutReason    : 2 ( TdrReasonPreemptTimeout )
   +0x010 Tick             : _ULARGE_INTEGER 0xc0
   +0x018 pAdapter         : 0x84f88000 DXGADAPTER
   +0x01c pVidSchContext   : 0x8708a4d8 _VIDSCH_CONTEXT
   +0x020 GPUTimeoutData   : _TDR_RECOVERY_GPU_DATA
   +0x038 CrtcTimeoutData  : _TDR_RECOVERY_CONTEXT::<unnamed-type-CrtcTimeoutData>
   +0x040 DbgOwnerTag      : 0x9a8439b0
   +0x048 PrivateDbgInfo   : _TDR_DEBUG_REPORT_PRIVATE_INFO
   +0xad0 pDbgReport       : 0xc9348008 _WD_DEBUG_REPORT
   +0xad4 pDbgBuffer       : 0xcd000000 Void
   +0xad8 DbgBufferSize    : 0x40c5b
   +0xadc pDumpBufferHelper : 0xcc9b8070 CTDR_DUMP_BUFFER
   +0xae0 pDbgInfoExtension : 0xcc124e08 _DXGKARG_COLLECTDBGINFO_EXT
   +0xae4 pDbgBufferUpdatePrivateInfo : 0xcd000108 Void
   +0xae8 ReferenceCount   : 0n1

The Crash occurred due to an issue with the windows display driver model (wddm), and please finds the detail about the crashing thread as below

0: kd> !thread
THREAD 86f66550  Cid 0004.01c4  Teb: 00000000 Win32Thread: 00000000 RUNNING on processor 0
Not impersonating
DeviceMap                 8bc084b0
Owning Process            84f09bb0       Image:         System
Attached Process          N/A            Image:         N/A
Wait Start TickCount      20602          Ticks: 0
Context Switch Count      6865           IdealProcessor: 0            
UserTime                  00:00:00.000
KernelTime                00:00:01.232
Win32 Start Address dxgmms1!VidSchiWorkerThread (0x996444f4)
Stack Init 807adfd0 Current bd47b350 Base 807ae000 Limit 807ab000 Call 0
Priority 15 BasePriority 15 UnusualBoost 0 ForegroundBoost 0 IoPriority 2 PagePriority 5
ChildEBP RetAddr  Args to Child             
807adb74 995c1adb 00000116 8894a008 990499b0 nt!KeBugCheckEx+0x1e (CONV: stdcall)
807adb98 995c28fa 990499b0 00000000 00000002 dxgkrnl!TdrBugcheckOnTimeout+0x8d (FPO: [Non-Fpo]) (CONV: stdcall)
807adbbc 9961892c 00000000 00000102 86f01788 dxgkrnl!TdrIsRecoveryRequired+0xb8 (FPO: [Non-Fpo]) (CONV: stdcall)
807adc34 99642a32 fffffcfb 00004fa5 00000000 dxgmms1!VidSchiReportHwHang+0x3c0 (FPO: [Non-Fpo]) (CONV: stdcall)
807adc5c 99643153 00000000 00000000 00000000 dxgmms1!VidSchiCheckHwProgress+0x68 (FPO: [Non-Fpo]) (CONV: stdcall)
807adc98 9961f8f0 807adc90 88808120 88a76008 dxgmms1!VidSchiWaitForSchedulerEvents+0x1b1 (FPO: [Non-Fpo]) (CONV: stdcall)
807add28 996444b7 86f01788 82a863e1 86f01788 dxgmms1!VidSchiScheduleCommandToRun+0xaa (FPO: [Non-Fpo]) (CONV: stdcall)
807add3c 99644573 86f01788 00000000 86f66550 dxgmms1!VidSchiRun_PriorityTable+0xf (FPO: [Non-Fpo]) (CONV: stdcall)
807add50 82c589df 86f01788 ac78a1f2 00000000 dxgmms1!VidSchiWorkerThread+0x7f (FPO: [Non-Fpo]) (CONV: stdcall)
807add90 82b0a1d9 996444f4 86f01788 00000000 nt!PspSystemThreadStartup+0x9e (CONV: stdcall)
00000000 00000000 00000000 00000000 00000000 nt!KiThreadStartup+0x19

0: kd> .bugcheck
Bugcheck code 00000116
Arguments 8894a008 990499b0 00000000 00000002

The 2nd parameter to bug check is 928149b0. This is the pointer into the responsible device driver module.

0: kd> u 990499b0
990499b0 55              push    ebp
990499b1 8bec            mov     ebp,esp
990499b3 83ec20          sub     esp,20h
990499b6 8b4508          mov     eax,dword ptr [ebp+8]
990499b9 8945f4          mov     dword ptr [ebp-0Ch],eax
990499bc 8b4d0c          mov     ecx,dword ptr [ebp+0Ch]
990499bf 8b510c          mov     edx,dword ptr [ecx+0Ch]
990499c2 8955e4          mov     dword ptr [ebp-1Ch],edx

0: kd> lmvm igdkmd32
start    end        module name
9a832000 9ad2f000   igdkmd32   (pdb symbols)              Loaded symbol image file: igdkmd32.sys
    Mapped memory image file: xxxxxx\igdkmd32.sys
    Image path: \SystemRoot\system32\DRIVERS\igdkmd32.sys
    Image name: igdkmd32.sys
    Timestamp:        Wed May 06 23:43:40 2009 (4A01D354)
    CheckSum:         0048DF97
    ImageSize:        004FD000
    File version:
    Product version:
    File flags:       0 (Mask 3F)
    File OS:          40004 NT Win32
    File type:        3.4 Driver
    File date:        00000000.00000000
    Translations:     0409.04b0
    CompanyName:      Intel Corporation
    ProductName:      Intel Graphics Accelerator Drivers for Windows Vista(R)
    InternalName:     igdkmd32.sys
    OriginalFilename: igdkmd32.sys
    FileDescription:  Intel Graphics Kernel Mode Driver
    LegalCopyright:   Copyright (c) 1998-2006 Intel Corporation



Based on the above details, we able to fix this issue by updating the ‘igdkmd32.sys’ file from http://www.intel.com/p/en_US/support/detect