15712|31

72

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

【高分请教】Windows下如何自动安装驱动程序 [复制链接]

Hi,
小弟目前做的项目需要在Windows下安装一个简单的USB驱动,驱动程序由第三方提供(没有经过MS认证),包含DLL、INF、SYS等等文件。
一般情况下,当即插即用设备连上PC后,如果PC中没有该设备的驱动,会弹出安装驱动的提示,用户根据提示来一步步安装就可以了。
现在这个项目需要事先就把驱动安装到PC中去,也就是把安装驱动这件事放在安装软件(项目最终的发布软件)的过程中完成。那么应该怎么去安装驱动呢?
并且由于软件最终会运行在XP、VISTA和Windows7下面,那么这三个系统下的自动安装的过程有多大的区别呢?


PS:请教过一个高手,写个精简DOS程序即可,但还是没有弄清楚。正在看《Windows驱动开发技术详解》,由于不是写驱动,只是安装驱动,这本书中也没有找到可行的办法。

最新回复

我的方法: DPInst.exe是WDK中的一个实用工具,它可以自动搜索指定目录的inf文件,并安装相应设备的驱动程序。 MSDN中有关于DPInst.exe的详细资料: http://msdn.microsoft.com/en-us/library/ms790308.aspx http://www.microsoft.com/china/whdc/driver/install/difxtools.mspx 下载地址: http://www.microsoft.com/china/whdc/driver/install/DIFxtls.mspx http://www.microsoft.com/downloads/details.aspx?FamilyID=2105564e-1a9a-4bf4-8d74-ec5b52da3d00&displaylang=en DPInst.exe支持命令行,它支持的参数可以使用DPInst.exe /?查看。 示例: 1.自动搜索C:\VGA目录下的INF文件并安装驱动程序: DPInst.exe /PATH "C:\VGA" /F /Q /LM /A 2.自动搜索C:\目录下的INF文件并安装驱动程序: DPInst.exe /PATH C:\ /LM http://qingfengju.com/article.asp?id=183  详情 回复 发表于 2010-3-1 15:21
点赞 关注

回复
举报

71

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
楼主关键是要实现你的设备的HID,我们采用一个带USB的单片机,开始也没实现免驱,后来市场需求,我们采用挂接在HID上,实现了免驱设计。即可以利用电脑的自带的USB的等驱动文件,自动识别我的设备。
oogle与百度下“免驱设计 HID”

一下几篇文章很不错,
http://www.dzsc.com/data/html/2009-7-21/77757.html
http://www.abc188.com/info/html/wangzhanyunying/jianzhanjingyan/20080417/67834.html
http://linux.chinaunix.net/techdoc/install/2008/03/14/983179.shtml
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
感谢楼上解答。
只是楼上提供的是关于libUSB的相关资料。
而且驱动程序已经有提供了,我需要安装这个驱动。
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

4
 
这个感觉向是把你的驱动 要加载到操作系统中,做到即插即用的,就跟我们使用U盘是一样的

楼主可以写个啥程序,把驱动加载到PC上,只要插上你的设备 就可以识别

这只是我的想法 具体这软件咋写 我也不会
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

5
 
我也想知道,好像没有见过类似的做法。
 
 
 

回复

60

帖子

0

TA的资源

一粒金砂(初级)

6
 
回cfanlwn: 是的。因为用到了一个USB转串口的芯片,所以要安装下驱动,当然就像平常那样的,当硬件接上PC后,按照提示一步一步安装也可以。但是这样子一来是使得用户的使用变得麻烦,而且增加了安装过程的风险(比如说MS的数字认证问题)。所以现在要将驱动在安装程序的时候就安装上去。

就是不晓得应该怎么做啊。。。



 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

7
 
你说让他自动获取,然后我们一步步安装,最后安装上也就是把一些信息放在WINDOWS下,然后在注册表中加写信息,楼主可以查查这些资料,看能不能写个批处理程序
 
 
 

回复

92

帖子

0

TA的资源

一粒金砂(初级)

8
 
回cfanlwn:

是不是大家都是通过批处理来做这件事的?因为我问了其他版块的高手,有人也这么说的。

有个高手提供了如下的批处理脚本:

