You could try to run driver verifier; please read CAREFULLY the following instructions:
- Only for windows 8, 8.1, 10 users (Win7 users, WinVista users, XP users, shouldn't have this problem): change the bcdedit bootmenupolicy setting from standard to legacy, then restart your PC and see if you are able to make appear windows advanced boot options (SAFE MODE included!) with the good old F8 key.
See the hidden instructions if you don't know how to do it.[HIDE]From an elevated command prompt, launch these three commands:[CODE]bcdedit
bcdedit /set bootmenupolicy legacy
bcdedit[/CODE]
You should get something like (see bold strings):[HIDE][/HIDE]
[/HIDE] - Create a restore point
- Create a system image
- Read the guide about Driver Verifier - BSOD related - Windows 10, 8.1, 8, 7 & Vista (click).
- Read some other tutorials/guides and WARNINGS on internet.
- Enable verifier
You can use either the standard method, or the EXPERIMENTAL instructions at the end of this post.
No need to use them both.
By the way, in the experimental instructions I modified some verifier settings:- I've added NDIS/WIFI verification, because it seems you (PC Cheah) have this problem.
- I've added the parameter /bootmode resetonbootfail: this should reset driver verifier if it should cause the pc to go in BSOD loop state (see next point).
This option is incompatible with windows 7 and windows vista (it should be skipped by them).
- If you'll get a very fast BSOD after you logged into windows, you'll need to go to safe mode to reset verifier settings.
From an elevated command prompt:[CODE]verifier /reset[/CODE] - Post here the new verifier dump
[HR][/HR]
[c1]I created the following method to speed up things a bit, to enable verifier settings like written in Jcgriff's verifier thread, using only third party drivers (hence excluding microsoft drivers).
This was tested only on Windows 10 home x64 (and partially on windows 7)[/c1]
- download nirsoft driverview and decompress its folder (leaving its default name) on your desktop, i.e. on the desktop there should be the driverview folder(with its files in it):
- open notepad, copy the following text and save the file on your desktop as EnableVerifier.ps1:
[n5=Note:]Code for 64bit windows versions[/n5]
[HIDE]
$extdrivers="$env:userprofile\desktop\extdrivers.txt"
$extdrivers2="$env:userprofile\desktop\extdrivers2.txt"
$tempfile="$env:userprofile\desktop\temp.txt"
$output="$env:userprofile\desktop\Non-ms-drivers.txt"
$command = {c:\windows\system32\cmd.exe /c '%userprofile%\Desktop\driverview-x64\driverview.exe' /sort 1 /stext %userprofile%\desktop\extdrivers.txt}
Invoke-Command -scriptblock $command
type $extdrivers | find /i "driver name" | out-file $extdrivers2
$drivers = Get-Content $extdrivers2
FOR ($i=1; $i -lt $drivers.Length; $i++) {
NV -Name "linea$i"
SV -name "linea$i" -value ($drivers.GetValue($i))
$tmp = GV -name linea$i -valueonly
$tmp = ( $tmp.TrimStart("Driver Name : ") + " , " )
$tmp | out-file $tempfile -append
RV -Name "linea$i"
}
$tmp = get-content $tempfile | sort
$tmp = $tmp -join ""
$tmp = $tmp.TrimEnd(" , ")
$tmp = $tmp.Replace(" , ", ",")
$tmp | out-file $output
verifier /flags 0x22892b /bootmode resetonbootfail /driver $tmp
del $output, $extdrivers, $tempfile, $extdrivers2
rv tmp, tempfile, output, i, extdrivers2, drivers
[/HIDE][n5=Note:]Code for 32bit windows versions[/n5]
[HIDE]
$extdrivers="$env:userprofile\desktop\extdrivers.txt"
$extdrivers2="$env:userprofile\desktop\extdrivers2.txt"
$tempfile="$env:userprofile\desktop\temp.txt"
$output="$env:userprofile\desktop\Non-ms-drivers.txt"
$command = {c:\windows\system32\cmd.exe /c '%userprofile%\Desktop\driverview\driverview.exe' /sort 1 /stext %userprofile%\desktop\extdrivers.txt}
Invoke-Command -scriptblock $command
type $extdrivers | find /i "driver name" | out-file $extdrivers2
$drivers = Get-Content $extdrivers2
FOR ($i=1; $i -lt $drivers.Length; $i++) {
NV -Name "linea$i"
SV -name "linea$i" -value ($drivers.GetValue($i))
$tmp = GV -name linea$i -valueonly
$tmp = ( $tmp.TrimStart("Driver Name : ") + " , " )
$tmp | out-file $tempfile -append
RV -Name "linea$i"
}
$tmp = get-content $tempfile | sort
$tmp = $tmp -join ""
$tmp = $tmp.TrimEnd(" , ")
$tmp = $tmp.Replace(" , ", ",")
$tmp | out-file $output
verifier /flags 0x22892b /bootmode resetonbootfail /driver $tmp
del $output, $extdrivers, $tempfile, $extdrivers2
rv tmp, tempfile, output, i, extdrivers2, drivers
[/HIDE] - From an elevated command prompt, run:
- It should appear something like:[HIDE][CODE]
Verifier Flags: 0x0022892b
Standard Flags:
[X] 0x00000001 Special pool.
[X] 0x00000002 Force IRQL checking.
[X] 0x00000008 Pool tracking.
[ ] 0x00000010 I/O verification.
[X] 0x00000020 Deadlock detection.
[ ] 0x00000080 DMA checking.
[X] 0x00000100 Security checks.
[X] 0x00000800 Miscellaneous checks.
[X] 0x00020000 DDI compliance checking.
Additional Flags:
[ ] 0x00000004 Randomized low resources simulation.
[ ] 0x00000200 Force pending I/O requests.
[ ] 0x00000400 IRP logging.
[ ] 0x00002000 Invariant MDL checking for stack.
[ ] 0x00004000 Invariant MDL checking for driver.
[X] 0x00008000 Power framework delay fuzzing.
[ ] 0x00010000 Port/miniport interface checking.
[ ] 0x00040000 Systematic low resources simulation.
[ ] 0x00080000 DDI compliance checking (additional).
[X] 0x00200000 NDIS/WIFI verification.
[ ] 0x00800000 Kernel synchronization delay fuzzing.
[ ] 0x01000000 VM switch verification.
[ ] 0x02000000 Code integrity checks.
[X] Indicates flag is enabled.
Boot Mode:
Resetonbootfail
Rules:
All rules are using default settings
Extensions:
wdm: rules.default
ndis: rules.default
Verified Drivers:
More data is available.
The system reboot is required for the changes to take effect.[/CODE][/HIDE] - Reboot your machine and wait the verifier dump (i.e., verifier should force a new BSOD, identifying the problem).