Windows驱动开发遇到的问题(二)

时间:2022-09-23 21:22:28

今天工作遇到的问题:

1.我是从WDF框架开始学习驱动,编译环境也是VS2012+WDK8的组合,驱动工程完成以后,生成的驱动文件只有VISTA,WIN7和WIN8的版本,虽然说微软已经停止了XP系统的维护,但是还是有大量的用户在使用XP系统,所以还要继续开发XP系统的驱动文件。我原来的方法是采用重新安装WDK7,然后再编译出XP系统驱动文件的方法,这个方法实在是太过麻烦,今天发现了张佩发表的一篇文章《VS2012开发驱动小Tip之:更改KMDF版本,可支持XP》。原文地址为:http://www.yiiyee.cn/Blog/vs2012-1/

早期的KMDF版本保持了良好的向后兼容性,比如用最晚KMDF 1.9编译出来的驱动程序,可安装使用于XP系统。但从下图(MSDN)可以看出,从KMDF 1.11开始,情况变化了。KMDF 1.11取消了对Vista以前系统的支持。而KMDF 1.13更绝,编译出来的驱动只能安装在Win8.1上。所以只要选择KMDF1.9编译出来的驱动就可以应用在XP系统上。

Windows驱动开发遇到的问题(二)

解决办法如下图:

Windows驱动开发遇到的问题(二)

它默认使用的是主版本1,次版本11。只要把次版本改成9,保存后重新编译,编译出来的驱动程序就是KMDF 1.9版本,从而可以安装运行于XP系统上了。

2.在编译出XP驱动后,我发现有些系统可以正确安装我生成的驱动,有些XP系统就会在加载驱动时出现代码39的错误,网上有很多文章在说是WdfCoInstaller名称的dll文件不正确,结果就是可以使用对应WDK版本的dll文件来安装驱动即可。比如我个人安装的WDK版本为7600.16385.1,可以在dll文件下载,下载到适合改版本WDK的dll文件,然后在inf文件中包括,安装驱动即可成功。

每天都要有进步!