我在使用“devcon”更新UMDF驱动程序时遇到一些问题 标准的代码部署调试周期。问题是“devcon update”不是 真的更新任何东西,除非版本号或DLL的日期 文件和INF文件已从存储在系统驱动程序中的文件更改 缓存文件夹。经过一系列疯狂的实验后,我发现了这一点 强制事物使用最新文件的一种方法是通过这样做 以下:
VER_USE_OTHER_MAJOR_MINOR_VER
之前包括“ntverp.h
”然后
明确定义
VER_PRODUCTMAJORVERSION
和
VER_PRODUCTMINORVERSION
。你会
请注意,此系统不允许
我们改变构建和
修订号。在Win7上这个
似乎固定在7600和16385
在“ntverp.h
”中。这是设计吗?所以,我首先修改“makefile.inc”并将“-v”选项设置为类似的东西
“1.1.7600.16385”手动递增每个单独的次要版本
构建然后修改RC文件并使用更新VER_PRODUCTMINORVERSION
相同的数字。
或者,如果我在SYSTEM帐户下运行命令提示符并继续 删除驱动程序缓存文件夹 之前的“C:\ windows \ system32 \ DriverStore \ FileRepository \ DRIVER FOLDER” 运行“devcon”然后也有效。
现在,我想我在这里似乎缺少一些相当基本的东西 做一个相当痛苦的方式。请帮忙!谢谢!
答案 0 :(得分:1)
为什么你不能拔掉设备并更换卸载的DLL?您不需要重新安装驱动程序,只需更换模块即可。请注意,您不应该在生产期间或与客户有关的任何事情中执行此操作,但如果您正在编写驱动程序,请使用相同的版本号猛烈攻击新模块。
在Win7上,这似乎在“ntverp.h”中修正为7600和16385。这是设计吗?
是的,至少在下一个服务包
之前答案 1 :(得分:0)
正如Paul Betts上面所建议的那样,在设备管理器或使用“devcon”禁用设备之后,似乎只需在驱动程序文件夹中直接替换UMDF DLL(例如c:\windows\system32\drivers\umdf\
) ”。在发布此处之前我曾在微软的设备驱动程序新闻组中提出这个问题,但没有得到满意的答复 - 但有些人在我发布之后最终回复了!所以我也会提到这个帖子的链接: