Windows驱动稳定性测试

(请保留->发布地址: http://yiiyee.cn/blog/author/luobing/ )

近期UEFI探索系列没有更新,忙着处理北京的案子以及帮忙朋友做一个IO驱动。开发完成后,我不知道怎么去测试稳定性了。问道于张佩,他建议用Verifier进行测试。

正好去上海有事,周末拉着张佩来教我如何测试和调试。过程就不赘述了,我把使用Verifier的过程记录下来,以备未来查看。

Driver Verifier不需要下载,它包含在大多数windows的发行版本中。在%WinDir%\system32\下可以找到,比如这是我工作的操作系统:

图1 verifier.exe的位置

在微软的网站上,很详细的说明了在哪些情况下需要使用Driver verifier。具体可以参考网页:https://docs.microsoft.com/en-us/windows-hardware/drivers/devtest/driver-verifier

1 设定Verifier测试项

我所用的驱动是Nt driver,首先要将驱动加载起来,在Verifier中才能找到。

以管理员权限运行cmd.exe,输入verifier.exe,启动verifier:

图2 verifier.exe的启动界面

如图中红线所标识的,有两种方式创建设置。我期望可以自由选择测试项,因此选择“创建自定义设置”,并点击“下一步”:

图3 各类测试选项

Verifier列出了各种验证选项。我一般的做法是先选择其中一半选项进行测试,看驱动运行过程中会不会蓝屏。如果测试中没有蓝屏,则选择另外一半;如果蓝屏,则减少选项,直到找出使得驱动蓝屏的选项为止。

当然,导致测试驱动蓝屏的选项可能又好几个,一个个找吧,然后利用Memory Dump和windbg找出问题所在。

再“下一步”,对测试选项的细节进行配置,这里选择缺省配置即可。继续下一步:

图4 选择驱动程序

我需要指定测试的驱动,选择“从一个列表选择驱动程序名”。从列表中选择需要测试的驱动:

图5 选择需要测试的驱动

点击“完成”,重新启动操作系统,设置就完成了。

2 测试驱动

设置完成后,就可以对驱动进行验证了。

自己写一个使用驱动的例子程序,用来测试驱动的功能。以我使用的IO端口访问,主要是测试应用程序通过驱动访问物理端口,比如0x70,0x71访问CMOS RAM。

如图:

图6 测试驱动

3 关闭verifier测试

Verifier在运行的时候,会占用不少系统资源。测试完后,最好把设置删除掉。

图7 关闭测试设置

启动verifier,选择“删除现有设置”,重启系统即可生效。

原文链接地址:
http://yiiyee.cn/blog/2019/08/03/windows%e9%a9%b1%e5%8a%a8%e7%a8%b3%e5%ae%9a%e6%80%a7%e6%b5%8b%e8%af%95/

3,712 total views, 1 views today

发表评论

电子邮件地址不会被公开。