内核同步延迟模糊处理

注释

从 Windows 10 内部版本 19042 及更高版本开始,此检查已弃用

内核同步延迟模糊测试选项可以随机化线程调度,以帮助检测驱动程序中的并发漏洞。

谨慎 在验证计算机上的所有(或大量)驱动程序时,此选项不适合使用。 只有在对单个驱动程序或其附加的筛选器驱动程序执行有针对性的测试时,才应使用此选项。 同时对大量驱动程序使用此选项可能会导致不可预知的结果,并可能强制在与要测试的驱动程序无关的组件中崩溃。

注意 此选项从 Windows 8.1 开始可用。

选择该选项后,驱动程序验证程序会在线程中的各个点插入随机延迟。 与 Power Framework 延迟模糊处理 选项一样,内核同步延迟模糊处理选项使用一种算法来帮助改善在驱动程序中查找错误的可能性。 内核同步延迟模糊处理改进了传统压力测试,其中测试程序运行数天甚至数周,希望捕获并发执行中可能出现的问题。

激活此选项

可以通过使用驱动程序验证管理器或 Verifier.exe 命令行,为一个或多个驱动程序激活内核同步延迟模糊功能。 有关详细信息,请参阅 “选择驱动程序验证程序选项”。 必须重新启动计算机才能激活或停用 Power Framework 延迟模糊选项。

注意 内核同步延迟模糊选项通过在各种内核 API 函数调用中插入随机延迟来提高运行时出现的争用条件的概率。 要使这些延迟更有效,可以使用其他驱动程序验证程序选项启用此选项。 由于可以引入的延迟,可以预期计算机响应速度较慢。

  • 在命令行

    在命令行中,内核同步延迟模糊由 验证程序 /flags 0x00800000 (Bit 23) 表示。 若要激活 Power Framework 延迟模糊,请使用标志值0x00800000或向标志值添加0x00800000。 例如:

    verifier /flags 0x00800000 /driver MyDriver.sys
    

    下一次启动后,该功能将处于活动状态。

  • 使用驱动程序验证管理器

    1. 启动驱动程序验证程序管理器。 在命令提示符窗口中键入 验证程序
    2. 选择 “创建自定义设置”(面向代码开发人员), 然后单击“ 下一步”。
    3. 从完整列表中选择单个设置
    4. 选择(检查) 内核同步延迟模糊
    5. 重启电脑

为什么内核同步延迟模糊?

大多数驱动程序例程是可重入和并发的。 与并发相关的故障很难发现。 Bug 可能包括死锁和竞争条件,这是由于同步问题和线程之间的错误计时引起的。 压力测试是用于查找这些 bug 的传统测试技术,但它可能很慢且成本高昂,而且结果并不总是可重现的。 内核同步延迟模糊选项通过在各种内核 API 函数调用中插入随机延迟来提高运行时出现的争用条件的概率。 例如,如果竞争状态导致驱动程序在 IRP 被取消后仍尝试访问,使用内核同步延迟模糊选项可以增加出现这种竞争状态的可能性,从而驱动程序验证程序能够在测试期间检测到该错误。 内核同步延迟模糊选项可增强驱动程序验证程序的功能和有效性。