驱动程序开发网技术社区 » 驱动及应用程序安装程序制作 » 我的驱动自动安装程序终于完成 (转到动态网页)
本页主题: 我的驱动自动安装程序终于完成 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题

skylxd
级别: 驱动牛犊


精华: 0
发帖: 28
威望: 25 点
积分: 221 分
贡献值: 0 点
好评度: 19 点
原创分: 1 分
注册时间:2005-09-21
最后登录:2007-09-30

 我的驱动自动安装程序终于完成

通过 阅读仿照 xwpcom 兄弟写的例子,终于完成了我的驱动自动安装程序。在此向xwpcom 表示感谢。

在我的编码过程中遇到一些问题,在此说说


我的程序很简单,找到当前路径,找到需要按照的inf文件(sys文件和inf同目录事先放好),直接调用下面这个函数就可以了。
UpdateDriverForPlugAndPlayDevices(0,    HWID, FName,    INSTALLFLAG_FORCE,
                                                                                /&RebootRequired))

遇到的问题:
我的设备在系统里的全部名称是 PCI\\VEN_110A&DEV_2104&SUBSYS_00050000&REV_02\3&61aaa01&0&58

HWID 是设备名称 我开始只写了主设备号 PCI\\VEN_110A&DEV_2104 在xp 和2003下都可以正确按照,就是在2000下不行,报没有此设备。在网上找了很多资料,发现微软有个说法,2000在打了sp4补丁后会出项某些按照程序无法自动按照,解决的办法是再打一个kb822831这个补丁,虽然我打了这个补丁没有解决我的问题,如果有兄弟要是遇到这个安装问题可以试试。后来通过对比xwpcom 兄弟发现他的程序就可以安装,且程序基本差不多,再跟了他的代码后才发现他传给 UpdateDriverForPlugAndPlayDevices 的那个hwid参数是  PCI\\VEN_110A&DEV_2104&SUBSYS_00050000&REV_02 ,我把参数改了后立马成功,但是继续把这个参数写全到 PCI\\VEN_110A&DEV_2104&SUBSYS_00050000&REV_02\3&61aaa01&0&58
又装不上了,不知道为什么了。

顶端 Posted: 2007-08-25 22:08 | Unknown [楼 主]
skylxd
级别: 驱动牛犊


精华: 0
发帖: 28
威望: 25 点
积分: 221 分
贡献值: 0 点
好评度: 19 点
原创分: 1 分
注册时间:2005-09-21
最后登录:2007-09-30

 

又遇到了一个问题,硬件在系统中的hid好象会改变,hid 由PCI\\VEN_110A&DEV_2104&SUBSYS_00050000&REV_02  变成了 PCI\\VEN_110A&DEV_2104&SUBSYS_00070000&REV_02  ,驱动又装不上了,只好又研究了一下xwpcom 兄弟的代码,先从inf文件中读取到hid PCI\\VEN_110A&DEV_2104 ,再在系统中查找符合  PCI\\VEN_110A&DEV_2104  的硬件的详细id ,把这个id 传给UpdateDriverForPlugAndPlayDevices 就可以。唉,对系统的驱动流程不了解,只能通过多测试来找问题了

附上修改后的代码
附件: ucardsetup.rar (18 K) 下载次数:286
顶端 Posted: 2007-08-29 20:42 | Unknown 1 楼
skylxd
级别: 驱动牛犊


精华: 0
发帖: 28
威望: 25 点
积分: 221 分
贡献值: 0 点
好评度: 19 点
原创分: 1 分
注册时间:2005-09-21
最后登录:2007-09-30

 

编译时 需要安装ddk文件 并要在vc设置上把一些ddk的头文件包含进去,同时需要的几个库要要在vc环境下指明,要用到的几个ddk的库的路径在vc里也要设置
顶端 Posted: 2007-08-29 20:45 | Unknown 2 楼
rushhour
级别: 驱动牛犊


精华: 0
发帖: 55
威望: 56 点
积分: 550 分
贡献值: 0 点
好评度: 55 点
原创分: 0 分
注册时间:2007-07-30
最后登录:2007-08-30

 

