电脑蓝屏提示代码DRIVER_VERIFIER_DETECTED_VIOLATION怎么办

小编:小丢 更新时间:2023-08-12 12:07

蓝屏代码0x000000C4代表"DRIVER_VERIFIER_DETECTED_VIOLATION",这意味着Windows驱动程序验证器检测到了一个违规情况导致系统崩溃。驱动程序验证器是Windows中的一个工具,用于检测和识别驱动程序中的错误或问题。当发现一个被验证的驱动程序在执行期间出现问题时,系统会产生此错误代码的蓝屏。

电脑蓝屏提示代码DRIVER_VERIFIER_DETECTED_VIOLATION怎么办
快快蓝屏修复助手
文件大小:5.70 MB软件平台:WinAll

快快蓝屏修复助手可以帮你修复各类蓝屏异常和错误问题,能快速检测软件、硬件和驱动故障。分析蓝屏日志。

立即下载

电脑蓝屏提示代码DRIVER_VERIFIER_DETECTED_VIOLATION怎么办

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

方法一:检查硬件兼容性

蓝屏错误可能是由于硬件与驱动程序不兼容而引起的,你可以查看硬件制造商的官方网站,以确保硬件兼容性,并下载适用于你的操作系统的驱动程序。

方法二:检查硬件故障

有时候蓝屏错误也可能是由于硬件故障引起的,您可以尝试检查和重新连接计算机中的硬件设备,如内存条、硬盘等,或者运行Windows自带的硬件诊断工具来检测是否存在硬件问题。

方法三:执行系统还原

如果您在遇到该错误之前进行了系统更改或驱动程序更新,您可以尝试使用系统还原将计算机恢复到先前的工作状态。

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

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

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

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

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

电脑蓝屏提示代码DRIVER_VERIFIER_DETECTED_VIOLATION怎么办

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

电脑蓝屏提示代码DRIVER_VERIFIER_DETECTED_VIOLATION怎么办

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

电脑蓝屏提示代码DRIVER_VERIFIER_DETECTED_VIOLATION怎么办

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

电脑蓝屏提示代码DRIVER_VERIFIER_DETECTED_VIOLATION怎么办

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

其他相关信息:

DRIVER_VERIFIER_DETECTED_VIOLATION bug 检查 的值为 0x000000C4。 这是驱动程序验证程序发现的严重错误的常规 bug 检查代码。 有关详细信息,请参阅 启用驱动程序验证程序时处理 Bug 检查。

DRIVER_VERIFIER_DETECTED_VIOLATION参数

参数 1 标识冲突的类型。 其余参数的含义因参数 1 的值而异。 下表描述了参数值。

注意如果在查看此表中的所有 5 列时遇到问题,请尝试以下操作:

将浏览器窗口扩展到完整大小。 将光标置于表格中,并使用箭头键向左和向右滚动。

0x00 0x70

