已检验版本检查哪些项目

注意

Windows 10 版本 1803 之前的旧版 Windows 上提供已检查的版本。 使用驱动程序验证器和 GFlags 等工具在更高版本的 Windows 中检查驱动程序代码。

已检查的内部版本包括系统中通常不存在的大量调试检查。 这些检查包括:

  • 参数验证检查

    这些检查可确保 Windows 操作系统代码通常以尽可能少的开销运行。 因此,基于 NT 的操作系统实现在内核模式下运行的所有组件(包括驱动程序)隐式“信任”彼此的策略。 因此,从一个内核模式组件传递到另一个 (的参数(如在函数调用) 传递的参数)通常受到最小验证。 操作系统的已检查版本启用许多其他参数验证检查。

  • 内部检查操作系统的正确性和一致性

    这些检查通常验证操作系统中密钥算法和数据结构的正确性。 Windows 开发人员还可以在操作系统调试过程中插入此类型的检查,以帮助隔离棘手的问题。

  • 信息性检查和跟踪输出

    这些检查以及调试器中显示的结果输出旨在帮助调试驱动程序或其他系统级组件。 通常,必须通过设置调试标志(通常使用调试器)在相关组件内部单独启用这些类型的检查。 此类检查的存在及其调试输出可能因操作系统的版本而异。 如果存在此类检查,通常会在 Microsoft 知识库文章中记录这些检查。

检查生成中显示的大多数检查确定参数或数据结构中的值是否在预期的典型范围内。 在系统操作期间,在某些极少数情况下,特定参数或值可能会超出通常的预期范围。

因此,即使检查的生成中的某个检查失败,也不一定意味着发生了灾难性故障。 事实上,在已检查的版本中失败检查并不一定意味着出现了问题。 它仅表示特定检查已失败。 必须能够 解释 失败的原因。

请勿忽略由已检查的生成标识的问题。 使用已检查的内部版本成功调试驱动程序的关键是确保可以解释检查的生成发现的每个失败的原因。