内核同步延迟模糊处理

注意

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

内核同步延迟模糊选项将线程计划随机化,以帮助检测驱动程序中的并发 bug。

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

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

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

激活此选项

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

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

  • 在命令行

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

    verifier /flags 0x00800000 /driver MyDriver.sys
    

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

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

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

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

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