There are still strong indications in those dumps that this is most likely a hardware problem. However, further hardware tests will prevent you from using your PC for some time whilst the tests run, so I think it's probably better to check for rogue third-party drivers first.
To do that you're going to enable Driver Verifier. 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 BSOD stop codes 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).
Let's see what that tells us...