I did look at the wrong Sysnative file, apologies. When did you change the graphics card? I can see where you said that you'd 'swapped out the graphics card' but you didn't make it clear that you'd upgraded it. It's extraordinarily difficult to troubleshoot a system when you keep changing the hardware without being clear what new hardware is being installed. Every time to change the hardware, or change anything we havn't asked you to, you effectively reset all our troubleshooting - because you've created a different platform.
Did you use DDU to remove all traces of the GTX 1660 driver
before you installed the RTX 4060? The dump from 22nd June, which is after your June 18th post, is another 0x116 VIDEO_TDR_FAILURE - exactly the same BSOD you were seeing before you upgraded the graphics card. The 0x116 indicates that there was a problem in the graphics subsystem and the Windows TDR was unable to reset the card. you can see this clearly in the latest dump (from 22nd June)...
Code:
0: kd> k
# Child-SP RetAddr Call Site
00 ffffb985`6d70f128 fffff805`3f9cb1ee nt!KeBugCheckEx
01 ffffb985`6d70f130 fffff805`3f97d012 dxgkrnl!TdrBugcheckOnTimeout+0xfe
02 ffffb985`6d70f170 fffff805`3f975589 dxgkrnl!ADAPTER_RENDER::Reset+0x12a
03 ffffb985`6d70f1a0 fffff805`3f9ca945 dxgkrnl!DXGADAPTER::Reset+0x60d
04 ffffb985`6d70f250 fffff805`3f9caaa2 dxgkrnl!TdrResetFromTimeout+0x15
05 ffffb985`6d70f280 fffff805`392ce2d5 dxgkrnl!TdrResetFromTimeoutWorkItem+0x22
06 ffffb985`6d70f2c0 fffff805`3920e957 nt!ExpWorkerThread+0x155
07 ffffb985`6d70f4b0 fffff805`3941f3b4 nt!PspSystemThreadStartup+0x57
08 ffffb985`6d70f500 00000000`00000000 nt!KiStartSystemThread+0x34
You read this stack from the bottom up, it's a push-down stack of the function calls leading up to the bugcheck. You see the thread start up, then dxgkrnl.sys (the Windows DirectX driver) encounters a graphics timeout and the TDR functioin is called. You can see the TDR function of dxgkrnl.sys reset the driver (dxgkrnl!TdrResetFromTimeout+0x15) and then reset the graphics card (dxgkrnl!DXGADAPTER::Reset+0x60d and dxgkrnl!ADAPTER_RENDER::Reset+0x12a) and still the graphics issue persists because we get another graphics timeout which leads to the bugcheck.
Clearly the issue is not the graphics card because you've had theis BSOD with two different cards. It's not the graphics driver either because you've had this issue with two different graphics drivers (assuming that you did use DDU to remove all traces of the GTX 1660 driver). The only hardware left is the motherboard.
However. Before you swap out the motherboard you want to be 100% certain that thre isn't a software or driver cause. There are no third party drivers on the full call stack but it's still not impossible that you reinstalled the original problem. That's why I keep encouraging you to run in Safe Mode.
One other thing that it may be worth you trying is to enable Driver Verifier to see whether that catches a rogue driver...
Driver Verifier subjects selected drivers (typically all third-party drivers) to extra tests and checks every time they are called. These extra checks are designed to uncover drivers that are misbehaving. If any selected driver fails any of the Driver Verifier tests/checks then Driver Verifier will BSOD. The resulting minidump should contain enough information for us to identify the flaky driver.
It's thus essential to keep all minidumps created whilst Driver Verifier is enabled.
To enable Driver Verifier do the following:
1. Take a System Restore point and/or take a disk image of your system drive (with Acronis, Macrium Reflect, or similar). It is possible that Driver Verifier may BSOD a driver during the boot process (some drivers are loaded during boot). If that happens you'll be stuck in a boot-BSOD loop.
If you should end up in a boot-BSOD loop, boot the Windows installation media and use that to run system restore and restore to the restore point you took, to remove Driver Verifier and get you booting again. Alternatively you can use the Acronis, Macrium Reflect, or similar, boot media to restore the disk image you took.
Please don't skip this step. it's the only way out of a Driver Verifier boot-BSOD loop.
2. Start the Driver Verifier setup dialog by entering the command
verifier in either the Run command box or in a command prompt.
3. On that initial dialog, click the radio button for 'Create custom settings (for code developers)' - the second option - and click the Next button.
4. On the second dialog check (click) the checkboxes for the following tests...
- Special Pool
- Force IRQL checking
- Pool Tracking
- Deadlock Detection
- Security Checks
- Miscellaneous Checks
- Power framework delay fuzzing
- DDI compliance checking
Then click the Next button.
5. On the next dialog click the radio button for 'Select driver names from a list' - the last option - and click the Next button.
6. On the next dialog click on the 'Provider' heading, this will sort the drivers on this column (it makes it easier to isolate Microsoft drivers).
7. Now check (click)
ALL drivers that
DO NOT have Microsoft as the provider (ie. check all third-party drivers).
8. Then, on the same dialog, check the following Microsoft drivers (and
ONLY these Microsoft drivers)...
- Wdf01000.sys
- ndis.sys
- fltMgr.sys
- Storport.sys
These are high-level Microsoft drivers that manage lower-level third-party drivers that we otherwise wouldn't be able to trap. That's why they're included.
9. Now click Finish and then reboot. Driver Verifiier will be enabled.
Be aware that Driver Verifier will remain enabled across all reboots and shutdowns. It can only be disabled manually.
Also be aware that we expect BSODs. Indeed, we want BSODs, to be able to identify the flaky driver(s). You
MUST keep all minidumps created whilst Driver Verifier is running, so disable any disk cleanup tools you may have.
10. Leave Driver Verifier running for 48 hours, use your PC as normal during this time, but do try and make it BSOD. Use every game or app that you normally use, and especially those where you have seen it BSOD in the past. If Windows doesn't automatically reboot after each BSOD then just reboot as normal and continue testing. The Driver Verifier generated BSODs are these...
- 0xC1: SPECIAL_POOL_DETECTED_MEMORY_CORRUPTION
- 0xC4: DRIVER_VERIFIER_DETECTED_VIOLATION
- 0xC6: DRIVER_CAUGHT_MODIFYING_FREED_POOL
- 0xC9: DRIVER_VERIFIER_IOMANAGER_VIOLATION
- 0xD6: DRIVER_PAGE_FAULT_BEYOND_END_OF_ALLOCATION
- 0xE6: DRIVER_VERIFIER_DMA_VIOLATION
If you see any of these BSOD types then you can disable Driver Verifier early because you'll have caught a misbehaving driver.
Note: Because Driver Verifier is doing extra work each time a third-party driver is loaded you will notice some performance degradation with Driver Verifier enabled. This is a price you'll have to pay in order to locate any flaky drivers. And remember, Driver Verifier can only test drivers that are loaded, so you need to ensure that every third-party driver gets loaded by using all apps, features and devices.
11. To turn Driver Verifier off enter the command
verifier /reset in either Run command box or a command prompt and reboot.
Should you wish to check whether Driver Verfier is enabled or not, open a command prompt and enter the command
verifier /query. If drivers are listed then it's enabled, if no drivers are listed then it's not.
12. When Driver Verifier has been disabled, navigate to the folder C:\Windows\Minidump and locate all .dmp files in there that are related to the period when Driver Verifier was running (check the timestamps). Zip these files up if you like, or not as you choose. Upload the file(s) to the cloud with a link to it/them here (be sure to make it public).