学习!
顶端 Posted: 2007-08-30 01:35 | 上海市闵行区电信ADSL 3 楼
sunwill_chen
级别: 驱动牛犊


精华: 0
发帖: 98
威望: 99 点
积分: 921 分
贡献值: 0 点
好评度: 97 点
原创分: 0 分
注册时间:2007-08-19
最后登录:2008-07-25

 

这个有个命令行界面在那边不太好看啊,不知道有什么办法可以弄个图形进度条那样?
顶端 Posted: 2007-09-10 22:54 | 福建省 4 楼
zhoujiamurong
熟读唐诗三百首,不会__诗也会__
级别: 驱动小牛


精华: 0
发帖: 264
威望: 265 点
积分: 1055 分
贡献值: 0 点
好评度: 215 点
原创分: 0 分
注册时间:2006-03-20
最后登录:2008-08-04

 

好像编译不过啊?要加什么头文件?
c:\winddk\2600\inc\wxp\cfgmgr32.h(122) : error C2146: syntax error : missing ';' before identifier 'LOG_CONF'
c:\winddk\2600\inc\wxp\cfgmgr32.h(122) : fatal error C1004: unexpected end of file found
顶端 Posted: 2007-09-18 15:56 | 美国 5 楼
gussing
级别: 驱动牛犊


精华: 0
发帖: 25
威望: 26 点
积分: 250 分
贡献值: 0 点
好评度: 25 点
原创分: 0 分
注册时间:2007-04-20
最后登录:2008-07-31

 

报错说什么ERROR_NO_DRIVER_SELECTED
顶端 Posted: 2007-09-20 11:26 | 上海市网通 6 楼
skylxd
级别: 驱动牛犊


精华: 0
发帖: 28
威望: 25 点
积分: 221 分
贡献值: 0 点
好评度: 19 点
原创分: 1 分
注册时间:2005-09-21
最后登录:2007-09-30

 

Quote:
引用第5楼zhoujiamurong于2007-09-18 15:56发表的  :
好像编译不过啊?要加什么头文件?
c:winddk2600incwxpcfgmgr32.h(122) : error C2146: syntax error : missing ';' before identifier 'LOG_CONF'
c:winddk2600incwxpcfgmgr32.h(122) : fatal error C1004: unexpected end of file found




将 打开 vc tools->Options 到 directoris 页面 include filse 里

增加一个ddk的头文件路径 如我的路径是  D:\WINDDK\3790\inc\wxp
一定要将其放在第一行位置

还是在directoris 页面里 在 library filse 里 增加一个 ddk库路径,如我的

D:\WINDDK\3790\lib\wxp\i386 就可以了


可惜这里不能贴图
顶端 Posted: 2007-09-24 10:52 | Unknown 7 楼
oushengfen
级别: 驱动牛犊


精华: 0
发帖: 83
威望: 84 点
积分: 741 分
贡献值: 0 点
好评度: 82 点
原创分: 0 分
注册时间:2007-06-28
最后登录:2008-07-02

 

UpdateDriverForPlugAndPlayDevices(0,    HWID, FName,    INSTALLFLAG_FORCE,
                                                                                /&RebootRequired))
请问楼主,这个函数是那里的?是系统的还是自己编写的.还有自动安装的步骤是什么,你插上硬件,系统就会自动弹出窗体出来啊,怎么自动法啊!
顶端 Posted: 2007-09-26 10:05 | 湖南省株洲市电信ADSL 8 楼
zzq191
级别: 驱动中牛


精华: 0
发帖: 564
威望: 365 点
积分: 1004 分
贡献值: 0 点
好评度: 318 点
原创分: 0 分
注册时间:2001-08-09
最后登录:2008-06-30

 

这个函数在vista下不能用
顶端 Posted: 2007-09-28 17:23 | 浙江省杭州市网通 9 楼
lsxredrain
级别: 驱动中牛


精华: 4
发帖: 412
威望: 421 点
积分: 1000 分
贡献值: 0 点
好评度: 420 点
原创分: 4 分
注册时间:2006-08-31
最后登录:2008-03-14

 