参数 1参数 2参数 3参数 4错误消息的原因
0x00当前 IRQL池类型字节数驱动程序请求了零字节池分配。
0x01当前 IRQL池类型分配大小(以字节为单位)驱动程序尝试使用 IRQL > APC_LEVEL分配分页内存。
0x02当前 IRQL池类型分配大小(以字节为单位)驱动程序尝试使用 IRQL > DISPATCH_LEVEL分配非分页内存。
0x03调用方正在尝试分配多个必须成功池的页面,但一个页面是此 API 允许的最大页数。
0x10错误地址00驱动程序尝试释放未从分配调用返回的地址。
0x11当前 IRQL池类型池的地址驱动程序尝试使用 IRQL > APC_LEVEL释放分页池。
0x12当前 IRQL池类型池的地址驱动程序尝试使用 IRQL > DISPATCH_LEVEL释放非分页池。
0x13 或 0x14保留指向池标头的指针池标头内容驱动程序尝试释放已释放的内存池。
0x15计时器条目池类型正在释放的池地址调用方尝试释放的池包含活动计时器。
0x16保留池地址0驱动程序尝试释放错误地址处的池,或驱动程序将无效参数传递给内存例程。
0X17资源条目池类型正在释放的池地址调用方尝试释放的池包含活动的 ERESOURCE。
0x30当前 IRQL请求的 IRQL0驱动程序将无效参数传递给 KeRaiseIrql。 (参数是低于当前 IRQL 的值,或高于 HIGH_LEVEL 的值。这可能是使用未初始化的 parameter.)
0x31当前 IRQL请求的 IRQL0:新 IRQL 错误 1:新 IRQL 在 DPC 例程中无效驱动程序将无效参数传递给 KeLowerIrql。 (参数的值高于当前 IRQL 或高于 HIGH_LEVEL。这可能是使用未初始化的 parameter.)
0x32当前 IRQL旋转锁地址0驱动程序在除 DISPATCH_LEVEL 以外的 IRQL 中调用 KeReleaseSpinLock 。 (这可能是由于旋转锁的双重释放。)
0x33当前 IRQL快速互斥地址0驱动程序尝试使用 IRQL > APC_LEVEL获取快速互斥。
0x34当前 IRQL线程 APC 禁用计数快速互斥地址驱动程序尝试在除 APC_LEVEL 之外的 IRQL 处释放快速互斥。
0x35当前 IRQL旋转锁地址旧 IRQL内核释放了 IRQL 不等于 DISPATCH_LEVEL 的旋转锁。
0x36当前 IRQL旋转锁号旧 IRQL内核释放了 IRQL 不等于DISPATCH_LEVEL的排队旋转锁。
0x37当前 IRQL线程 APC 禁用计数资源驱动程序尝试获取资源,但未禁用 APC。
0x38当前 IRQL线程 APC 禁用计数资源驱动程序尝试释放资源,但未禁用 APC。
0x39当前 IRQL线程 APC 禁用计数Mutex驱动程序尝试获取一个互斥体“不安全”,IRQL 不等于输入时APC_LEVEL。
0x3A当前 IRQL线程 APC 禁用计数Mutex驱动程序尝试释放互斥体“不安全”,IRQL 不等于输入时APC_LEVEL。
0x3B当前 IRQL要等待的对象超时参数KeWaitXxx 例程在 DISPATCH_LEVEL 或更高版本调用。
0x3C传递给例程的句柄对象类型0驱动程序使用错误的句柄调用 ObReferenceObjectByHandle 。
0x3D00错误资源的地址驱动程序将错误的 (未对齐) 资源传递给 ExAcquireResourceExclusive。
0x3E000驱动程序为当前不在关键区域中的线程调用 KeLeaveCriticalRegion 。
0x3F对象地址新的对象引用计数。 -1:取消引用案例 1:引用案例0驱动程序将 ObReferenceObject 应用于引用计数为零的对象,或驱动程序将 ObDereferenceObject 应用于引用计数为零的对象。
0x40当前 IRQL旋转锁地址0驱动程序使用 IRQL < DISPATCH_LEVEL调用 KeAcquireSpinLockAtDpcLevel。
0x41当前 IRQL旋转锁地址0驱动程序使用 IRQL < DISPATCH_LEVEL调用 KeReleaseSpinLockFromDpcLevel。
0x42当前 IRQL旋转锁地址0驱动程序使用 IRQL > DISPATCH_LEVEL调用 KeAcquireSpinLock。
0x51分配的基址超出分配的引用的地址收费字节数驱动程序在写入到分配结束之后尝试释放内存。 仅当驱动程序验证程序的“池跟踪”选项处于活动状态时,才会使用此参数检查 bug。
0x52分配的基址哈希条目收费字节数驱动程序在写入到分配结束之后尝试释放内存。 仅当驱动程序验证程序的“池跟踪”选项处于活动状态时,才会使用此参数检查 bug。
0x53分配的基址标头保留驱动程序在写入到分配结束之后尝试释放内存。 仅当驱动程序验证程序的“池跟踪”选项处于活动状态时,才会使用此参数检查 bug。
0x54分配的基址保留池哈希大小驱动程序在写入到分配结束之后尝试释放内存。 仅当驱动程序验证程序的“池跟踪”选项处于活动状态时,才会使用此参数检查 bug。
0x59分配的基址Listindex保留驱动程序在写入到分配结束之后尝试释放内存。 仅当驱动程序验证程序的“池跟踪”选项处于活动状态时,才会使用此参数检查 bug。
0x60从分页池分配的字节数从非分页池分配的字节数未释放的分配总数驱动程序正在卸载,但未首先释放其池分配。 仅当驱动程序验证程序的“池跟踪”选项处于活动状态时,才会使用此参数检查 bug。
0x61从分页池分配的字节数从非分页池分配的字节数未释放的分配总数驱动程序线程正在尝试在驱动程序卸载时分配池内存。 仅当驱动程序验证程序的“池跟踪”选项处于活动状态时,才会使用此参数检查 bug。
0x62驱动程序的名称保留未释放的分配总数,包括分页池和非分页池驱动程序正在卸载,但未首先释放其池分配。 仅当驱动程序验证程序的“池跟踪”选项处于活动状态时,才会使用此参数检查 bug。 键入 !verifier 3 drivername.sys,获取有关导致 bug 检查的已泄漏分配的信息。
0x6FMDL 地址物理页面被锁定系统中最高的物理页在不在 PFN 数据库中的页面上调用 MmProbeAndLockPages。 这通常是调用此例程以锁定其自己的专用双端口 RAM 的驱动程序。 这不仅不需要这样做,而且还会损坏具有不连续物理 RAM 的计算机上的内存。

0x70 0x91

参数 1参数 2参数 3参数 4错误消息的原因
0x70当前 IRQLMDL 地址访问模式驱动程序使用 IRQL > DISPATCH_LEVEL调用了 MmProbeAndLockPages。
0x71当前 IRQLMDL 地址进程地址驱动程序使用 IRQL > DISPATCH_LEVEL调用 MmProbeAndLockProcessPages。
0x72当前 IRQLMDL 地址进程地址驱动程序使用 IRQL > DISPATCH_LEVEL调用 MmProbeAndLockSelectedPages。
0x73当前 IRQL在 32 位 Windows 中:物理地址的低 32 位在 64 位 Windows 中:64 位物理地址字节数驱动程序使用 IRQL > DISPATCH_LEVEL调用 MmMapIoSpace。
0x74当前 IRQLMDL 地址访问模式驱动程序在内核模式下使用 IRQL > DISPATCH_LEVEL调用 MmMapLockedPages。
0x75当前 IRQLMDL 地址访问模式驱动程序在用户模式下使用 IRQL > APC_LEVEL调用 MmMapLockedPages。
0x76当前 IRQLMDL 地址访问模式驱动程序在内核模式下使用 IRQL > DISPATCH_LEVEL调用 MmMapLockedPagesSpecifyCache。
0x77当前 IRQLMDL 地址访问模式驱动程序在用户模式下使用 IRQL > APC_LEVEL调用 MmMapLockedPagesSpecifyCache。
0x78当前 IRQLMDL 地址0驱动程序使用 IRQL > DISPATCH_LEVEL调用 MmUnlockPages。
0x79当前 IRQL正在取消映射的虚拟地址MDL 地址驱动程序在内核模式下使用 IRQL > DISPATCH_LEVEL调用 MmUnmapLockedPages。
0x7A当前 IRQL正在取消映射的虚拟地址MDL 地址驱动程序在用户模式下使用 IRQL > APC_LEVEL调用 MmUnmapLockedPages。
0x7B当前 IRQL正在取消映射的虚拟地址字节数驱动程序使用 IRQL > APC_LEVEL调用 MmUnmapIoSpace。
0x7CMDL 地址MDL 标志0驱动程序调用 MmUnlockPages,并传递了一个 MDL,该 MDL 的页面从未成功锁定。
0x7DMDL 地址MDL 标志0驱动程序名为 MmUnlockPages,并传递了一个 MDL,该 MDL 的页面来自非分页池。 (这些永远不应解锁。)
0x7E当前 IRQLDISPATCH_LEVEL0名为 MmAllocatePagesForMdl、 MmAllocatePagesForMdlEx 或 MmFreePagesFromMdl 的驱动程序与 IRQL > DISPATCH_LEVEL。
0x7F当前 IRQLMDL 地址MDL 标志驱动程序名为 BuildMdlForNonPagedPool ,并传递了一个 MDL,该 MDL 的页面来自分页池。
0x80当前 IRQL事件地址0驱动程序使用 IRQL > DISPATCH_LEVEL调用 KeSetEvent。
0x81MDL 地址MDL 标志0名为 MmMapLockedPages 的驱动程序。 (应改用 MmMapLockedPagesSpecifyCache ,并将 BugCheckOnFailure 参数设置为 FALSE.)
0x82MDL 地址MDL 标志0驱动程序名为 MmMapLockedPagesSpecifyCache ,BugCheckOnFailure 参数等于 TRUE。 (此参数应设置为 FALSE.)
0x83开始映射的物理地址范围要映射的字节数未锁定的第一页帧编号驱动程序名为 MmMapIoSpace ,但未锁定 MDL 页面。 在进行此调用之前,由映射的物理地址范围表示的物理页面必须已锁定。
0x85MDL 地址要映射的页数未锁定的第一页帧编号驱动程序名为 MmMapLockedPages ,但未锁定 MDL 页面。
0x89MDL 地址指向 MDL 中非内存页的指针MDL 中的非内存页码MDL 未标记为“I/O”,但它包含非内存页地址。
0x91预留预留预留驱动程序使用操作系统不支持的方法切换堆栈。 扩展内核模式堆栈的唯一支持方法是使用 KeExpandKernelStackAndCallout。

