驱动程序测试工具 |
您所在的位置:网站首页 › linux驱动测试工具 › 驱动程序测试工具 |
一、驱动测试说明 & 配置 Driver Verifier 是一个极为有用的工具,可用来检验内核模式驱动程序中的错误。 它可以测试和捕获在正常操作时通常难以发现的许多情况。 Driver Verifier 将验证驱动程序未进行非法的函数调用或引起系统崩溃。 它可以用来识别内存损坏、错误处理的 I/O 请求包 (IRP)、无效的直接内存访问 (DMA) 缓冲区占用、可能的死锁以及低资源模拟等情况。 在开始菜单 -> 运行中输入 verifier 后,可以弹出如下菜单: 选择 “创建自定义设置”选项,并点击下一步后,出现如下菜单: 为了测试驱动,我们可以从一个完整的列表中选择需要监视和模拟的资源项,即此步选择“从一个完整的列表选择单个设置(I))”,然后单击下一步: 在这里我们可以选择需要测试的“测试类型”,下面统一介绍一下各类型在驱动测试中的意义: 池分配(特殊池 & 池跟踪)尝试从特殊池中分配一个驱动程序的所有池配额。此驱动程序的配额是由“拒绝访问”权限分离和限定,而不是与系统的其他部分共享池配额。此功能可以确定驱动程序的池配额是否超出了其应得的份额,进而导致系统损坏和不稳定。当您启用此功能并且目标计算机拥有足够的物理和虚拟内存时,该驱动程序的所有配额将自动重定向到特殊池。 参数验证(强制 IRQL 检查 /DMA 检查 / 安全性检查 / 杂项检查)驱动程序调用的所有旋转锁、IRQL 和池分配都接受自动参数验证。这意味着检查以下各项: 引发的 IRQL 确实是引发的 IRQL(当前 IRQL 低于目标 IRQL)。 较低的 IRQL 确实是较低的 IRQL。 释放两次旋转锁。 旋转锁的获得 / 释放是在正确的 IRQL 下完成的。 页面缓冲池分配 / 释放是在正确的 IRQL(APC_LEVEL 或更低)下完成的。 非页面缓冲池分配 / 释放是在正确的 IRQL(DISPATCH_LEVEL 或更低)下完成的。 没有为这些应用程序编程接口指定随机(未初始化)值。 资源类检查(I/O 检查 / 强制挂起 I/O 请求 低资源模拟)可以为特定驱动程序提供极限内存压力,而不影响其他驱动程序(不管系统内存有多大)。使用下面的方法可以做到这一点:通知内存管理,将该驱动程序的所有可分页代码和数据以及系统页面缓冲池、代码和数据设为无效。这样,您就可以检测到错误地持有旋转锁或引发 IRQL 的驱动程序,并随后获得对分页代码或数据的访问权限。可以使用“极限内存压力”来检测一些间歇性的问题并找出原因。 所以测试驱动的一般情况,为了验证驱动是否有异常,我们通常会把所有选项勾上;但是,在测试过程中,发现当开启“低资源模拟”的情况下,会出现驱动部分功能失效的问题,所以在测试过程不勾选此选项。 点击下一步,我们进入下一个选项: 我们选择“从一个列表选择驱动程序名”这个选项: 在这列表中选择我们需要测试的驱动即可。 说明:针对同一驱动的测试,只需要配置一次即可,即使驱动是卸载后重新安装的也没有问题,只要驱动注册名是一样的即可; 二、删除驱动验证工具配置: 运行里输入:verifier: 选择“删除现有设置”选项即可; 三、查看现有驱动验证设置: 有时候为了排查问题,我们需要查看当前驱动验证的设置,我们也可以通过“显示现有设置”选项查看: |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |