DRIVER_VERIFIER_IOMANAGER_VIOLATION 参数

当 Driver Verifier 处于活动状态并选择 I/O Verification 时,各种 I/O 违规将导致发出此错误检查。
参数 1 标识违规类型。

参数 1参数 2参数 3参数 4错误原因
0x01被释放的 IRP 地址00驱动程序试图释放类型不是 IO_TYPE_IRP 的对象。
0x02被释放的 IRP 地址00驱动程序试图释放仍与线程关联的 IRP。
0x03发送的 IRP 地址00驱动程序向 IoCallDriver 传递了一个不等于 IRP_TYPE 的 IRP 类型。
0x04设备对象地址00驱动程序通过 IoCallDriver 一个无效的设备对象。
0x05与违规驱动程序关联的设备对象的地址IoCallDriver 之前的 IRQLIoCallDriver 之后的 IRQLIRQL 在调用驱动程序调度例程期间发生了变化。
0x06IRP 状态正在完成的 IRP 地址0驱动程序调用 IoCompleteRequest 并将状态标记为挂起(或者等于 -1)。
0x07取消程序地址正在完成的 IRP 地址0驱动程序调用 IoCompleteRequest 而其取消例程仍然设置。
0x08设备对象地址IRP 主要功能代码异常状态码驱动程序通过 IoBuildAsynchronousFsdRequest 一个无效的缓冲区。
0x09设备对象地址输入输出控制代码异常状态码驱动程序通过 IoBuildDeviceIoControlRequest 一个无效的缓冲区。
0x10当前 IRQL保留保留IoCallDriver 在 DISPATCH_LEVEL 以上被调用。
0x11驱动程序快速 I/O 调度例程地址调用驱动程序调度例程之前的 IRQL当前 IRQLIoCallDriver 在 DISPATCH_LEVEL 以上被调用。
0x12驱动调度例程地址调用驱动程序调度例程之前的 IRQL当前 IRQLIoCallDriver 在 DISPATCH_LEVEL 以上被调用。
0x0A设备对象地址00驱动程序向 IoInitializeTimer 传递了一个带有已初始化计时器的设备对象。
0x0CI/O 状态块地址00驱动程序将一个 I/O 状态块传递给一个 IRP,但是这个块被分配在一个已经超过那个点的堆栈上。
0x0D用户事件对象地址00驱动程序将一个用户事件传递给一个 IRP,但是这个事件被分配到一个已经超过那个点的堆栈上。
0x0E当前 IRQLIRP地址0驱动程序使用 IRQL > DISPATCH_LEVEL 调用 IoCompleteRequest。
0x0FIRP 被发送到的设备对象的地址指向 IRP 的指针指向文件对象的指针驱动程序发送了一个带有已关闭或者已取消打开的文件对象的创建请求。

除了上表中提到的错误之外,还有许多 I/O 验证错误会导致驱动程序验证程序停止系统,但实际上这些错误不是错误检查。

这些错误会导致消息显示在蓝屏、故障转储文件和内核调试器中。
这些消息在这些位置中的每一个都会以不同的方式显示。
发生这些错误时,十六进制错误检查代码 0xC9 和错误检查字符串 DRIVER_VERIFIER_IOMANAGER_VIOLATION 不会出现在蓝屏或者调试器中,尽管它们会出现在故障转储文件中。

在蓝屏上,将显示以下数据:

  • 消息 IO 系统验证错误。
  • 消息 WDM DRIVER ERROR XXX,其中 XXX 是表示特定错误的十六进制代码。(有关 I/O 错误代码及其含义的列表,请参见下表。)
  • 导致错误的驱动程序的名称。
  • 通常,驱动程序代码中检测到错误的地址(参数 2)。

如果启用了内核模式故障转储,则故障转储文件中将显示以下信息:

  • 消息 BugCheck 0xC9 (DRIVER_VERIFIER_IOMANAGER_VIOLATION) 。
  • 十六进制 I/O 错误代码。(有关 I/O 错误代码及其含义的列表,请参见下表。)
  • 通常,驱动程序代码中检测到错误的地址(参数 2)。