0xA0 0x140

参数 1参数 2参数 3参数 4错误消息的原因
0xA0指向发出读取或写入请求的 IRP 的指针较低设备的设备对象检测到错误的扇区数在硬盘上检测到循环冗余检查 (CRC) 错误。 仅当驱动程序验证程序的磁盘完整性检查选项处于活动状态时,才会使用此参数检查 bug。
0xA1发出读取或写入请求的 IRP 的副本。 (实际 IRP 已完成。)较低设备的设备对象检测到错误的扇区数在扇区上检测到 CRC 错误, (异步) 。 仅当驱动程序验证程序的磁盘完整性检查选项处于活动状态时,才会使用此参数检查 bug。
0xA2发出读取或写入请求的 IRP,或此 IRP 的副本较低设备的设备对象检测到错误的扇区数CRCDISK 校验和副本不匹配。 这可能是分页错误。 仅当驱动程序验证程序的磁盘完整性检查选项处于活动状态时,才会使用此参数检查 bug。
0xB0MDL 地址MDL 标志MDL 标志不正确驱动程序调用 MmProbeAndLockPages 的 MDL 具有不正确的标志。 例如,驱动程序将 MmBuildMdlForNonPagedPool 创建的 MDL 传递给 MmProbeAndLockPages。
0xB1MDL 地址MDL 标志MDL 标志不正确驱动程序调用 MmProbeAndLockProcessPages 的 MDL 具有不正确的标志。 例如,驱动程序将 MmBuildMdlForNonPagedPool 创建的 MDL 传递给 MmProbeAndLockProcessPages。
0xB2MDL 地址MDL 标志MDL 标志不正确对于具有错误标志的 MDL,驱动程序名为 MmMapLockedPages 。 例如,驱动程序传递了已映射到系统地址或未锁定到 MmMapLockedPages 的 MDL。
0xB3MDL 地址MDL 标志缺少 MDL 标志 (预计至少有一个)对于具有错误标志的 MDL,驱动程序名为 MmMapLockedPages 。 例如,驱动程序传递的 MDL 未锁定到 MmMapLockedPages。
0xB4MDL 地址MDL 标志意外的部分 MDL 标志对于部分 MDL,驱动程序名为 MmUnlockPages 。 部分 MDL 是由 IoBuildPartialMdl 创建的。
0xB5MDL 地址MDL 标志意外的部分 MDL 标志使用 IoBuildPartialMdl) 创建的部分 MDL (调用 MmUnmapLockedPages。
0xB6MDL 地址MDL 标志缺少 MDL 标志在未映射到系统地址的 MDL 上调用的 MmUnmapLockedPages。
0xB7损坏的物理页数。第一个损坏的物理页。上次损坏的物理页。系统 BIOS 在睡眠转换期间损坏了低物理内存。
0xB8MDL 地址MDL 标志保留仍会映射由 MDL 描述的页面。 在调用 IoFreeMdl 之前,驱动程序必须取消映射页面。
0xB9未映射的地址。MDL 地址。保留调用的 MmUnmapLockedPages 的用户空间地址不正确。
0xC0IRP 的地址0保留名为 IoCallDriver 的 驱动程序,其中禁用了中断。
0xC1驱动程序调度例程的地址预留预留返回驱动程序调度例程时禁用了中断。
0xC2000禁用中断后,驱动程序调用了快速 I/O 调度例程。
0xC3驱动程序快速 I/O 调度例程的地址预留预留已返回驱动程序快速 I/O 调度例程,但中断已禁用。
0xC5驱动程序调度例程的地址当前线程的 APC 禁用计数线程的 APC 在调用驱动程序调度例程之前禁用计数驱动程序调度例程已更改线程的 APC 禁用计数。 每次驱动程序调用 KeEnterCriticalRegion、 FsRtlEnterFileSystem 或获取互斥体时,APC 禁用计数都会递减。 每次驱动程序调用 KeLeaveCriticalRegion、 KeReleaseMutex 或 FsRtlExitFileSystem 时,APC 禁用计数都会递增。 由于这些调用应始终成对,因此每当线程退出时,APC 禁用计数应为零。 负值表示驱动程序已禁用 APC 调用而不重新启用它们。 正值表示反之,则为 true。
0xC6驱动程序快速 I/O 调度例程的地址当前线程的 APC 禁用计数线程的 APC 在调用快速 I/O 驱动程序调度例程之前禁用计数驱动程序快速 I/O 调度例程已更改线程的 APC 禁用计数。 每次驱动程序调用 KeEnterCriticalRegion、 FsRtlEnterFileSystem 或获取互斥体时,APC 禁用计数都会递减。 每次驱动程序调用 KeLeaveCriticalRegion、 KeReleaseMutex 或 FsRtlExitFileSystem 时,APC 禁用计数都会递增。 由于这些调用应始终成对,因此每当线程退出时,APC 禁用计数应为零。 负值表示驱动程序已禁用 APC 调用而不重新启用它们。 正值表示反之,则为 true。
0xCA旁观列表的地址预留预留驱动程序已尝试重新初始化查看列表。
0xCB旁观列表的地址预留预留驱动程序尝试删除未初始化的 lookaside 列表。
0xCC旁观列表的地址池分配的起始地址池分配的大小驱动程序已尝试释放包含活动查看列表的池分配。
0xCD旁观列表的地址调用方指定的块大小支持的最小块大小驱动程序尝试创建分配块大小过小的旁观列表。
0xD0ERESOURCE 结构的地址预留预留驱动程序已尝试重新初始化 ERESOURCE 结构。
0xD1ERESOURCE 结构的地址预留预留驱动程序尝试删除未初始化的 ERESOURCE 结构。
0xD2ERESOURCE 结构的地址池分配的起始地址池分配的大小驱动程序已尝试释放包含活动 ERESOURCE 结构的池分配。
0xD5由驱动程序的已检查内部版本创建的 IO_REMOVE_LOCK 结构的地址当前 IoReleaseRemoveLock 标记保留当前的 IoReleaseRemoveLock 标记与以前的 IoAcquireRemoveLock 标记不匹配。 如果调用 IoReleaseRemoveLock 的驱动程序不在已检查的内部版本中,则参数 2 是驱动程序验证程序代表驱动程序创建的影子IO_REMOVE_LOCK结构的地址。 在这种情况下,驱动程序使用的 IO_REMOVE_LOCK 结构的地址根本不使用,因为驱动程序验证程序将替换所有删除锁 API 的锁地址。 仅当驱动程序验证程序的 I/O 验证选项处于活动状态时,才会发生带有此参数的 bug 检查。
0xD6由驱动程序的已检查内部版本创建的 IO_REMOVE_LOCK 结构的地址与以前的 IoAcquireRemoveLock 标记不匹配的标记以前的 IoAcquireRemoveLock 标记当前的 IoReleaseRemoveLockAndWait 标记与以前的 IoAcquireRemoveLock 标记不匹配。 如果调用 IoReleaseRemoveLock 的驱动程序不是经检查的内部版本,则参数 2 是驱动程序验证程序代表驱动程序创建的影子IO_REMOVE_LOCK结构的地址。 在这种情况下,驱动程序使用的 IO_REMOVE_LOCK 结构的地址根本不使用,因为驱动程序验证程序将替换所有删除锁 API 的锁地址。 仅当驱动程序验证程序的 I/O 验证选项处于活动状态时,才会发生带有此参数的 bug 检查。
0xD7驱动程序验证程序在内部使用的已检查内部版本的地址(删除锁定结构)驱动程序指定的 Remove Lock 结构的地址保留即使调用 IoReleaseRemoveLockAndWait 后,Remove Lock 也无法重新初始化,因为其他线程可能仍通过调用 IoAcquireRemoveLock) 来使用该锁 (。 驱动程序应在其设备扩展内分配 Remove Lock,并初始化它一次。 锁将与设备扩展一起删除。
0xDA驱动程序的起始地址驱动程序内的 WMI 回调地址保留尝试卸载尚未取消注册其 WMI 回调函数的驱动程序。
0xDB设备对象的地址预留预留尝试删除未从 WMI 取消注册的设备对象。
0xDC预留预留预留将无效的 RegHandle 值指定为函数 EtwUnregister 的参数。
0xDD调用 EtwRegister 的地址卸载驱动程序的起始地址对于 Windows 8 及更高版本,此参数是 ETW RegHandle 值。尝试在不调用 EtwUnregister 的情况下卸载驱动程序。
0xDF同步对象地址00同步对象位于会话地址空间中。 会话地址空间中不允许同步对象,因为它们可以从另一个会话或没有会话虚拟地址空间的系统线程进行操作。
0xE0用作参数的用户模式地址用作参数的地址范围的大小(以字节为单位)保留调用了指定用户模式地址作为参数的操作系统内核函数。
0xE1同步对象的地址预留预留发现同步对象的地址无效或可分页。
0xE2IRP 的地址IRP 中存在的用户模式地址保留发现 Irp-RequestorMode> 设置为 KernelMode 的 IRP 具有用户模式地址作为其成员之一。
0xE3调用 API 的地址在 API 中用作参数的用户模式地址保留驱动程序调用了使用用户模式地址作为参数的内核模式 ZwXxx 例程。
0xE4调用 API 的地址格式不正确的UNICODE_STRING结构的地址保留驱动程序调用了一个内核模式 ZwXxx 例程,该例程使用格式不正确的UNICODE_STRING结构作为参数。
0xE5当前 IRQL预留预留在错误的 IRQL 下调用了内核 API。
0xE6进行 Zw API 调用的驱动程序内的地址当前 IRQL特殊内核 APC。未在 IRQL = PASSIVE_LEVEL 且启用了特殊内核 APC 的情况下调用内核 Zw API。
0xEA当前 IRQL线程的 APC 禁用计数推送锁的地址驱动程序尝试在启用 APC 时获取推送锁。
0xEB当前 IRQL线程的 APC 禁用计数推送锁的地址驱动程序尝试在启用 APC 时释放一个推送锁。
0xF0目标缓冲区的地址源缓冲区的地址要复制的字节数一个调用 memcpy 函数的驱动程序,其中包含重叠的源缓冲区和目标缓冲区。
0xF5NULL 句柄的地址对象类型保留驱动程序将 NULL 句柄传递给 ObReferenceObjectByHandle。
0xF6处理被引用的值当前进程的地址执行错误引用的驱动程序内的地址驱动程序将用户模式句柄引用为内核模式。
0xF7由调用方指定的句柄值调用方指定的对象类型调用方指定的 AccessMode驱动程序正在尝试在系统进程的上下文中对内核句柄进行用户模式引用。
0xFA完成例程地址。调用完成例程之前的 IRQL 值调用完成例程后的当前 IRQL 值IRP 完成例程返回的 IRQL 不同于调用该例程的 IRQL。
0xFB完成例程地址当前线程的 APC 禁用计数线程的 APC 在调用 IRP 完成例程之前禁用计数线程的 APC 禁用计数已由驱动程序的 IRP 完成例程更改。 每次驱动程序调用 KeEnterCriticalRegion、 FsRtlEnterFileSystem 或获取互斥体时,APC 禁用计数都会递减。 每次驱动程序调用 KeLeaveCriticalRegion、 KeReleaseMutex 或 FsRtlExitFileSystem 时,APC 禁用计数都会递增。 由于这些调用应始终成对,因此每当线程退出时,APC 禁用计数应为零。 负值表示驱动程序已禁用 APC 调用而不重新启用它们。 正值表示反之,则为 true。
0xFC进行错误 API 调用的驱动程序内的地址。提供了 ApcContext 值。保留使用不支持的 ApcContext 值从内核模式) 调用 ZwNotifyChangeKey (。

0x105 0x140

参数 1参数 2参数 3参数 4错误消息的原因
0x105IRP 的地址00驱动程序使用 ExFreePool 而不是 IoFreeIrp 来释放 IRP。
0x10A000驱动程序尝试向空闲进程收取池配额费用。
0x10B000驱动程序尝试从 DPC 例程收取池配额费用。 这是不正确的,因为当前进程上下文未定义。
0x110中断服务例程的地址在执行 ISR 之前保存的扩展上下文的地址扩展上下文的地址在执行 ISR 后已保存驱动程序 (ISR) 中断服务例程损坏了扩展线程上下文。
0x111中断服务例程的地址执行 ISR 前的 IRQL执行 ISR 后的 IRQL中断服务例程返回了更改的 IRQL。
0x115负责关闭的线程的地址,该地址可能是死锁的。00驱动程序验证程序检测到系统花费的时间超过 20 分钟,并且关闭未完成。
0x11A当前 IRQL00驱动程序在 IRQL > APC_LEVEL调用 KeEnterCriticalRegion。
0x11B当前 IRQL00驱动程序在 IRQL > APC_LEVEL调用 KeLeaveCriticalRegion。
0x120IRQL 值的地址要等待的对象地址超时值的地址线程在 IRQL > DISPATCH_LEVEL等待。 KeWaitForSingleObject 或 KeWaitForMultipleObjects 的调用方必须在 IRQL <= DISPATCH_LEVEL 运行。
0x121IRQL 值的地址要等待的对象地址超时值的地址线程在 IRQL 处等待等于 DISPATCH_LEVEL,超时为 NULL。 KeWaitForSingleObject 或 KeWaitForMultipleObjects 的调用方可以在 IRQL <= DISPATCH_LEVEL 运行。 如果为 Timeout 提供了 NULL 指针,则调用线程将保持等待状态,直到对象收到信号。
0x122IRQL 值的地址要等待的对象地址超时值的地址线程在DISPATCH_LEVEL等待,超时值不等于零 (0) 。 如果 Timeout != 0,则 KeWaitForSingleObject 或 KeWaitForMultipleObjects 的调用方必须在 IRQL <= APC_LEVEL 运行。
0x123要等待的对象地址00KeWaitForSingleObject 或 KeWaitForMultipleObjects 的调用方将等待指定为 UserMode,但对象位于内核堆栈上。
0x130工作项的地址00工作项位于会话地址空间中。 不允许在会话地址空间中使用工作项,因为它们可以从另一个会话或从没有会话虚拟地址空间的系统线程进行操作。
0x131工作项的地址00工作项位于可分页内存中。 工作项必须位于不可分页内存中,因为内核在DISPATCH_LEVEL使用它们。
0x135IRP 地址IoCancelIrp 调用与完成此 IRP 之间允许的毫秒数0取消的 IRP 未在预期时间内完成。驱动程序完成取消的 IRP 所花费的时间比预期长。
0x13A正在释放的池块的地址值不正确错误值的地址驱动程序已调用 ExFreePool ,驱动程序验证程序在用于跟踪池使用情况的内部值之一中检测到错误。
0x13B正在释放的池块的地址错误值的地址指向错误内存页的指针的地址驱动程序已调用 ExFreePool ,驱动程序验证程序在用于跟踪池使用情况的内部值之一中检测到错误。
0x13C正在释放的池块的地址值不正确错误值的地址驱动程序已调用 ExFreePool ,驱动程序验证程序在用于跟踪池使用情况的内部值之一中检测到错误。
0x13D正在释放的池块的地址错误值的地址预期的正确值驱动程序已调用 ExFreePool ,驱动程序验证程序在用于跟踪池使用情况的内部值之一中检测到错误。
0x13E调用方指定的池块地址驱动程序验证程序跟踪的池块地址指向驱动程序验证程序跟踪的池块地址的指针ExFreePool 调用方指定的池块地址不同于驱动程序验证程序跟踪的地址。
0x13F正在释放的池块的地址正在释放的字节数指向驱动程序验证程序跟踪的字节数的指针调用 ExFreePool 时释放的内存字节数不同于驱动程序验证程序跟踪的字节数。
0x140当前 IRQLMDL 地址与此 MDL 关联的虚拟地址非锁定 MDL 是从可分页内存或可交易内存构造的。
0x141驱动程序请求分配的最高物理地址要分配的字节数0驱动程序显式请求的物理内存低于 4GB。

0x1000到0x100B - 死锁

参数 1参数 2参数 3参数 4错误消息的原因
0x1000资源的地址预留预留自死锁:当前线程尝试以递归方式以独占方式获取它仅拥有共享的资源。 仅当驱动程序验证程序的“死锁检测”选项处于活动状态时,才会发生带有此参数的 bug 检查。
0x1001死锁最终原因的资源的地址预留预留死锁:已发现锁层次结构冲突。 仅当驱动程序验证程序的“死锁检测”选项处于活动状态时,才会发生带有此参数的 bug 检查。 (使用 !deadlock 扩展了解更多信息。)
0x1002资源的地址预留预留未初始化的资源:已获取资源,但尚未先初始化。 仅当驱动程序验证程序的死锁检测选项处于活动状态时,才会使用此参数检查 bug。
0x1003正在释放死锁的资源的地址应先释放的资源的地址保留意外发布:资源已按不正确的顺序释放。 仅当驱动程序验证程序的死锁检测选项处于活动状态时,才会使用此参数检查 bug。
0x1004资源的地址获取资源的线程的地址当前线程的地址意外线程:错误的线程释放资源。 仅当驱动程序验证程序的死锁检测选项处于活动状态时,才会使用此参数检查 bug。
0x1005资源的地址预留预留多次初始化:一个资源多次初始化。 仅当驱动程序验证程序的死锁检测选项处于活动状态时,才会使用此参数检查 bug。
0x1007资源的地址预留预留未获取的资源:在获取资源之前释放资源。 仅当驱动程序验证程序的死锁检测选项处于活动状态时,才会使用此参数检查 bug。
0x1008锁地址预留预留驱动程序尝试通过使用此锁类型不匹配的 API 来获取锁。
0x1009锁地址预留预留驱动程序尝试使用此锁类型不匹配的 API 释放锁。
0x100A所有者线程地址保留终止的线程拥有锁。
0x100B锁地址所有者线程地址保留已删除的锁仍归线程所有。
0x1010向其发出写入 IRP 的设备对象。IRP 的地址。System-Space MDL 描述的缓冲区的虚拟地址。修改了写入 Irp 的固定 MDL 缓冲区内容。
0x1011向其发出写入 IRP 的设备对象。IRP 的地址。System-Space MDL 描述的缓冲区的虚拟地址。读取 Irp 的固定 MDL 缓冲区内容是在调度期间修改的,或由虚拟页面支持的缓冲区。
0x1012指向描述冲突的字符串的指针。如果未) 使用,则涉及此损坏的数据 (0。如果未) 使用,则涉及此损坏的数据 (0。验证程序扩展状态存储检测到损坏。
0x1013指向驱动程序对象的指针。指向捕获的原始 I/O 回调的指针。保留 (未使用的) 。验证程序在捕获的原始 I/O 回调中检测到内部损坏。

0x2000到0x2005 - 代码完整性问题

参数 1参数 2参数 3参数 4错误消息的原因
0x2000驱动程序代码中检测到错误的地址。池类型。池标记 ((如果) 提供)。代码完整性问题:调用方指定了可执行池类型。 (预期:NonPagedPoolNx)
0x2001驱动程序代码中检测到错误的地址。页面保护 (WIN32_PROTECTION_MASK) 。0代码完整性问题:调用方指定了可执行页保护。 预期 (:清除PAGE_EXECUTE* 位)
0x2002驱动程序代码中检测到错误的地址。页面优先级 (MM_PAGE_PRIORITY MdlMapping*) 在逻辑上 OR'd。0代码完整性问题:调用方指定了可执行的 MDL 映射。 预期 (:MdlMappingNoExecute)
0x2003图像文件名 (Unicode 字符串) 。节标头的地址。节名称 (UTF-8 编码字符串) 。代码完整性问题:映像包含可执行和可写部分。
0x2004图像文件名 (Unicode 字符串) 。节标头的地址。节名称 (UTF-8 编码字符串) 。代码完整性问题:图像包含一个未对齐页面的部分。
0x2005图像文件名 (Unicode 字符串) 。IAT 目录。节名称 (UTF-8 编码字符串) 。代码完整性问题:映像包含位于可执行文件部分中的 IAT。

0xA001到0xA00D - VM 交换机问题

参数 1参数 2参数 3参数 4错误消息的原因
0xA001指向 NetBufferList 对象的指针如果非 NULL) ,则指向虚拟交换机对象的指针 (保留 (未使用的)VM 交换机:必须设置调用方提供的 NetBufferList 的 SourceHandle。 请参阅 AllocateNetBufferListForwardingContext 例程。
0xA002指向 NetBufferList 对象的指针如果非 NULL) ,则指向虚拟交换机对象的指针 (。保留 (未使用的)VM 交换机:调用方提供的 NetBufferList 的转发详细信息不为零。 请参阅 AllocateNetBufferListForwardingContext 例程。
0xA003指向 NetBufferList 对象的指针如果非 NULL) ,则指向虚拟交换机对象的指针 (。保留 (未使用的)VM 交换机:调用方提供了一个 NetBufferList,其数据包标头或路由上下文为 NULL。 请参阅 可扩展交换机数据路径的数据包管理指南。
0xA004无效端口的 IDNIC 索引如果非 NULL) ,则指向虚拟交换机对象的指针 (。VM 交换机:调用方指定的端口和 NIC 索引组合无效。 请参阅 Hyper-V 可扩展交换机端口和网络适配器状态。
0xA005指向 NetBufferList 对象的指针指向“目标”列表的指针。如果非 NULL) ,则指向虚拟交换机对象的指针 (。VM 交换机:调用方提供的目标无效。 请参阅 AddNetBufferListDestination 和 UpdateNetBufferListDestinations。
0xA006指向 NetBufferList 对象的指针如果非 NULL) ,则指向虚拟交换机对象的指针 (。保留 (未使用的)VM 交换机:调用方提供了无效的源 NIC 或 Port 对象。 请参阅 Hyper-V 可扩展交换机端口和网络适配器状态。
0xA007指向 NetBufferList 对象的指针如果非 NULL) ,则指向虚拟交换机对象的指针 (。保留 (未使用的)VM 交换机:调用方提供的目标列表无效。 请参阅 AddNetBufferListDestination 和 UpdateNetBufferListDestinations。
0xA008父 NIC 对象NIC 索引如果非 NULL) ,则指向虚拟交换机对象的指针 (。VM 交换机:在不允许时尝试引用 NIC。 请参阅 Hyper-V 可扩展交换机端口和网络适配器状态。
0xA009正在引用的端口如果非 NULL) ,则指向虚拟交换机对象的指针 (保留 (未使用的)VM 交换机:在不允许时尝试引用端口。 请参阅 Hyper-V 可扩展交换机端口和网络适配器状态。
0xA00A指向 NetBufferList 对象的指针ContextTypeInfo 对象保留 (未使用的)VM 交换机:已设置失败上下文。 请参阅 SetNetBufferListSwitchContext。
0xA00B指向 NetBufferList 对象的指针NDIS_SWITCH_REPORT_FILTERED_NBL_FLAGS_*如果非 NULL) ,则指向虚拟交换机对象的指针 (VM 交换机:为已删除的 NetBufferList 提供的方向无效。 请参阅 ReportFilteredNetBufferLists。
0xA00C指向 NetBufferList 对象的指针Send Flags 值如果非 NULL) ,则指向虚拟交换机对象的指针 (VM 交换机:设置 NDIS_SEND_FLAGS_SWITCH_SINGLE_SOURCE 标志时,NetBufferList 链具有多个源端口。 请参阅 Hyper-V 可扩展交换机发送和接收标志。
0xA00D指向 NetBufferList 对象的指针指向虚拟交换机上下文的指针如果非 NULL) ,则指向虚拟交换机对象的指针 (VM 交换机:设置NDIS_RECEIVE_FLAGS_SWITCH_DESTINATION_GROUP标志时,链中的一个或多个 NetBufferList 的目标无效。 请参阅 Hyper-V 可扩展交换机发送和接收标志。
0xA00E指向 NetBufferLists 对象的指针。指向虚拟交换机上下文的指针。如果非 NULL) ,则指向虚拟交换机对象的指针 (。VM 交换机:设置VMS_NBL_ROUTING_CONTEXT_FLAG_NO_WNV_PROCESSING标志时,尝试通过 WNV 完成 NetBufferList。

0x00020002 0x00020022 - DDI 合规性规则冲突

参数 1参数 2参数 3参数 4错误消息的原因
0x00020002指向描述违反规则条件的字符串的指针。指向规则状态变量的可选指针 () 。保留驱动程序违反了 DDI 符合性规则 IrqlApcLte。 规则指定驱动程序必须仅在 IRQL <= APC_LEVEL 时才调用 ObGetObjectSecurity 和 ObReleaseObjectSecurity。
0x00020003指向描述违反规则条件的字符串的指针。指向规则状态变量的可选指针 () 。保留驱动程序违反了 DDI 符合性规则 IrqlDispatch。 IrqlDispatch 规则指定驱动程序必须仅在 IRQL = DISPATCH_LEVEL
0x00020004指向描述违反规则条件的字符串的指针。指向规则状态变量的可选指针 () 。保留驱动程序违反了 DDI 符合性规则 IrqlExAllocatePool。 IrqlExAllocatePool 规则指定驱动程序仅在 IRQL<=DISPATCH_LEVEL 时调用 ExAllocatePoolWithTag 和 ExAllocatePoolWithTagPriority。
0x00020005指向描述违反规则条件的字符串的指针。指向规则状态变量的可选指针 () 。保留驱动程序违反了 DDI 符合性规则 IrqlExApcLte1。 IrqlExApcLte1 规则指定驱动程序仅在 IRQL <= APC_LEVEL 时才调用 ExAcquireFastMutex 和 ExTryToAcquireFastMutex。
0x00020006指向描述违反规则条件的字符串的指针。指向规则状态变量的可选指针 () 。保留驱动程序违反了 DDI 符合性规则 IrqlExApcLte2。 IrqlExApcLte2 规则指定驱动程序仅在 IRQL <= APC_LEVEL时才调用某些例程。
0x00020007指向描述违反规则条件的字符串的指针。指向规则状态变量的可选指针 () 。保留驱动程序违反了 DDI 符合性规则 IrqlExApcLte3。 IrqlExApcLte3 规则指定驱动程序必须仅在 IRQL <= APC_LEVEL时才调用某些执行支持例程。
0x00020008指向描述违反规则条件的字符串的指针。指向规则状态变量的可选指针 () 。保留驱动程序违反了 DDI 符合性规则 IrqlExPassive。 IrqlExPassive 规则指定驱动程序必须仅在 IRQL = PASSIVE_LEVEL时才调用某些执行支持例程。
0x00020009指向描述违反规则条件的字符串的指针。指向规则状态变量的可选指针 () 。保留驱动程序违反了 DDI 符合性规则 IrqlIoApcLte。 IrqlIoApcLte 规则指定驱动程序必须仅在 IRQL <= APC_LEVEL时才调用某些 I/O 管理器例程。
0x0002000A指向描述违反规则条件的字符串的指针。指向规则状态变量的可选指针 () 。保留驱动程序违反了 DDI 符合性规则 IrqlIoPassive1。 IrqlIoPassive1 规则指定驱动程序必须仅在 IRQL = PASSIVE_LEVEL时才调用某些 I/O 管理器例程。
0x0002000B指向描述违反规则条件的字符串的指针。指向规则状态变量的可选指针 () 。保留驱动程序违反了 DDI 符合性规则 IrqlIoPassive2。 IrqlIoPassive2 规则指定驱动程序必须仅在 IRQL = PASSIVE_LEVEL时才调用某些 I/O 管理器例程。
0x0002000C指向描述违反规则条件的字符串的指针。指向规则状态变量的可选指针 () 。保留驱动程序违反了 DDI 符合性规则 IrqlIoPassive3。 IrqlIoPassive3 规则指定驱动程序必须仅在 IRQL = PASSIVE_LEVEL时才调用某些 I/O 管理器例程。
0x0002000D指向描述违反规则条件的字符串的指针。指向规则状态变量的可选指针 () 。保留驱动程序违反了 DDI 符合性规则 IrqlIoPassive4。 IrqlIoPassive4 规则指定驱动程序必须仅在 IRQL = PASSIVE_LEVEL时才调用某些 I/O 管理器例程。
0x0002000E指向描述违反规则条件的字符串的指针。指向规则状态变量的可选指针 () 。保留驱动程序违反了 DDI 符合性规则 IrqlIoPassive5。 IrqlIoPassive5 规则指定驱动程序必须仅在 IRQL = PASSIVE_LEVEL时才调用某些 I/O 管理器例程。
0x0002000F指向描述违反规则条件的字符串的指针。指向规则状态变量的可选指针 () 。保留驱动程序违反了 DDI 符合性规则 IrqlKeApcLte1。 IrqlKeApcLte1 规则指定驱动程序必须仅在 IRQL <= APC_LEVEL时才调用某些内核例程。
0x00020010指向描述违反规则条件的字符串的指针。指向规则状态变量的可选指针 () 。保留驱动程序违反了 DDI 符合性规则 IrqlKeApcLte2。 IrqlKeApcLte2 规则指定驱动程序必须仅在 IRQL <= APC_LEVEL时才调用某些内核例程。
0x00020011指向描述违反规则条件的字符串的指针。指向规则状态变量的可选指针 () 。保留驱动程序违反了 DDI 符合性规则 IrqlKeDispatchLte。 IrqlKeDispatchLte 规则指定驱动程序必须仅在 IRQL <= DISPATCH_LEVEL时才调用某些内核例程。
0x00020015指向描述违反规则条件的字符串的指针。指向规则状态变量的可选指针 () 。保留驱动程序违反了 DDI 符合性规则 IrqlKeReleaseSpinLock。 IrqlKeReleaseSpinLock 规则指定驱动程序必须仅在 IRQL = DISPATCH_LEVEL时调用 KeReleaseSpinLock。
0x00020016指向描述违反规则条件的字符串的指针。指向规则状态变量 () 的可选指针。保留驱动程序违反了 DDI 符合性规则 IrqlKeSetEvent。 IrqlKeSetEvent 规则指定仅在 Wait 设置为 FALSE 时在 IRQL <= DISPATCH_LEVEL调用 KeSetEvent 例程,在将 Wait 设置为 TRUE 时,在 IRQL <= APC_LEVEL 调用。
0x00020019指向描述违反规则条件的字符串的指针。指向规则状态变量 () 的可选指针。保留驱动程序违反了 DDI 符合性规则 IrqlMmApcLte。 IrqlMmApcLte 规则指定仅在 IRQL <= APC_LEVEL时驱动程序必须调用某些内存管理器例程。
0x0002001A指向描述违反规则条件的字符串的指针。指向规则状态变量 () 的可选指针。保留驱动程序违反了 DDI 符合性规则 IrqlMmDispatch。 IrqlMmDispatch 规则指定仅当 IRQL = DISPATCH_LEVEL时,驱动程序必须调用 MmFreeContiguousMemory 。
0x0002001B指向描述违反规则条件的字符串的指针。指向规则状态变量 () 的可选指针。保留驱动程序违反了 DDI 符合性规则 IrqlObPassive。 IrqlObPassive 规则指定仅当 IRQL = PASSIVE_LEVEL时,驱动程序必须调用 ObReferenceObjectByHandle 。
0x0002001C指向描述违反规则条件的字符串的指针。指向规则状态变量 () 的可选指针。保留驱动程序违反了 DDI 符合性规则 IrqlPsPassive。 IrqlPsPassive 规则指定仅当 IRQL = PASSIVE_LEVEL时,驱动程序必须调用某些进程和线程管理器例程。
0x0002001D指向描述违反规则条件的字符串的指针。!ruleinfo) 的第二个参数 (内部规则状态的地址。补充状态的地址 (!ruleinfo) 的第三个参数。驱动程序违反了 DDI 符合性规则 IrqlReturn。
0x0002001E指向描述违反规则条件的字符串的指针。指向规则状态变量 () 的可选指针。保留驱动程序违反了 DDI 符合性规则 IrqlRtlPassive。 IrqlRtlPassive 规则指定仅当 IRQL = PASSIVE_LEVEL 时,驱动程序必须调用 RtlDeleteRegistryValue 。
0x0002001F指向描述违反规则条件的字符串的指针。指向规则状态变量 () 的可选指针。保留驱动程序违反了 DDI 符合性规则 IrqlZwPassive。 IrqlZwPassive 规则指定仅在 IRQL = PASSIVE_LEVEL时驱动程序必须调用 ZwClose 。
0x00020022指向描述违反规则条件的字符串的指针。保留 (未使用的)保留 (未使用的)