IRQL_NOT_LESS_OR_EQUAL蓝屏分析

IRQL_NOT_LESS_OR_EQUAL蓝屏分析

最近有朋友遇到了一个客户电脑出现蓝屏,由于朋友最近比较忙,简单看一下没有发现问题就将dump发给我,刚好最近有点空闲时间而且自己似乎很久没有排查和分析过问题了,因此就私下分析了一下,有了今天的文章。

1. 背景

由于这个问题并非可以重现的必现问题,因此在这里只能分析一下DUMP文件,初步看一下错误码信息,如下:

IRQL_NOT_LESS_OR_EQUAL (a)
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 a kernel debugger is available get the stack backtrace.
Arguments:
Arg1: ffffaa098cf769e0, memory referenced
Arg2: 0000000000000002, IRQL
Arg3: 0000000000000000, bitfield :
	bit 0 : value 0 = read operation, 1 = write operation
	bit 3 : value 0 = not an execute operation, 1 = execute operation (only on chips which support this level of status)
Arg4: fffff8042f088821, address which referenced memory

对于IRQL_NOT_LESS_OR_EQUAL这个蓝屏,是一个非常通用的问题,一般来说在DISPATCH_LEVEL以及以上的中断请求级别上面访问缺页内存或者非法内存的情况下就会导致这个问题。

从上面的摘要,我们也可以发现,此时:

  1. IRQL 级别为DISPATCH_LEVEL。
  2. 访问的内存为ffffaa098cf769e0。
  3. 并且可以知道是读取ffffaa098cf769e0内存。

那么接下来我们就具体分析一下产生的原因。

2. 分析

首先第一件事情,我们应当看一下蓝屏发生在哪个地方,如下:

2: kd> !thread
THREAD ffffd38d08a7c080  Cid 0684.0c68  Teb: 0000000aba729000 Win32Thread: 0000000000000000 RUNNING on processor 2
Not impersonating
DeviceMap                 ffffaa098a5c8c50
Owning Process            ffffd38d0702b080       Image:         svchost.exe
Attached Process          N/A            Image:         N/A
Wait Start TickCount      36169          Ticks: 50 (0:00:00:00.781)
Context Switch Count      46             IdealProcessor: 0             
UserTime                  00:00:00.000
KernelTime                00:00:00.000
Win32 Start Address 0x00007ff944013ce0
Stack Init fffff500d6f6bdd0 Current fffff500d6f6b5a0
Base fffff500d6f6c000 Limit fffff500d6f66000 Call 0000000000000000
Priority 8 BasePriority 8 PriorityDecrement 0 IoPriority 2 PagePriority 5
Child-SP          RetAddr           : Args to Child                                                           : Call Site
fffff500`d6f6b508 fffff804`2f1d5d29 : 00000000`0000000a ffffaa09`8cf769e0 00000000`00000002 00000000`00000000 : nt!KeBugCheckEx
fffff500`d6f6b510 fffff804`2f1d2069 : 00000000`00000000 00000000`00000003 00000000`000000a0 00000000`00000001 : nt!KiBugCheckDispatch+0x69
fffff500`d6f6b650 fffff804`2f088821 : ffffd38d`002b5d20 00000000`00000000 ffffaa09`88ddb8f0 fffff804`2f36e0a9 : nt!KiPageFault+0x469 (TrapFrame @ fffff500`d6f6b650)
fffff500`d6f6b7e0 fffff804`2f64331e : fffff804`2f373830 fffff804`00000000 00000000`00000000 ffffd38d`002b5d20 : nt!ExDeleteResourceLite+0xa1
fffff500`d6f6b830 fffff804`2f63fac0 : 00000000`00000000 00000000`00000000 00000000`00000000 ffffd38d`08a7c1c0 : nt!SepTokenDeleteMethod+0xfe
fffff500`d6f6b860 fffff804`2f04d684 : 00000000`00000000 00000000`00000000 fffff804`2f373830 ffffaa09`88ddb8f0 : nt!ObpRemoveObjectRoutine+0x80
fffff500`d6f6b8c0 fffff804`2f671660 : 00000000`00000000 ffffaa09`8a476e00 ffffaa09`8a476e00 00000000`00000000 : nt!ObfDereferenceObject+0xa4
fffff500`d6f6b900 fffff804`2f63fac0 : ffffd38d`078f63a0 00000000`00000000 ffffaa09`88ddb8f0 00000000`0017e190 : nt!AlpcpDeletePort+0x140
fffff500`d6f6b930 fffff804`2f04d684 : 00000000`00000000 00000000`00000000 fffff804`2f373830 ffffd38d`078f63d0 : nt!ObpRemoveObjectRoutine+0x80
fffff500`d6f6b990 fffff804`2f6b6100 : ffffaa09`8ef553b0 ffffaa09`8ef553b0 0000000a`ba59f988 ffffffff`ffffffff : nt!ObfDereferenceObject+0xa4
fffff500`d6f6b9d0 fffff804`2f61ce22 : 00000000`00000001 00000000`00000000 00000000`80000000 00000000`fa000000 : nt!AlpcMessageCleanupProcedure+0x30
fffff500`d6f6ba00 fffff804`2f617c4c : ffffffff`ffffffff 00000000`00000000 ffffaa09`8ef55380 00000176`ee682160 : nt!AlpcpDestroyBlob+0x32
fffff500`d6f6ba30 fffff804`2f617425 : 00000000`00000030 00000000`00000000 0000000a`ba59f968 00000000`00000000 : nt!AlpcpReceiveMessage+0x66c
fffff500`d6f6bb10 fffff804`2f1d5755 : ffffd38d`08a7c080 fffff500`d6f6bcc0 fffff500`d6f6bbe8 00000000`00000000 : nt!NtAlpcSendWaitReceivePort
  • 12
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
irql_not_less_or_equal是一个常见的蓝屏错误代码,它通常与操作系统内核、设备驱动程序或硬件冲突有关。当操作系统在内核模式下执行时,发现一个无效的内存地址,这可能是由于以下原因引起的: 1. 驱动程序冲突:某些设备驱动程序与其他驱动程序或操作系统内核发生冲突,导致蓝屏错误。这可能需要更新或卸载冲突的驱动程序,并确保所有驱动程序都是最新版本。 2. 内核模式到用户模式的访问:当内核模式过程试图访问用户模式进程的内存空间时发生错误。这通常是由于驱动程序或系统服务的错误配置或错误操作引起的。解决该问题可能需要识别并纠正配置错误。 3. 内存问题:内存故障、错误配置的内存模块或不稳定的超频设置都可以导致irql_not_less_or_equal错误。确保内存模块正确安装,没有损坏,并且在BIOS设置中不使用超频。 4. 硬件故障:某些硬件组件(如网络适配器、声卡、图形卡等)可能与其他设备或驱动程序发生冲突,导致irql_not_less_or_equal错误。检查设备是否适当安装和连接,并与制造商联系以获取任何可用的驱动程序更新。 5. 中断请求冲突:不正确配置的硬件设备可能会导致多个设备尝试使用相同的中断请求。这可能导致irql_not_less_or_equal错误。重新配置硬件设置以避免中断请求冲突可能是解决问题的方法之一。 为了解决irql_not_less_or_equal错误,可以尝试以下操作: - 更新或卸载与错误有关的驱动程序。 - 确保内存模块正确安装和配置,没有损坏。 - 检查硬件设备是否正确安装和连接。 - 避免硬件中断请求冲突。 - 检查操作系统是否有可用的更新或修补程序。 - 如果问题仍然存在,可能需要寻求专业技术支持来进一步分析并解决问题。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值