echo 安装驱动
rundll32.exe setupapi.dll,InstallHinfSection DefaultInstall 128 %inf%
echo 安装完成

我没有写过批处理脚本,刚刚找了一篇批处理的文章正在屁颠屁颠的看。

能帮忙分析一下这个脚本么?


 
 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

9
 
请教cfanlwn:

我刚刚试了一下。
批处理代码如下:
@echo off
echo 判断系统版本
set inf=D:\XP\DRIVER\CH341WDM.INF
echo 安装驱动
rundll32.exe setupapi.dll,InstallHinfSection DefaultInstall 128 %inf%
echo 安装完成

发现没有安装上去,请问是怎么一回事呢? 问题出在哪里了呢?

 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

10
 
用DeviceTree查看了一下,确实没有安装上去。。。
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

11
 
引用 5 楼 kisery008 的回复:
回cfanlwn: 是的。因为用到了一个USB转串口的芯片,所以要安装下驱动,当然就像平常那样的,当硬件接上PC后,按照提示一步一步安装也可以。但是这样子一来是使得用户的使用变得麻烦,而且增加了安装过程的风险(比如说MS的数字认证问题)。所以现在要将驱动在安装程序的时候就安装上去。

就是不晓得应该怎么做啊。。。



一般的USB转串口的芯片,都会由这个芯片厂家提供PC端的驱动,一般只要实现在PC上安装驱动,之后你随时插拔,系统就会自动识别你的设备。

我们用到很多USB转串口的转接线都是这样的,我们用CP2102做的一款产品也是这样,先人为安装驱动,之后就不用管了、
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

12
 
既然第三方已经提供了“包含DLL、INF、SYS等等文件。”

楼主是否可以百度或者google下,“如何生成exe可执行文件”。


我们当时做项目,就把这个DLL和一些系统文件,用专用的软件人为生成了一个exe,之后一点就自动运行。
 
 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

13
 
回kyzf:
谢谢提示啊~~
因为这个驱动没有取得MS的认证,所以如果人工安装的话可能对那些警告提示感到头疼。

关于生成exe可执行文件,是个不错的方法,我现在看到有人用批处理程序就搞定了,所以就先按照那个方法先试了一下。。

没找到专业软件生成EXE文件,能提供一个下载的链接或者方法么?谢谢咯~~

另外,“把这个DLL和一些系统文件,用专用的软件人为生成了一个exe”,请问还需要哪些系统文件呢?最后生成的EXE可执行文件会不会很大啊??

 
 
 

回复

95

帖子

0

TA的资源

一粒金砂(初级)

14
 
为什么我按照系统提示来安装的时候  那个进度条显示的安装内容是DLL文件   而用批处理倒的时候 显示安装的内容是SYS文件   

一般驱动程序不都是INF+VXD+SYS么?  我知道那个DLL文件里提供了一些操作数据流的接口。

不明白的是,安装驱动到底是要copy哪些内容到系统文件夹呢?

 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

15
 
重新测试过了,DLL文件和SYS文件都已经COPY到了正确的系统文件夹下面。但是插上硬件的时候,系统还是会弹出安装驱动的提示。

是不是和注册表有关系呢?

我按照系统提示安装的驱动 和 通过批处理程序安装的驱动 所调用的INF文件时同一个文件啊。
按理说应该不会出现注册表的修改内容不一致的情况。

请教各位老大 ,  这到底是什么情况呢?


 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

16
 
Windows DDK中有一个例子叫做BindView可以实现你的目的,不过如果没有数字证书,是一定会弹出提示“驱动可能不安全”的窗口的。前几天我刚把BindView中自动安装的代码分离了出来,有需要的话可以跟我联系。
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

17
 
回hzy_76:
BindView的实现原理是什么呢? 也是通过WDM加载的么?还是通过NT方式加载的(这个方法在《Windows驱动开发技术详解》第三章有附带的源代码)。

另外怎么联系你呢?
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

18
 
应该是WDM吧,我是用来安装我自己写的NDIS驱动的,已经调试通过。如果需要的话,留言给我,我可以把代码发给你。
驱动开发我也是初学者,有问题一起探讨!
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

19
 
回楼上: 给你留言了,指点我一下吧。
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

20
 
{
        if (punk)
        {
                punk->Release();
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表