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

蓝屏代码0x000000C4一键修复

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

蓝屏代码0x000000C4代表"DRIVER_VERIFIER_DETECTED_VIOLATION",这意味着在使用Driver Verifier(驱动程序验证器)工具时检测到了一个驱动程序违规行为。Driver Verifier是Windows的一种调试工具,用于检测和排查驱动程序问题。当发生此错误时,系统会停止运行并显示蓝屏,以防止可能导致更严重问题的驱动程序错误继续进行。

蓝屏代码0x000000C4一键修复

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

方法一:执行系统还原

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

方法二:禁用Driver Verifier

首先,您可以尝试禁用Driver Verifier来解决此问题,打开命令提示符,并以管理员身份运行verifier /reset命令,然后重新启动计算机。

方法三:运行系统文件检查工具(SFC)

打开命令提示符,并作为管理员运行sfc /scannow命令,以检查和修复系统文件的一致性。

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

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

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

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

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

蓝屏代码0x000000C4一键修复

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

蓝屏代码0x000000C4一键修复

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

蓝屏代码0x000000C4一键修复

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

蓝屏代码0x000000C4一键修复

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

其他相关信息:

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 错误地址 0 0 驱动程序尝试释放未从分配调用返回的地址。
0x11 当前 IRQL 池类型 池的地址 驱动程序尝试使用 IRQL > APC_LEVEL释放分页池。
0x12 当前 IRQL 池类型 池的地址 驱动程序尝试使用 IRQL > DISPATCH_LEVEL释放非分页池。
0x13 或 0x14 保留 指向池标头的指针 池标头内容 驱动程序尝试释放已释放的内存池。
0x15 计时器条目 池类型 正在释放的池地址 调用方尝试释放的池包含活动计时器。
0x16 保留 池地址 0 驱动程序尝试释放错误地址处的池,或驱动程序将无效参数传递给内存例程。
0X17 资源条目 池类型 正在释放的池地址 调用方尝试释放的池包含活动的 ERESOURCE。
0x30 当前 IRQL 请求的 IRQL 0 驱动程序将无效参数传递给 KeRaiseIrql。 (参数是低于当前 IRQL 的值,或高于 HIGH_LEVEL 的值。这可能是使用未初始化的 parameter.)
0x31 当前 IRQL 请求的 IRQL 0:新 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 。
0x3D 0 0 错误资源的地址 驱动程序将错误的 (未对齐) 资源传递给 ExAcquireResourceExclusive。
0x3E 0 0 0 驱动程序为当前不在关键区域中的线程调用 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 检查的已泄漏分配的信息。
0x6F MDL 地址 物理页面被锁定 系统中最高的物理页 在不在 PFN 数据库中的页面上调用 MmProbeAndLockPages。 这通常是调用此例程以锁定其自己的专用双端口 RAM 的驱动程序。 这不仅不需要这样做,而且还会损坏具有不连续物理 RAM 的计算机上的内存。

0x70 0x91

