启用错误注入
WdfTester 工具提供 WMI 接口,用于为特定驱动程序配置 DDI 故障注入。 提供了 (WdftesterScript.wsf) 的脚本,该脚本使用此 WMI 接口来配置故障注入。 可以编写自己的脚本,也可以使用提供的脚本来启用故障注入。 可以从命令提示符窗口 (WdftesterScript.wsf) 运行脚本,以注册、配置和注销驱动程序。 该脚本还有一个名为 runtest 的命令行选项。
Runtest 选项的作用
运行测试选项对驱动程序执行简单的禁用和启用操作。 此选项演示如何使用该工具。 首先,该脚本会禁用指定的驱动程序,然后启用它。 这允许 WdfTester 监视禁用和启用操作期间进行的所有 DDI 调用。 该脚本使用其中一个 WMI 接口来获取在此期间调用的 DDI 列表。 该脚本确定其中哪些 DDI 只能 (返回 NTSTATUS) 失败。 然后,该脚本调用另一个 WMI 接口,将 WdfTester 配置为使列表中的第一个 DDI 失败。 该脚本禁用并启用驱动程序,这会导致 DDI 失败并触发 WMI 事件。 脚本已在等待 DDI 的 WMI 失败事件。 如果成功收到事件,但失败未导致计算机无响应或导致驱动程序开发人员或测试人员确定的 bug 检查 () 测试被视为成功。 然后,该脚本针对列表中的下一个 DDI 重复这些步骤。
注意Runtest 选项要求复制 DevCon (Devcon.exe) 工具,并将其放置在与其他 Wdftester 文件相同的目录中。 Devcon.exe应用程序位于 %WDKRoot%\tools\<platform> 目录中。
运行测试选项:
将驱动程序注册到 WdfTester。 如果尚未安装驱动程序,则必须先安装它,然后才能使用 Runtest。
为此驱动程序启用驱动程序验证程序 (运行 Windows Vista 或更高版本的计算机不需要重启) 。
使用 Devcon 应用程序禁用驱动程序。
使用 Devcon 应用程序启用驱动程序。
检索在启用和禁用操作期间调用的函数的名称,并标识返回 NTSTATUS 且可能失败的函数。
启动异步 WMI 事件通知。
对于在步骤 5 中获取的列表中可能失败的每个 DDI:
- 配置函数以用于失败。
- 禁用驱动程序,然后使用Devcon.exe启用驱动程序。 此操作调用 函数,而 WdfTester 将失败函数调用。
- 等待 WMI 事件触发。
- 如果触发 WMI 事件, 则运行测试 选项对列表中的下一个函数重复步骤 7。
取消注册驱动程序。