好东西,顶,这是什么驱动安装,怎么这么麻烦?
顶端 Posted: 2007-09-28 22:38 | 浙江省杭州市电信ADSL 10 楼
xaxiao
级别: 驱动小牛


精华: 2
发帖: 193
威望: 198 点
积分: 590 分
贡献值: 0 点
好评度: 197 点
原创分: 2 分
注册时间:2007-09-11
最后登录:2008-07-23

 

参考
顶端 Posted: 2007-09-29 12:17 | 美国 11 楼
xaxiao
级别: 驱动小牛


精华: 2
发帖: 193
威望: 198 点
积分: 590 分
贡献值: 0 点
好评度: 197 点
原创分: 2 分
注册时间:2007-09-11
最后登录:2008-07-23

 

值得学习
顶端 Posted: 2007-09-29 12:19 | 美国 12 楼
jjg123
级别: 驱动牛犊


精华: 0
发帖: 1
威望: 2 点
积分: 10 分
贡献值: 0 点
好评度: 1 点
原创分: 0 分
注册时间:2007-10-07
最后登录:2007-10-07

 

中国人搞软件开发的真没用,找来找去总算在公元2007年9月,这里找到了关于:驱动自动安装的程序,可能还是个半成品。
顶端 Posted: 2007-10-07 16:17 | 美国 13 楼
gussing
级别: 驱动牛犊


精华: 0
发帖: 25
威望: 26 点
积分: 250 分
贡献值: 0 点
好评度: 25 点
原创分: 0 分
注册时间:2007-04-20
最后登录:2008-07-31

 

不得不跟楼主说一下,程序中还是有点错误的
以我写的程序为例子
%MfgName%是DigitalTV_Mfg, NT
但是段名是[DigitalTV_Mfg.NT]
其中的,要换成.
不然安装不成功。
---------------------------------------
再和楼上的说一下,非得找别人的吗,不能自己写?到底是中国人没用还是你没用?
顶端 Posted: 2007-10-08 14:13 | 上海市网通 14 楼
wjhai23
级别: 驱动牛犊


精华: 0
发帖: 5
威望: 6 点
积分: 50 分
贡献值: 0 点
好评度: 5 点
原创分: 0 分
注册时间:2007-09-20
最后登录:2008-04-23

 

楼主这个只是做到了 连接设备时 运行这个程序就把驱动安装上吧 ?

如果没有连接设备, 运行后再插入设备一样没有驱动,  这种我前段时间也做过一次

要怎样才能做到不连接设备安装完驱动后 连接设备时自动去搜索安装?

各位大侠支招下
顶端 Posted: 2007-10-09 16:59 | 福建省厦门市信息网 15 楼
youyouwoxin
级别: 驱动牛犊


精华: 0
发帖: 8
威望: 9 点
积分: 80 分
贡献值: 0 点
好评度: 8 点
原创分: 0 分
注册时间:2007-09-25
最后登录:2007-10-11

 

我的库文件怎么编译不了啊,总是说fatal error C1083: Cannot open include file: 'wdm.h': No such file or directory,这是怎么回事?
顶端 Posted: 2007-10-10 20:10 | 重庆市 16 楼
xalitao
级别: 驱动牛犊


精华: 0
发帖: 11
威望: 12 点
积分: 4 分
贡献值: 0 点
好评度: 7 点
原创分: 0 分
注册时间:2005-09-09
最后登录:2008-07-20

 

wjhai23 同样的问题

上面的代码只是实现了插入设备后的驱动安装。

怎样实现驱动的预先安装,也就是,没有连接设备的时候,先把驱动安装好,设备插入后,直接可以使用
顶端 Posted: 2007-10-26 09:08 | Unknown 17 楼
xbzjackey
级别: 驱动小牛


精华: 0
发帖: 224
威望: 33 点
积分: 5 分
贡献值: 0 点
好评度: 0 点
原创分: 0 分
注册时间:2002-12-27
最后登录:2008-08-06

 

楼主 用了co-installer吗?
回答好的不要忘了给分哦。。。
顶端 Posted: 2008-07-31 16:51 | 上海市 18 楼
xbzjackey