参数 1 参数 2 参数 3 参数 4 错误消息的原因
0x70 当前 IRQL MDL 地址 访问模式 驱动程序使用 IRQL > DISPATCH_LEVEL调用了 MmProbeAndLockPages。
0x71 当前 IRQL MDL 地址 进程地址 驱动程序使用 IRQL > DISPATCH_LEVEL调用 MmProbeAndLockProcessPages。
0x72 当前 IRQL MDL 地址 进程地址 驱动程序使用 IRQL > DISPATCH_LEVEL调用 MmProbeAndLockSelectedPages。
0x73 当前 IRQL 在 32 位 Windows 中:物理地址的低 32 位在 64 位 Windows 中:64 位物理地址 字节数 驱动程序使用 IRQL > DISPATCH_LEVEL调用 MmMapIoSpace。
0x74 当前 IRQL MDL 地址 访问模式 驱动程序在内核模式下使用 IRQL > DISPATCH_LEVEL调用 MmMapLockedPages。
0x75 当前 IRQL MDL 地址 访问模式 驱动程序在用户模式下使用 IRQL > APC_LEVEL调用 MmMapLockedPages。
0x76 当前 IRQL MDL 地址 访问模式 驱动程序在内核模式下使用 IRQL > DISPATCH_LEVEL调用 MmMapLockedPagesSpecifyCache。
0x77 当前 IRQL MDL 地址 访问模式 驱动程序在用户模式下使用 IRQL > APC_LEVEL调用 MmMapLockedPagesSpecifyCache。
0x78 当前 IRQL MDL 地址 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。
0x7C MDL 地址 MDL 标志 0 驱动程序调用 MmUnlockPages,并传递了一个 MDL,该 MDL 的页面从未成功锁定。
0x7D MDL 地址 MDL 标志 0 驱动程序名为 MmUnlockPages,并传递了一个 MDL,该 MDL 的页面来自非分页池。 (这些永远不应解锁。)
0x7E 当前 IRQL DISPATCH_LEVEL 0 名为 MmAllocatePagesForMdl、 MmAllocatePagesForMdlEx 或 MmFreePagesFromMdl 的驱动程序与 IRQL > DISPATCH_LEVEL。
0x7F 当前 IRQL MDL 地址 MDL 标志 驱动程序名为 BuildMdlForNonPagedPool ,并传递了一个 MDL,该 MDL 的页面来自分页池。
0x80 当前 IRQL 事件地址 0 驱动程序使用 IRQL > DISPATCH_LEVEL调用 KeSetEvent。
0x81 MDL 地址 MDL 标志 0 名为 MmMapLockedPages 的驱动程序。 (应改用 MmMapLockedPagesSpecifyCache ,并将 BugCheckOnFailure 参数设置为 FALSE.)
0x82 MDL 地址 MDL 标志 0 驱动程序名为 MmMapLockedPagesSpecifyCache ,BugCheckOnFailure 参数等于 TRUE。 (此参数应设置为 FALSE.)
0x83 开始映射的物理地址范围 要映射的字节数 未锁定的第一页帧编号 驱动程序名为 MmMapIoSpace ,但未锁定 MDL 页面。 在进行此调用之前,由映射的物理地址范围表示的物理页面必须已锁定。
0x85 MDL 地址 要映射的页数 未锁定的第一页帧编号 驱动程序名为 MmMapLockedPages ,但未锁定 MDL 页面。
0x89 MDL 地址 指向 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。
0xB0 MDL 地址 MDL 标志 MDL 标志不正确 驱动程序调用 MmProbeAndLockPages 的 MDL 具有不正确的标志。 例如,驱动程序将 MmBuildMdlForNonPagedPool 创建的 MDL 传递给 MmProbeAndLockPages。
0xB1 MDL 地址 MDL 标志 MDL 标志不正确 驱动程序调用 MmProbeAndLockProcessPages 的 MDL 具有不正确的标志。 例如,驱动程序将 MmBuildMdlForNonPagedPool 创建的 MDL 传递给 MmProbeAndLockProcessPages。
0xB2 MDL 地址 MDL 标志 MDL 标志不正确 对于具有错误标志的 MDL,驱动程序名为 MmMapLockedPages 。 例如,驱动程序传递了已映射到系统地址或未锁定到 MmMapLockedPages 的 MDL。
0xB3 MDL 地址 MDL 标志 缺少 MDL 标志 (预计至少有一个) 对于具有错误标志的 MDL,驱动程序名为 MmMapLockedPages 。 例如,驱动程序传递的 MDL 未锁定到 MmMapLockedPages。
0xB4 MDL 地址 MDL 标志 意外的部分 MDL 标志 对于部分 MDL,驱动程序名为 MmUnlockPages 。 部分 MDL 是由 IoBuildPartialMdl 创建的。
0xB5 MDL 地址 MDL 标志 意外的部分 MDL 标志 使用 IoBuildPartialMdl) 创建的部分 MDL (调用 MmUnmapLockedPages。
0xB6 MDL 地址 MDL 标志 缺少 MDL 标志 在未映射到系统地址的 MDL 上调用的 MmUnmapLockedPages。
0xB7 损坏的物理页数。 第一个损坏的物理页。 上次损坏的物理页。 系统 BIOS 在睡眠转换期间损坏了低物理内存。
0xB8 MDL 地址 MDL 标志 保留 仍会映射由 MDL 描述的页面。 在调用 IoFreeMdl 之前,驱动程序必须取消映射页面。
0xB9 未映射的地址。 MDL 地址。 保留 调用的 MmUnmapLockedPages 的用户空间地址不正确。
0xC0 IRP 的地址 0 保留 名为 IoCallDriver 的 驱动程序,其中禁用了中断。
0xC1 驱动程序调度例程的地址 预留 预留 返回驱动程序调度例程时禁用了中断。
0xC2 0 0 0 禁用中断后,驱动程序调用了快速 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 旁观列表的地址 调用方指定的块大小 支持的最小块大小 驱动程序尝试创建分配块大小过小的旁观列表。
0xD0 ERESOURCE 结构的地址 预留 预留 驱动程序已尝试重新初始化 ERESOURCE 结构。
0xD1 ERESOURCE 结构的地址 预留 预留 驱动程序尝试删除未初始化的 ERESOURCE 结构。
0xD2 ERESOURCE 结构的地址 池分配的起始地址 池分配的大小 驱动程序已尝试释放包含活动 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 同步对象地址 0 0 同步对象位于会话地址空间中。 会话地址空间中不允许同步对象,因为它们可以从另一个会话或没有会话虚拟地址空间的系统线程进行操作。
0xE0 用作参数的用户模式地址 用作参数的地址范围的大小(以字节为单位) 保留 调用了指定用户模式地址作为参数的操作系统内核函数。
0xE1 同步对象的地址 预留 预留 发现同步对象的地址无效或可分页。
0xE2 IRP 的地址 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 函数的驱动程序,其中包含重叠的源缓冲区和目标缓冲区。
0xF5 NULL 句柄的地址 对象类型 保留 驱动程序将 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 错误消息的原因
0x105 IRP 的地址 0 0 驱动程序使用 ExFreePool 而不是 IoFreeIrp 来释放 IRP。
0x10A 0 0 0 驱动程序尝试向空闲进程收取池配额费用。
0x10B 0 0 0 驱动程序尝试从 DPC 例程收取池配额费用。 这是不正确的,因为当前进程上下文未定义。
0x110 中断服务例程的地址 在执行 ISR 之前保存的扩展上下文的地址 扩展上下文的地址在执行 ISR 后已保存 驱动程序 (ISR) 中断服务例程损坏了扩展线程上下文。
0x111 中断服务例程的地址 执行 ISR 前的 IRQL 执行 ISR 后的 IRQL 中断服务例程返回了更改的 IRQL。
0x115 负责关闭的线程的地址,该地址可能是死锁的。 0 0 驱动程序验证程序检测到系统花费的时间超过 20 分钟,并且关闭未完成。
0x11A 当前 IRQL 0 0 驱动程序在 IRQL > APC_LEVEL调用 KeEnterCriticalRegion。
0x11B 当前 IRQL 0 0 驱动程序在 IRQL > APC_LEVEL调用 KeLeaveCriticalRegion。
0x120 IRQL 值的地址 要等待的对象地址 超时值的地址 线程在 IRQL > DISPATCH_LEVEL等待。 KeWaitForSingleObject 或 KeWaitForMultipleObjects 的调用方必须在 IRQL <= DISPATCH_LEVEL 运行。
0x121 IRQL 值的地址 要等待的对象地址 超时值的地址 线程在 IRQL 处等待等于 DISPATCH_LEVEL,超时为 NULL。 KeWaitForSingleObject 或 KeWaitForMultipleObjects 的调用方可以在 IRQL <= DISPATCH_LEVEL 运行。 如果为 Timeout 提供了 NULL 指针,则调用线程将保持等待状态,直到对象收到信号。
0x122 IRQL 值的地址 要等待的对象地址 超时值的地址 线程在DISPATCH_LEVEL等待,超时值不等于零 (0) 。 如果 Timeout != 0,则 KeWaitForSingleObject 或 KeWaitForMultipleObjects 的调用方必须在 IRQL <= APC_LEVEL 运行。
0x123 要等待的对象地址 0 0 KeWaitForSingleObject 或 KeWaitForMultipleObjects 的调用方将等待指定为 UserMode,但对象位于内核堆栈上。
0x130 工作项的地址 0 0 工作项位于会话地址空间中。 不允许在会话地址空间中使用工作项,因为它们可以从另一个会话或从没有会话虚拟地址空间的系统线程进行操作。
0x131 工作项的地址 0 0 工作项位于可分页内存中。 工作项必须位于不可分页内存中,因为内核在DISPATCH_LEVEL使用它们。
0x135 IRP 地址 IoCancelIrp 调用与完成此 IRP 之间允许的毫秒数 0 取消的 IRP 未在预期时间内完成。驱动程序完成取消的 IRP 所花费的时间比预期长。
0x13A 正在释放的池块的地址 值不正确 错误值的地址 驱动程序已调用 ExFreePool ,驱动程序验证程序在用于跟踪池使用情况的内部值之一中检测到错误。
0x13B 正在释放的池块的地址 错误值的地址 指向错误内存页的指针的地址 驱动程序已调用 ExFreePool ,驱动程序验证程序在用于跟踪池使用情况的内部值之一中检测到错误。
0x13C 正在释放的池块的地址 值不正确 错误值的地址 驱动程序已调用 ExFreePool ,驱动程序验证程序在用于跟踪池使用情况的内部值之一中检测到错误。
0x13D 正在释放的池块的地址 错误值的地址 预期的正确值 驱动程序已调用 ExFreePool ,驱动程序验证程序在用于跟踪池使用情况的内部值之一中检测到错误。
0x13E 调用方指定的池块地址 驱动程序验证程序跟踪的池块地址 指向驱动程序验证程序跟踪的池块地址的指针 ExFreePool 调用方指定的池块地址不同于驱动程序验证程序跟踪的地址。
0x13F 正在释放的池块的地址 正在释放的字节数 指向驱动程序验证程序跟踪的字节数的指针 调用 ExFreePool 时释放的内存字节数不同于驱动程序验证程序跟踪的字节数。
0x140 当前 IRQL MDL 地址 与此 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 无效端口的 ID NIC 索引 如果非 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 指向描述违反规则条件的字符串的指针。 保留 (未使用的) 保留 (未使用的)
驱动下载排行