DRIVER_IRQL_NOT_LESS_OR_EQUAL (d1)
An attempt was made to access a pageable (or completely invalid) address at an
interrupt request level (IRQL) that is too high. This is usually
caused by drivers using improper addresses.
If kernel debugger is available get stack backtrace.
Arguments:
Arg1: 0203030d, memory referenced
Arg2: 00000002, IRQL
Arg3: 00000000, value 0 = read operation, 1 = write operation
Arg4: 952831eb, address which referenced memory
Debugging Details:
------------------
Unable to load image \SystemRoot\system32\DRIVERS\athr.sys, Win32 error 0n2
*** WARNING: Unable to verify timestamp for athr.sys
KEY_VALUES_STRING: 1
Key : Analysis.CPU.Sec
Value: 1
Key : Analysis.DebugAnalysisProvider.CPP
Value: Create: 8007007e on FR
Key : Analysis.DebugData
Value: CreateObject
Key : Analysis.DebugModel
Value: CreateObject
Key : Analysis.Elapsed.Sec
Value: 36
Key : Analysis.Memory.CommitPeak.Mb
Value: 92
Key : Analysis.System
Value: CreateObject
BUGCHECK_CODE: d1
BUGCHECK_P1: 203030d
BUGCHECK_P2: 2
BUGCHECK_P3: 0
BUGCHECK_P4: ffffffff952831eb
READ_ADDRESS: 84567c50: Unable to get Flags value from nt!KdVersionBlock
84567c50: Unable to get Flags value from nt!KdVersionBlock
84567c50: Unable to get Flags value from nt!KdVersionBlock
Unable to get MmSystemRangeStart
GetUlongPtrFromAddress: unable to read from 845a8208
GetUlongPtrFromAddress: unable to read from 845a86ec
Unable to get NonPagedPoolStart
Unable to get PagedPoolStart
0203030d
根据这段分析报告中给出的猜测:
An attempt was made to access a pageable (or completely invalid) address at an
interrupt request level (IRQL) that is too high. This is usually
caused by drivers using improper addresses.
很可能是某个驱动程序使用了错误的指针。那么我要找出具体是哪一个驱动程序的锅。继续往下看:
Unable to load image \SystemRoot\system32\DRIVERS\athr.sys, Win32 error 0n2
*** WARNING: Unable to verify timestamp for athr.sys
这一句提示无法加载athr.sys,为什么只有这一个文件提示出错呢?我猜这个文件应该来自第三方,不属于Windows。在下面的“STACK_TEXT”中也可以看到,栈中确实有athr,这几行只显示内存地址,而其他的call frame都是来自ndis、nt、tcpip这些系统组件,跟我的猜测是一致的。追查一下athr.sys这个文件,在WER-43227-0.sysdata.xml中直接搜athr.sys:
<DESCRIPTION>Qualcomm Atheros AR938x Wireless Network Adapter</DESCRIPTION>
<HARDWAREID>PCI\VEN_168C&DEV_0030&SUBSYS_3112168C&REV_01</HARDWAREID>
<SERVICE>athr</SERVICE>
<DRIVER>athr.sys</DRIVER>
根据DESCRIPTION,它是高通无线网卡的驱动。虽然根据以上信息还不能确定一定是它的锅,但至少可以尝试一下最新的版本。按型号在官网上一查,果然已经有了更新版本的驱动。在同事的电脑上安装最新版本之后,蓝屏再也没有出现过。