在开发期间更新UMDF驱动程序

时间:2010-01-03 03:17:47

标签: driver umdf

我在使用“devcon”更新UMDF驱动程序时遇到一些问题 标准的代码部署调试周期。问题是“devcon update”不是 真的更新任何东西,除非版本号或DLL的日期 文件和INF文件已从存储在系统驱动程序中的文件更改 缓存文件夹。经过一系列疯狂的实验后,我发现了这一点 强制事物使用最新文件的一种方法是通过这样做 以下:

  1. 更改传递给的参数 “makefile.inc”中的“stampinf.exe” 明确设置版本 “-v”选项。
  2. 修改     资源脚本文件(“DRIVER_NAME.rc”)首先定义     VER_USE_OTHER_MAJOR_MINOR_VER     之前包括“ntverp.h”然后     明确定义     VER_PRODUCTMAJORVERSION和     VER_PRODUCTMINORVERSION。你会     请注意,此系统不允许     我们改变构建和     修订号。在Win7上这个     似乎固定在7600和16385     在“ntverp.h”中。这是设计吗?
  3. 所以,我首先修改“makefile.inc”并将“-v”选项设置为类似的东西 “1.1.7600.16385”手动递增每个单独的次要版本 构建然后修改RC文件并使用更新VER_PRODUCTMINORVERSION 相同的数字。

    或者,如果我在SYSTEM帐户下运行命令提示符并继续 删除驱动程序缓存文件夹 之前的“C:\ windows \ system32 \ DriverStore \ FileRepository \ DRIVER FOLDER” 运行“devcon”然后也有效。

    现在,我想我在这里似乎缺少一些相当基本的东西 做一个相当痛苦的方式。请帮忙!谢谢!

2 个答案:

答案 0 :(得分:1)

为什么你不能拔掉设备并更换卸载的DLL?您不需要重新安装驱动程序,只需更换模块即可。请注意,您不应该在生产期间或与客户有关的任何事情中执行此操作,但如果您正在编写驱动程序,请使用相同的版本号猛烈攻击新模块。

  

在Win7上,这似乎在“ntverp.h”中修正为7600和16385。这是设计吗?

是的,至少在下一个服务包

之前

答案 1 :(得分:0)

正如Paul Betts上面所建议的那样,在设备管理器或使用“devcon”禁用设备之后,似乎只需在驱动程序文件夹中直接替换UMDF DLL(例如c:\windows\system32\drivers\umdf\) ”。在发布此处之前我曾在微软的设备驱动程序新闻组中提出这个问题,但没有得到满意的答复 - 但有些人在我发布之后最终回复了!所以我也会提到这个帖子的链接:

  

http://bit.ly/6PDxKT