驱动程序测试工具

您所在的位置:网站首页 linux驱动测试工具 驱动程序测试工具

驱动程序测试工具

2024-07-17 16:01| 来源: 网络整理| 查看: 265

一、驱动测试说明 & 配置

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