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

电脑提示DRIVER_VERIFIER_DMA_VIOLATION蓝屏修复方法

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

蓝屏代码0x000000E6表示"DRIVER_VERIFIER_DMA_VIOLATION",这意味着在进行驱动程序验证过程中发生了一次DMA(直接内存访问)违规。出现此错误可能是因为某个设备驱动程序不正确地使用了DMA功能,导致系统崩溃并显示蓝屏错误。

电脑提示DRIVER_VERIFIER_DMA_VIOLATION蓝屏修复方法

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

方法一:扫描系统文件

运行命令提示符并作为管理员运行sfc /scannow命令,以检查和修复本地文件系统中的任何损坏。

方法二:清理并重新安装集成外设驱动程序

有时候,集成外设的驱动程序可能会导致此错误,尝试清除设备及其驱动程序,并重新安装它们。

方法三:运行内存测试工具

有时,故障的内存模块可能会导致该错误,运行一个可靠的内存测试工具,如Memtest86+,来检查是否存在内存问题。

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

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

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

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

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

电脑提示DRIVER_VERIFIER_DMA_VIOLATION蓝屏修复方法

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

电脑提示DRIVER_VERIFIER_DMA_VIOLATION蓝屏修复方法

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

电脑提示DRIVER_VERIFIER_DMA_VIOLATION蓝屏修复方法

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

电脑提示DRIVER_VERIFIER_DMA_VIOLATION蓝屏修复方法

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

其他相关信息:

DRIVER_VERIFIER_DMA_VIOLATION bug 检查 的值为 0x000000E6。 这是所有驱动程序验证程序 DMA 验证冲突的 bug 检查代码。

注意

未启用驱动程序验证程序时,可以观察到 E6 主要 bug 检查代码。 如果在未启用驱动程序验证程序的情况下遇到此代码,请参阅 DMA 验证页以获取详细信息。

DRIVER_VERIFIER_DMA_VIOLATION参数

参数 1 是唯一感兴趣的参数。 此参数标识确切的冲突。 如果附加了调试器,调试器中会显示一条信息性消息。

参数 1 错误原因和调试器消息

0x00 - 杂项 DMA 错误。

此代码可以表示参数 2 所指示的两种错误

0x1 - 驱动程序尝试将过多字节刷新到映射寄存器文件的末尾。

参数 3 - MDL 中剩余的字节数。

参数 4 - 请求刷新的剩余字节数。

0x2 - Windows 已用完连续映射寄存器。

参数 3 - 需要映射寄存器。

参数 4 - 连续映射寄存器的数目。

0x01

性能计数器已减少。 将显示计数器的旧值和新值。

0x02

性能计数器增长过快。 计数器值显示在调试器中。

0x03

驱动程序释放了过多的 DMA 通用缓冲区。 通常,这意味着它释放了同一缓冲区两次。

参数 2 - 释放的额外通用缓冲区数。

0x04

驱动程序释放了过多的 DMA 适配器通道。 通常这意味着它释放了同一个适配器通道两次。

参数 2 - 释放的额外适配器通道数。

0x05

驱动程序释放了过多的 DMA 地图寄存器。 通常,这意味着它释放了同一映射寄存器两次。

参数 2 - 释放的额外映射寄存器数。

0x06

驱动程序释放了过多的 DMA 散点/收集列表。 通常,这意味着它释放了两次相同的散点/收集列表。

参数 2 - 分配的散点-收集列表。

参数 3 - 释放的散点集合列表。

0x07

驱动程序尝试释放适配器,但未首先释放其所有通用缓冲区。

参数 2 - 指向 DMA 适配器的指针。

参数 3 - 未完成的通用缓冲区数。

参数 4 - 指向相应内部验证程序数据的指针。

0x08

驱动程序尝试释放适配器,但未首先释放所有适配器通道、公共缓冲区或散点/收集列表。

参数 2 - 指向 DMA 适配器的指针。

参数 3 - 未完成的适配器通道数。

参数 4 - 指向相应内部验证程序数据的指针。

0x09

驱动程序尝试释放适配器,但未首先释放所有映射寄存器。

参数 2 - 指向 DMA 适配器的指针。

参数 3 - 未完成的映射寄存器数。

参数 4 - 指向相应内部验证程序数据的指针。

0x0A

驱动程序尝试释放适配器,但未首先释放其所有散点/收集列表。

参数 2 - 指向 DMA 适配器的指针。

参数 3 - 未完成的散点集合列表的数目。

参数 4 - 指向相应内部验证程序数据的指针。

0x0B

驱动程序同时分配了过多的适配器通道 (每个适配器只允许一个适配器通道。)

参数 2 - 未完成的适配器通道。

0x0C

驱动程序尝试同时分配过多的映射寄存器。

参数 2 - 所需的映射寄存器。

参数 3 - 最大映射寄存器数。

0x0D

驱动程序未刷新其适配器缓冲区。

参数 2 - 映射的字节数。

参数 3 - 一次可以映射的最大字节数。

0x0E

驱动程序在没有锁定缓冲区的情况下尝试了 DMA 传输。 有问题的缓冲区位于分页内存中。

参数 2 - DMA 缓冲区 MDL 的地址。

0x0F

驱动程序或硬件在其分配的 DMA 缓冲区之外写入。 参数 2 是冲突代码。

0x01 :修改 DMA 缓冲区之前的标记。预期的标记为 DmaVrfy0。

参数 3 - 缓冲区长度。

参数 4 - 缓冲区启动。

0x02 :修改 DMA 缓冲区后的标记。

预期的标记为 DmaVrfy0。

参数 3 - 缓冲区长度。

参数 4 - 缓冲区启动。

0x03:覆盖了免费地图寄存器。

参数 3 - 损坏地址。 预期填充模式0x0F。

0x04:在缓冲区被错误修改之前进行填充。

参数 3 - 缓冲区启动。 预期填充0x0F。

参数 4 - 损坏地址。

0x05:缓冲区被错误修改后的填充。

参数 3 - 缓冲区启动。

参数 4 - 损坏地址。 预期填充模式0x0F。

0x10

司机试图释放其地图寄存器,而有些寄存器仍然被映射。

参数 2 - 仍映射的寄存器数。

0x11

驱动程序具有太多未完成的适配器引用计数。

参数 2 - 引用计数。

参数 3 - 指向 DMA 适配器的指针。

参数 4 - 指向相应内部验证程序数据的指针。

0x13

驱动程序在不正确的 IRQL 中调用 DMA 例程。 参数 2 是冲突代码。

0x01:当前 IRQL 与预期不同。

参数 3 - 预期的 IRQL。

参数 4 - 当前 IRQL。

0x02:当前 IRQL 高于预期。

参数 3 - 预期的最大 IRQL。

参数 4 - 当前 IRQL。

0x14

驱动程序在不正确的 IRQL 中调用 DMA 例程。

0x15

驱动程序尝试分配过多的映射寄存器。

参数 2 - 分配的映射寄存器。

参数 3 - 最大映射寄存器数。

0x16

驱动程序尝试刷新未映射的缓冲区。

参数 2 - 映射寄存器的系统虚拟空间中的地址。

参数 3 - 指向相应的内部验证程序数据的指针。

0x18

驱动程序尝试使用已释放且不再存在的适配器执行 DMA 操作。

参数 2 - 指向 DMA 适配器的指针。

参数 3 - 指向相应的内部验证程序数据的指针。

0x19

驱动程序将 null DMA_ADAPTER 值传递给 HAL 例程。

0x1B

驱动程序将地址和 MDL 传递给 HAL 例程。 但是,此地址不在此 MDL 的边界内。

参数 2 - 超出 MDL 边界的虚拟地址。

参数 3 - MDL。

0x1D

驱动程序尝试映射已映射的地址范围。

参数 2 - 映射开始的缓冲区。

参数 3 - 映射末尾的缓冲区。

参数 4 - 已映射的缓冲区中的系统地址。

0x1E

名为 HalGetAdapter 的驱动程序。 此函数已过时 -- 必须改用 IoGetDmaAdapter

0x1F

无效的 DMA 缓冲区。 驱动程序引用了无效的系统地址 -- 在第一个 MDL 之前或第一个 MDL 的末尾之后,或者通过使用比 MDL 缓冲区长且跨越 MDL 中的页边界的传输长度。Parameter 2 是冲突代码。

0x01 :虚拟缓冲区地址位于第一个 MDL 之前。

参数 3 - DMA 缓冲区开始的虚拟地址。

参数 4 - 指向描述 DMA 缓冲区的第一个 MDL 的指针。

0x02:虚拟地址位于第一个 MDL 之后。

参数 3 - DMA 缓冲区开始的虚拟地址。

参数 4 - 指向描述 DMA 缓冲区的第一个 MDL 的指针。

0x03:额外的传输长度将跨越页面边界。

参数 3 - 指向描述 DMA 缓冲区的 MDL 的指针。

参数 4 - DMA 传输的长度。

0x04:DMA 缓冲区的虚拟地址未对齐缓存。

参数 3 - DMA 缓冲区开始的虚拟地址。

参数 4 - 指向描述 DMA 缓冲区的 MDL 的指针。

0x05:DMA 缓冲区长度未对齐缓存。

参数 3 - DMA 缓冲区的长度。

参数 4 - 指向描述 DMA 缓冲区的 MDL 的指针。

0x20

驱动程序尝试刷新尚未映射的映射寄存器。

参数 2 - 映射寄存器基。

参数 3 - DMA 缓冲区开头的 VA。

参数 4 - 指向用于描述 DMA 缓冲区的 MDL 的指针。

0x21

驱动程序尝试映射零长度缓冲区以用于传输。

参数 2 - 指向相应的内部验证程序数据的指针。

0x22

DMA 缓冲区未在系统 VA 中映射。

参数 2 - MDL

0x23

无法刷新尚未完成或取消的通道。

参数 2 - 冲突代码。

值:0x00:非法通道刷新

参数 3 - 控制器 ID。

参数 4 - 通道编号。

0x24

请求的长度缓冲区不足。

参数 2 - 未记入的长度。

0x25

未知的设备说明版本。

0x26

IOMMU 检测到 DMA 冲突。

参数 2 - 故障设备的 Device 对象。

参数 3 - 故障信息 (通常会) 物理地址出错。

参数 4 - 故障类型 (特定于硬件的) 。

原因

有关原因的说明,请参阅参数部分中每个代码的说明。

解决方法

仅当驱动程序验证程序已指示监视一个或多个驱动程序时,才会发生此 bug 检查。 如果不打算使用驱动程序验证程序,则应停用它。 还可以考虑删除导致此问题的驱动程序。

如果你是驱动程序编写者,请使用通过此 bug 检查获取的信息来修复代码中的 bug。

有关驱动程序验证程序的详细信息,请参阅 驱动程序验证程序。

驱动下载排行