首页 打印机驱动下载 扫描仪驱动下载 品牌 说明书 驱动 万能驱动 硬件知识 软件

Windows蓝屏DRIVER_IRQL_NOT_LESS_OR_EQUAL修复教程

更新时间:2023-08-28 10:10 来源:互联网 小编:" 梦里花ㄣ"

蓝屏代码0x000000D1代表"DRIVER_IRQL_NOT_LESS_OR_EQUAL",这表示发生了一个驱动程序的"IRQL不小于或等于"的错误。IRQL是中断请求级别的缩写,它用来确定硬件设备处理程序的优先级。这个错误通常意味着一个驱动程序试图在更高的IRQL级别上访问一个无效的内存地址,导致系统崩溃并显示蓝屏错误。

Windows蓝屏DRIVER_IRQL_NOT_LESS_OR_EQUAL修复教程

要解决这个问题,可以尝试以下方法:

方法一:检查病毒和恶意软件

某些恶意软件或病毒可能会影响系统稳定性,从而导致蓝屏错误,确保您的计算机经过全面的杀毒扫描,并使用可信赖的防病毒软件定期进行更新和扫描。

方法二:检查病毒或恶意软件

运行安全软件进行全面系统扫描,确保系统没有受到病毒或恶意软件的感染。

方法三:删除问题驱动程序

如果你知道造成问题的驱动程序是哪个,尝试将其删除并重新安装它,以消除可能的损坏或不兼容性问题。

方法四:使用一键修复工具助手(强烈推荐)

1、首先你的电脑必须下载与完成安装完成快快蓝屏修复助手。如果你还没有安装点击下方链接下载。

下载地址:>>>快快蓝屏修复助手<<<

提示:安装路径不要选择C盘,避免产生问题造成损失。

2、找到你电脑中的快快蓝屏修复助手,点击进入。看到首页后,点击首页一键扫描按钮开始扫描。等待几分钟,就能获取你急切想要的结果。

Windows蓝屏DRIVER_IRQL_NOT_LESS_OR_EQUAL修复教程

3、扫描完成后会显示电脑的所有蓝屏记录以及蓝屏的详细信息。

Windows蓝屏DRIVER_IRQL_NOT_LESS_OR_EQUAL修复教程

4、解决方案页面显示了导致该次蓝屏的具体原因和解决方案,点击右上角的一键修复进行修复。

Windows蓝屏DRIVER_IRQL_NOT_LESS_OR_EQUAL修复教程

5、切记,当修复完成之后我们还是需要重新启动计算机的。毕竟一切修复的结果,需要重新后,才能被系统认可。

Windows蓝屏DRIVER_IRQL_NOT_LESS_OR_EQUAL修复教程

当你完成重启后,你电脑的蓝屏问题已经基本解决了。相信小编,不要急需卸载快快蓝屏修复助手。毕竟它强大的功能是你未来的一个保障,可以随时随地为你服务,让你再次遇到蓝屏问题不在抓狂。

其他相关信息:

DRIVER_IRQL_NOT_LESS_OR_EQUAL bug 检查 的值为 0x000000D1。 这表示内核模式驱动程序在进程 IRQL 过高时尝试访问可分页内存。

DRIVER_IRQL_NOT_LESS_OR_EQUAL参数

参数 描述

1

引用的内存。

2

引用时 IRQL。

3

0 - 读取 1 - 写入 2 - 执行 8 - 执行

4

引用内存的地址。 使用 ln (列出此地址上) 最近的符号 以查看函数的名称。

原因

若要确定原因,需要 Windows 调试器、编程经验和对故障模块源代码的访问权限。

通常,发生此错误时,驱动程序尝试访问可分页 (地址或) 完全无效的地址,而中断请求级别 (IRQL) 过高。 这可能是由于

在 DISPATCH_LEVEL 或更高级别执行时,取消引用错误指针(例如 NULL 或释放的指针)。

在 DISPATCH_LEVEL 或更高级别访问可分页数据。

在 DISPATCH_LEVEL 或更高级别执行可分页代码。

如果可以识别出导致错误的驱动程序,则其名称将打印在蓝屏上,并存储在 内存中 KiBugCheckDriver (PUNICODE_STRING) 位置。 可以使用 dx (显示调试器对象模型表达式) (调试器命令)来显示此对象: dx KiBugCheckDriver