如果内核调试器连接到导致此违规的系统,以下信息将发送到调试器:

  • 消息 WDM DRIVER ERROR 以及对错误严重性的评估。
  • 导致错误的驱动程序的名称。
  • 说明此错误原因的描述性字符串。通常会传递添加信息,例如指向 IRP 的指针或者指向设备对象或者 IRQL 信息的指针。(有关这些描述性字符串的列表以及指定的添加信息,请参阅下表。)
  • 进一步操作的查询。可能的响应是 b(中断)、i(忽略)、z(zap)、r(删除)或者 d(禁用)。指示操作系统继续允许我们查看如果未发生此错误会“下线”发生什么。当然,这通常会导致另外的错误检查。“zap”选项实际上会删除导致此错误被发现的断点。

注意 不能以这种方式忽略其他错误检查。
只有这种 I/O 验证错误可以忽略,甚至这些错误也只能在添加内核调试器的情况下忽略。

下表列出了可能出现的 I/O 验证错误。

I/O Error Code严重性错误原因
0x200未知此代码涵盖所有未知的 I/O 验证错误。
0x201致命错误一个设备正在删除自身,而驱动程序堆栈中它下面还有另一个设备。这可能是因为调用方忘记先调用 IoDetachDevice,或者下层驱动程序可能错误地删除了自己。
参数 2 - 驱动程序代码中检测到错误的地址。
0x202致命错误驱动程序试图从没有添加到任何东西的设备对象中分离。如果在同一设备对象上两次调用 detach,则可能会发生这种情况。
参数 2 - 驱动程序代码中检测到错误的地址。
参数 3 - 设备对象地址。
0x203致命错误驱动程序调用了 IoCallDriver,但未将 IRP 中的取消例程设置为 NULL。
参数 2 - 驱动程序代码中检测到错误的地址。
参数 3 - IRP 地址。
0x204致命错误调用者已将 NULL 作为设备对象传入。这是致命的。
参数 2 - 保留
参数 3 - 保留
0x205致命错误调用者正在转发当前在其下方排队的 IRP。在此驱动程序中处理返回 STATUS_PENDING 的 IRP 的代码似乎已损坏。
参数 2 - 驱动程序代码中检测到错误的地址。
参数 3 - IRP 地址。
0x206致命错误调用者错误地转发了 IRP(控制字段未清零)。驱动程序应使用 IoCopyCurrentIrpStackLocationToNext 或者 IoSkipCurrentIrpStackLocation。
参数 2 - 保留
参数 3 - 保留
0x207致命错误调用者手动复制了堆栈,无意中复制了上层的完成例程。驱动程序应使用 IoCopyCurrentIrpStackLocationToNext。
参数 2 - 驱动程序代码中检测到错误的地址。
参数 3 - IRP 地址。
0x208致命错误此 IRP 即将用完堆栈位置。有人可能从另一个堆栈转发了这个 IRP。
参数 2 - 驱动程序代码中检测到错误的地址。
参数 3 - IRP 地址。
0x209致命错误调用者正在完成当前在其下方排队的 IRP。在此驱动程序中处理返回 STATUS_PENDING 的 IRP 的代码似乎已损坏。
参数 2 - 驱动程序代码中检测到错误的地址。
参数 3 - IRP 地址。
0x20A致命错误IoFreeIrp 的调用者正在释放一个仍在使用的 IRP。
参数 2 - 保留
参数 3 - 保留
0x20B致命错误IoFreeIrp 的调用者正在释放一个仍在使用的 IRP。
参数 2 - 驱动程序代码中检测到错误的地址。
参数 3 - IRP 地址。
0x20C致命错误IoFreeIrp 的调用者正在释放一个仍在排队等待线程的 IRP。
参数 2 - 驱动程序代码中检测到错误的地址。
参数 3 - IRP 地址。
0x20D致命错误IoInitializeIrp 的调用者传递了一个由 IoAllocateIrp 分配的 IRP。这是非法和不必要的,并导致配额泄漏。如果此 IRP 正在被回收,请检查 IoReuseIrp 的文档。
参数 2 - 驱动程序代码中检测到错误的地址。
参数 3 - IRP 地址。
0x20E非致命错误PNP IRP 的状态无效。(任何 PNP IRP 都必须将其状态初始化为 STATUS_NOT_SUPPORTED。)
参数 2 - 驱动程序代码中检测到错误的地址。
参数 3 - IRP 地址。
0x20F非致命错误Power IRP 的状态无效。(任何 Power IRP 都必须将其状态初始化为 STATUS_NOT_SUPPORTED。)
参数 2 - 驱动程序代码中检测到错误的地址。
参数 3 - IRP 地址。
0x210非致命错误WMI IRP 的状态无效。(任何 WMI IRP 都必须将其状态初始化为 STATUS_NOT_SUPPORTED。)
参数 2 - 驱动程序代码中检测到错误的地址。
参数 3 - IRP 地址。
0x211非致命错误调用者在跳过堆栈中的设备对象时转发了一个 IRP。调用者可能将 IRP 发送到 PDO 而不是 IoAttachDeviceToDeviceStack 返回的设备。
参数 2 - 驱动程序代码中检测到错误的地址。
参数 3 - IRP 地址。
0x212非致命错误调用者已经破坏或者没有正确复制 IRP 的堆栈。
参数 2 - 驱动程序代码中检测到错误的地址。
参数 3 - IRP 地址。
0x213非致命错误调用者更改了它不理解的 IRP 的状态字段。
参数 2 - 驱动程序代码中检测到错误的地址。
参数 3 - IRP 地址。
0x214非致命错误调用者更改了它不理解的 IRP 的信息字段。
参数 2 - 驱动程序代码中检测到错误的地址。
参数 3 - IRP 地址。
0x215非致命错误IRP_MJ_PNP 的非成功非 STATUS_NOT_SUPPORTED IRP 状态正在向下传递堆栈。必须完成失败的 PNP IRP。
参数 2 - 驱动程序代码中检测到错误的地址。
参数 3 - IRP 地址。
0x216非致命错误先前设置的 IRP_MJ_PNP 状态已转换为 STATUS_NOT_SUPPORTED。此故障状态保留供操作系统使用。驱动程序不能使用此值使 PnP IRP 失败。
参数 2 - 驱动程序代码中检测到错误的地址。
参数 3 - IRP 地址。
0x217非致命错误驱动程序尚未处理所需的 IRP。驱动程序必须更新 IRP 的状态以指示它是否已被处理。
参数 2 - 驱动程序代码中检测到错误的地址。
参数 3 - IRP 地址。
0x218非致命错误驱动程序已响应为堆栈中其他位置的其他设备对象保留的 IRP。
参数 2 - 驱动程序代码中检测到错误的地址。
参数 3 - IRP 地址。
0x219非致命错误IRP_MJ_POWER 的非成功非 STATUS_NOT_SUPPORTED IRP 状态正在向下传递堆栈。必须完成失败的 POWER IRP。
参数 2 - 驱动程序代码中检测到错误的地址。
参数 3 - IRP 地址。
0x21A非致命错误先前设置的 IRP_MJ_POWER 状态已转换为 STATUS_NOT_SUPPORTED。
参数 2 - 驱动程序代码中检测到错误的地址。
参数 3 - IRP 地址。
0x21B非致命错误司机返回可疑状态。这可能是由于驱动程序中未初始化的变量错误。
参数 3 - IRP 地址。
0x21C警告调用者已复制 IRP 堆栈但未设置完成例程。这是低效的——改用 IoSkipCurrentIrpStackLocation。
参数 2 - 保留
参数 3 - 保留
0x21D致命错误在接收到删除 IRP 时,IRP 调度处理程序没有正确地从它下面的堆栈中分离。
参数 2 - 驱动程序代码中检测到错误的地址。
参数 3 - IRP 地址。
参数 4 - 设备对象地址。
0x21E致命错误收到删除 IRP 后,IRP 调度处理程序未正确删除其设备对象。
参数 2 - 驱动程序代码中检测到错误的地址。
参数 3 - IRP 地址。
参数 4 - 设备对象地址。
0x21F非致命错误驱动程序尚未为所需的 IRP 主要功能填写调度例程。
参数 2 - 驱动程序代码中检测到错误的地址。
参数 3 - IRP 地址。
0x220非致命错误IRP_MJ_SYSTEM_CONTROL 已由 ProviderId 以外的其他人完成。此 IRP 应该更早完成或者应该已传递。
参数 2 - 驱动程序代码中检测到错误的地址。
参数 3 - IRP 地址。
参数 4 - ProviderId。
0x221致命错误PDO 的 IRP 调度处理程序已删除其设备对象,但在总线关系查询中未报告硬件丢失。
参数 2 - 驱动程序代码中检测到错误的地址。
参数 3 - IRP 地址。
参数 4 - 设备对象地址。
0x222致命错误当 PDO 仍处于活动状态时,总线过滤器的 IRP 调度处理程序在接收到删除 IRP 时已分离。总线过滤器必须在 FastIoDetach 回调中进行清理。
参数 2 - 驱动程序代码中检测到错误的地址。
参数 3 - IRP 地址。
参数 4 - 设备对象地址。
0x223致命错误总线过滤器的 IRP 调度处理程序已删除其设备对象,但 PDO 仍然存在。总线过滤器必须在 FastIoDetach 回调中进行清理。
参数 2 - 驱动程序代码中检测到错误的地址。
参数 3 - IRP 地址。
参数 4 - 设备对象地址。
0x224致命错误IRP 调度处理程序返回的状态与 IRP 的 IoStatus.Status 字段不一致。
参数 2 - 驱动程序代码中检测到错误的地址。
参数 3 - IRP 地址。
参数 4 - 预期的状态代码。
0x225非致命错误IRP 调度处理程序返回了一个非法状态 (0xFFFFFFFF)。这可能是由于未初始化的堆栈变量造成的。要调试此错误,请使用具有指定地址的 ln(列出最近的符号)命令。
参数 2 - 驱动程序代码中检测到错误的地址。
参数 3 - IRP 地址。
参数 4 - 状态代码。
0x226致命错误IRP 调度处理程序在没有传递或者完成此 IRP 的情况下返回,或者有人忘记返回 STATUS_PENDING。
参数 2 - 驱动程序代码中检测到错误的地址。
参数 3 - IRP 地址。
0x227致命错误IRP 完成例程在可分页代码中。(这是不允许的。)
参数 2 - 驱动程序代码中检测到错误的地址。
参数 3 - IRP 地址。
0x228非致命错误如果在传递给驱动程序的 IRP 中设置了 PendingReturned 字段,则驱动程序的完成例程未将 IRP 标记为挂起。这可能会导致 Windows 挂起,尤其是当堆栈返回错误时。
参数 2 - 驱动程序代码中检测到错误的地址。
参数 3 - IRP 地址。
0x229致命错误已为 IRP 设置了取消例程,该 IRP 当前正在由堆栈中较低的驱动程序处理,可能会踩踏它们的取消例程。
参数 2 - 保留。
参数 3 - 保留。
0x22A非致命错误物理设备对象 (PDO) 尚未响应所需的 IRP。
参数 2 - 驱动程序代码中检测到错误的地址。
参数 3 - IRP 地址。
0x22B非致命错误物理设备对象 (PDO) 忘记使用用于 TargetDeviceRelation 查询的 PDO 填写设备关系列表。
参数 2 - 驱动程序代码中检测到错误的地址。
参数 3 - IRP 地址。
0x22C致命错误实现 TargetDeviceRelation 查询的代码没有在 PDO 上调用 ObReferenceObject。
参数 2 - 保留。
参数 3 - 保留。
0x22D非致命错误调用者完成了一个它不理解的 IRP_MJ_PNP 而不是传递它。
参数 2 - 驱动程序代码中检测到错误的地址。
参数 3 - IRP 地址。
0x22E非致命错误调用者已成功完成 IRP_MJ_PNP 而不是将其传递下去。
参数 2 - 驱动程序代码中检测到错误的地址。
参数 3 - IRP 地址。
0x22F非致命错误调用者完成了一个未触及的 IRP_MJ_PNP(而不是向下传递 IRP),或者非 PDO 使用非法的 STATUS_NOT_SUPPORTED 值使 IRP 失败。
参数 2 - 驱动程序代码中检测到错误的地址。
参数 3 - IRP 地址。
0x230非致命错误调用者完成了一个它不理解的 IRP_MJ_POWER 而不是传递它。
参数 2 - 驱动程序代码中检测到错误的地址。
参数 3 - IRP 地址。
0x231致命错误调用者已成功完成 IRP_MJ_POWER 而不是将其传递下去。
参数 2 - 驱动程序代码中检测到错误的地址。
参数 3 - IRP 地址。
0x232非致命错误调用者已经完成了一个未触及的 IRP_MJ_POWER(而不是向下传递 IRP),或者非 PDO 使用非法的 STATUS_NOT_SUPPORTED 值使 IRP 失败。
参数 2 - 驱动程序代码中检测到错误的地址。
参数 3 - IRP 地址。
0x233非致命错误查询功能 IRP 中查询功能结构的版本字段未正确初始化。
参数 2 - 驱动程序代码中检测到错误的地址。
参数 3 - IRP 地址。
0x234非致命错误查询功能 IRP 中查询功能结构的大小字段未正确初始化。
参数 2 - 驱动程序代码中检测到错误的地址。
参数 3 - IRP 地址。
0x235非致命错误查询功能 IRP 中查询功能结构的地址字段未正确初始化为 -1.
参数 2 - 驱动程序代码中检测到错误的地址。
参数 3 - IRP 地址。
0x236非致命错误查询功能 IRP 中查询功能结构的 UI 编号字段未正确初始化为 -1.
参数 2 - 驱动程序代码中检测到错误的地址。
参数 3 - IRP 地址。
0x237致命错误驱动程序发送了一个仅限系统使用的 IRP。
参数 2 - 保留。
参数 3 - 保留。
0x238警告IoInitializeIrp 的调用者传递了一个由 IoAllocateIrp 分配的 IRP。这是非法的、不必要的,并且会对正常使用中的性能产生负面影响。如果此 IRP 正在被回收,请参阅 Windows 驱动程序工具包中的 IoReuseIrp。
参数 2 - 保留。
参数 3 - 保留。
0x239警告IoCompleteRequest 的调用者正在完成一个从未通过调用 IoCallDriver 或者 PoCallDriver 转发的 IRP。这可能是一个错误。
参数 2 - 保留。
参数 3 - 保留。
0x23A致命错误驱动程序在 IRQL 上转发了一个 IRP,对于这个主要代码是非法的。
参数 2 - 驱动程序代码中检测到错误的地址。
参数 3 - IRP 地址。
0x23B非致命错误调用者更改了它不理解的 IRP 的状态字段。
参数 2 - 驱动程序代码中检测到错误的地址。
参数 3 - IRP 地址。

下表列出了可能出现的其他 I/O 验证错误。
激活增强型 I/O 验证时会出现这些错误。
有关详细信息,请参阅增强的 I/O 验证。

I/O Error Code严重性错误原因
0x23C致命错误驱动程序已完成 IRP,但未将 IRP 中的取消例程设置为 NULL。
参数 2 - 保留。
参数 3 - 保留。
0x23D非致命错误驱动程序已返回 STATUS_PENDING 但未通过调用 IoMarkIrpPending 将 IRP 标记为挂起。
参数 2 - 驱动程序代码中检测到错误的地址。
参数 3 - IRP 地址。
参数 4 - 状态代码。
0x23E非致命错误驱动程序已将 IRP 标记为挂起,但未返回 STATUS_PENDING。
参数 2 - 驱动程序代码中检测到错误的地址。
参数 3 - IRP 地址。
参数 4 - 状态代码。
0x23F致命错误驱动程序没有从它所连接的堆栈继承 DO_POWER_PAGABLE 位。
参数 2 - 保留。
参数 3 - 保留。
0x240致命错误驱动程序试图删除已通过先前调用 IoDeleteDevice 删除的设备对象。
参数 2 - 驱动程序代码中检测到错误的地址。
参数 2 - 保留。
参数 3 - 保留。
0x241致命错误驱动程序在意外删除 IRP 期间分离了其设备对象。
参数 2 - 驱动程序代码中检测到错误的地址。
参数 3 - IRP 地址。
参数 4 - 设备对象地址。
0x242致命错误驱动程序在意外删除 IRP 期间删除了其设备对象。
参数 2 - 驱动程序代码中检测到错误的地址。
参数 3 - IRP 地址。
参数 4 - 设备对象地址。
0x243致命错误驱动程序未能清除 AddDevice 末尾的 DO_DEVICE_INITIALIZING 标志。
参数 2 - 保留。
参数 3 - 保留。
参数 4 -
0x244致命错误驱动程序没有从它添加到的设备对象中复制 DO_BUFFERED_IO 或者 DO_DIRECT_IO 标志。
参数 2 - 保留。
参数 3 - 保留。
0x245致命错误驱动程序已设置 DO_BUFFERED_IO 和 DO_DIRECT_IO 标志。这些标志是互斥的。
参数 2 - 保留。
参数 3 - 保留。
0x246致命错误驱动程序未能从它所添加的设备对象复制 DeviceType 字段。
参数 2 - 保留。
参数 3 - 保留。
0x247致命错误
参数 2 - 保留。
参数 3 - 保留。
驱动程序失败了不能合法失败的 IRP。
0x248致命错误驱动程序已将不是 PDO 的设备对象添加到设备关系查询中。
参数 2 - 驱动程序代码中检测到错误的地址。
参数 3 - IRP 地址。
参数 4 - 设备对象地址。
0x249非致命错误驱动程序枚举了两个返回相同设备 ID 的子 PDO。
参数 2 - 驱动程序代码中检测到错误的地址。
参数 3 - 第一个设备对象地址。
参数 4 - 第二个设备对象地址。
0x24A致命错误驱动程序错误地调用了 IRQL 不等于 PASSIVE_LEVEL 的文件 I/O 函数。
参数 2 - 驱动程序代码中检测到错误的地址。
参数 3 - 保留。
参数 4 - 保留。
0x24B致命错误驱动程序已成功完成类型为 TargetDeviceRelation 的 IRP_MN_QUERY_DEVICE_RELATIONS 请求,但未正确填写请求或者将 IRP 转发到底层硬件堆栈。
参数 2 - 驱动程序代码中检测到错误的地址。
参数 3 - 设备对象地址。
0x24C非致命错误驱动程序已返回 STATUS_PENDING 但未通过调用 IoMarkIrpPending 将 IRP 标记为挂起。
参数 2 - 驱动程序代码中检测到错误的地址。
参数 3 - IRP 地址。
参数 4 - 状态代码。
0x24D致命错误驱动程序已将无效的设备对象传递给需要 PDO 的函数。
参数 2 - 驱动程序代码中检测到错误的地址。
参数 3 - IRP 地址。
参数 4 - 设备对象地址。
0x300非致命错误司机返回可疑状态。这可能是由于驱动程序中未初始化的变量错误。
参数 2 - 驱动程序代码中检测到错误的地址。
参数 3 - IRP 地址。
参数 4 - 可疑状态代码。
0x301非致命错误驱动程序已在 IRQL > DISPATCH_LEVEL 转发 IRP。
参数 2 - 驱动程序代码中检测到错误的地址。
参数 3 - IRP 地址。
参数 4 - IRQL 值不正确
0x302非致命错误驱动程序在 IRQL > = APC_LEVEL 转发了一个 IRP。
I/O 管理器需要将 APC 排队以完成此请求。APC 将无法运行,因为调用方已经处于 APC 级别,因此调用方很可能会死锁。
参数 2 - 驱动程序代码中检测到错误的地址。
参数 3 - IRP 地址。
参数 4 - IRQL 值不正确。
0x306非致命错误驱动程序正在完成带有故障状态代码的 IRP_MJ_PNP(主要)和 IRP_MN_REMOVE_DEVICE(次要)请求。
参数 2 - 驱动程序代码中检测到错误的地址。
参数 3 - IRP 地址。
0x307非致命错误驱动程序发出一个 I/O 请求,其中的事件已经被通知并收到了 STATUS_PENDING 响应。这可能会导致在 I/O 完成之前展开。
参数 2 - 驱动程序代码中检测到错误的地址。
参数 3 - IRP 地址。
0x310非致命错误驱动程序正在重新初始化仍在使用的 IRP。
参数 2 - 驱动程序代码中检测到错误的地址。
参数 3 - IRP 地址。
0x311非致命错误驱动程序正在重新初始化使用 IoMakeAssociatedIrp、IoBuildAsynchronousFsdRequest、IoBuildSynchronousFsdRequest、IoBuildDeviceIoControlRequest 创建的 IRP。
参数 2 - 驱动程序代码中检测到错误的地址。
参数 3 - IRP 地址。
0x312非致命错误调用者为 IRP 状态信息字段提供了一个大于系统缓冲区输出部分的值。
参数 2 - 驱动程序代码中检测到错误的地址。
参数 3 - IRP 地址。
查看更多教程 https://on  itroad.com

原因

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

解决方法

仅当 Driver Verifier 被指示监控一个或者多个驱动程序时,才会发生此错误检查。
如果我们不打算使用 Driver Verifier,则应停用它。
有关详细信息,请参阅驱动程序验证程序中的“如何控制驱动程序验证程序”。

我们也可以考虑更新或者删除导致此问题的驱动程序。

如果我们是驱动程序开发人员,请使用通过此错误检查获得的信息来修复代码中的错误。

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

Windows 蓝屏代码 0xC9:DRIVER_VERIFIER_IOMANAGER_VIOLATION

DRIVER_VERIFIER_IOMANAGER_VIOLATION 错误检查的值为 0x000000C9.
这是所有驱动程序验证程序 I/O 验证违规的错误检查代码。

日期:2020-09-17 00:16:10 来源:oir作者:oir