我在标准代码部署调试周期中使用“devcon”更新 UMDF 驱动程序时遇到了一些问题。问题是“devcon update”并没有真正更新任何东西,除非 DLL 文件和 INF 文件的版本号或日期与存储在系统驱动程序缓存文件夹中的内容不同。经过一系列令人抓狂的实验后,我发现强制使用最新文件的一种方法是执行以下操作:
- 通过使用“-v”选项显式设置版本来更改“makefile.inc”中传递给“stampinf.exe”的参数。
- 修改资源脚本文件(“DRIVER_NAME.rc”),
VER_USE_OTHER_MAJOR_MINOR_VER
在包含“ntverp.h
”之前先定义,然后显式定义VER_PRODUCTMAJORVERSION
andVER_PRODUCTMINORVERSION
。您会注意到该系统不允许我们更改构建和修订号。在 Win7 上,这似乎在“ntverp.h
”中固定为 7600 和 16385。这是设计使然吗?
因此,我首先修改“makefile.inc”并将“-v”选项设置为“1.1.7600.16385”之类的东西,为每个构建手动增加次要版本,然后修改 RC 文件并VER_PRODUCTMINORVERSION
使用相同的编号进行更新。
或者,如果我在 SYSTEM 帐户下运行命令提示符并在运行“devcon”之前删除“C:\windows\system32\DriverStore\FileRepository\DRIVER FOLDER”中的驱动程序缓存文件夹,那么这也可以。
现在,我想我在这里遗漏了一些相当基本的东西,因为这似乎是一种相当痛苦的方式。请帮忙!谢谢!