此 bug 检查通常是由使用不正确的内存地址的驱动程序引起的。

页面错误的可能原因包括以下事件

函数标记为可分页,并在提升的 IRQL (运行,其中包括获取锁) 。

函数调用是向另一个驱动程序中的函数进行的,并且该驱动程序已卸载。

该函数是使用作为无效指针的函数指针调用的。

有关 Windows IRQL 的详细信息,请参阅由 Pavel Yosifovich、Mark E. Russinovich、David A. Solomon 和 Alex Ionescu 撰写的 Windows Internals 第 7 版第 1 部分 。

解决方法

如果问题是由你正在开发的驱动程序引起的,请确保在出现 bug 时执行的函数检查为

未标记为可分页 不调用任何其他可以分页的内联函数。

!analyze 调试程序扩展显示有关 bug 检查的信息,有助于确定根本原因。 下面的示例是 !analyze 的输出。

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: fffff808add27150, memory referenced
Arg2: 0000000000000002, IRQL
Arg3: 0000000000000000, value 0 = read operation, 1 = write operation
Arg4: fffff808adc386a6, address which referenced memory

如果可以识别出导致错误的驱动程序,则其名称将打印在蓝屏上,并存储在 内存中 KiBugCheckDriver (PUNICODE_STRING) 位置。 可以使用一个调试器命令 dx(显示调试器对象模型表达式)来显示此内容:dx KiBugCheckDriver

0: kd> dx KiBugCheckDriver
KiBugCheckDriver                 : 0xffffc6092de892c8 : "Wdf01000.sys" [Type: _UNICODE_STRING *]

如果转储文件中提供了陷阱帧,请使用 .trap 命令将上下文设置为提供的地址。

若要开始调试此类 bug 检查,请使用 kkbkckdkpkPkv (显示堆栈回溯) 命令来检查堆栈跟踪。

在调试器中,运行 !irql 命令,在调试器中断之前显示有关目标计算机上处理器 IRQL 的信息。 例如

0: kd> !irql
Debugger saved IRQL for processor 0x0 -- 2 (DISPATCH_LEVEL)

在大多数此类 bug 检查的情况下,问题不在于 IRQL 级别,而在于正在访问的内存。

由于此 bug 检查通常是由使用不正确内存地址的驱动程序引起的,因此请使用参数 1、3 和 4 进一步调查。

使用 ln (列出参数 4) 最近的符号 以查看调用的函数的名称。 此外,检查 !analyze 输出以查看是否已识别出错误代码。

使用参数 1 地址上的 !pool 查看它是否为分页池。 使用 !address 和高级 !pte 命令了解有关此内存区域的详细信息。

使用 显示内存 命令检查参数 1 中的命令中引用的内存。

使用 uubuu (unassemble) 命令查看引用参数 4 中内存的地址中的代码。

使用 命令 lm t n 列出内存中加载的模块。 使用 !memusage 和 检查系统内存的一般状态。

驱动程序验证程序

驱动程序验证程序是一个实时运行的工具,用于检查驱动程序的行为。 例如,驱动程序验证程序检查内存资源(如内存池)的使用。 如果在执行驱动程序代码时标识错误,它会主动创建一个异常,以允许进一步检查该部分驱动程序代码。 驱动程序验证程序管理器内置于 Windows 中,可在所有 Windows 电脑上使用。

若要启动驱动程序验证程序管理器,请在命令提示符下键入 验证程序 。 你可以配置要验证的驱动程序。 验证驱动程序的代码在运行时会增加开销,因此请尝试验证尽可能少的驱动程序。 有关详细信息,请参阅驱动程序验证程序。

备注

如果你没有能力使用 Windows 调试器来解决此问题,则可以使用一些基本的故障排除技术。

在系统登录事件查看器中查看其他错误消息,这些错误消息可能有助于识别导致此 bug 的设备或驱动程序检查。

如果驱动程序标识在错误检查消息中,禁用该驱动程序或咨询驱动程序更新的制造商。

确认安装的任何新硬件都与已安装的 Windows 版本兼容。 例如,可以在Windows 10规范中获取有关所需硬件的信息。

有关其他常规疑难解答信息,请参阅蓝屏数据。

驱动下载排行