skylxd
驱动牛犊
驱动牛犊
  • 注册日期2005-09-21
  • 最后登录2011-06-30
  • 粉丝0
  • 关注0
  • 积分221分
  • 威望26点
  • 贡献值0点
  • 好评度19点
  • 原创分1分
  • 专家分0分
阅读:7918回复:26

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

楼主#
更多 发布于:2007-08-25 22:08
通过 阅读仿照 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
又装不上了,不知道为什么了。

 
skylxd
驱动牛犊
驱动牛犊
  • 注册日期2005-09-21
  • 最后登录2011-06-30
  • 粉丝0
  • 关注0
  • 积分221分
  • 威望26点
  • 贡献值0点
  • 好评度19点
  • 原创分1分
  • 专家分0分
沙发#
发布于:2007-08-29 20:42
又遇到了一个问题,硬件在系统中的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 (18KB)  777 2007-08-29 20:42
skylxd
驱动牛犊
驱动牛犊
  • 注册日期2005-09-21
  • 最后登录2011-06-30
  • 粉丝0
  • 关注0
  • 积分221分
  • 威望26点
  • 贡献值0点
  • 好评度19点
  • 原创分1分
  • 专家分0分
板凳#
发布于:2007-08-29 20:45
编译时 需要安装ddk文件 并要在vc设置上把一些ddk的头文件包含进去,同时需要的几个库要要在vc环境下指明,要用到的几个ddk的库的路径在vc里也要设置
rushhour
驱动牛犊
驱动牛犊
  • 注册日期2007-07-30
  • 最后登录2007-08-30
  • 粉丝0
  • 关注0
  • 积分550分
  • 威望56点
  • 贡献值0点
  • 好评度55点
  • 原创分0分
  • 专家分0分
地板#
发布于:2007-08-30 01:35
学习!
sunwill_chen
驱动小牛
驱动小牛
  • 注册日期2007-08-19
  • 最后登录2009-09-28
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望130点
  • 贡献值1点
  • 好评度97点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2007-09-10 22:54
这个有个命令行界面在那边不太好看啊,不知道有什么办法可以弄个图形进度条那样?
zhoujiamurong
驱动小牛
驱动小牛
  • 注册日期2006-03-20
  • 最后登录2009-05-06
  • 粉丝4
  • 关注0
  • 积分1081分
  • 威望360点
  • 贡献值0点
  • 好评度215点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2007-09-18 15:56
好像编译不过啊?要加什么头文件?
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
gussing
驱动牛犊
驱动牛犊
  • 注册日期2007-04-20
  • 最后登录2010-05-08
  • 粉丝1
  • 关注0
  • 积分250分
  • 威望26点
  • 贡献值0点
  • 好评度25点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2007-09-20 11:26
报错说什么ERROR_NO_DRIVER_SELECTED
skylxd
驱动牛犊
驱动牛犊
  • 注册日期2005-09-21
  • 最后登录2011-06-30
  • 粉丝0
  • 关注0
  • 积分221分
  • 威望26点
  • 贡献值0点
  • 好评度19点
  • 原创分1分
  • 专家分0分
7楼#
发布于:2007-09-24 10:52
引用第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 就可以了


可惜这里不能贴图
oushengfen
驱动牛犊
驱动牛犊
  • 注册日期2007-06-28
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分747分
  • 威望124点
  • 贡献值1点
  • 好评度82点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2007-09-26 10:05
UpdateDriverForPlugAndPlayDevices(0,    HWID, FName,    INSTALLFLAG_FORCE,
                                                                                /&RebootRequired))
请问楼主,这个函数是那里的?是系统的还是自己编写的.还有自动安装的步骤是什么,你插上硬件,系统就会自动弹出窗体出来啊,怎么自动法啊!
zzq191
驱动中牛
驱动中牛
  • 注册日期2001-08-09
  • 最后登录2018-05-29
  • 粉丝17
  • 关注0
  • 积分1041分
  • 威望716点
  • 贡献值0点
  • 好评度318点
  • 原创分0分
  • 专家分0分
  • 社区居民
9楼#
发布于:2007-09-28 17:23
这个函数在vista下不能用
QQ:416331891,承接windows下应用和驱动的开发,雅虎通:zzq191, Email:zzq191@21cn.com
lsxredrain
驱动中牛
驱动中牛
  • 注册日期2006-08-31
  • 最后登录2008-10-18
  • 粉丝1
  • 关注0
  • 积分540分
  • 威望421点
  • 贡献值1点
  • 好评度420点
  • 原创分4分
  • 专家分0分
10楼#
发布于:2007-09-28 22:38
好东西,顶,这是什么驱动安装,怎么这么麻烦?
xaxiao
驱动小牛
驱动小牛
  • 注册日期2007-09-11
  • 最后登录2010-02-10
  • 粉丝1
  • 关注0
  • 积分1分
  • 威望199点
  • 贡献值0点
  • 好评度197点
  • 原创分2分
  • 专家分0分
11楼#
发布于:2007-09-29 12:17
参考
xaxiao
驱动小牛
驱动小牛
  • 注册日期2007-09-11
  • 最后登录2010-02-10
  • 粉丝1
  • 关注0
  • 积分1分
  • 威望199点
  • 贡献值0点
  • 好评度197点
  • 原创分2分
  • 专家分0分
12楼#
发布于:2007-09-29 12:19
值得学习
jjg123
驱动牛犊
驱动牛犊
  • 注册日期2007-10-07
  • 最后登录2007-10-07
  • 粉丝1
  • 关注0
  • 积分10分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2007-10-07 16:17
中国人搞软件开发的真没用,找来找去总算在公元2007年9月,这里找到了关于:驱动自动安装的程序,可能还是个半成品。
gussing
驱动牛犊
驱动牛犊
  • 注册日期2007-04-20
  • 最后登录2010-05-08
  • 粉丝1
  • 关注0
  • 积分250分
  • 威望26点
  • 贡献值0点
  • 好评度25点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2007-10-08 14:13
不得不跟楼主说一下,程序中还是有点错误的
以我写的程序为例子
%MfgName%是DigitalTV_Mfg, NT
但是段名是[DigitalTV_Mfg.NT]
其中的,要换成.
不然安装不成功。
---------------------------------------
再和楼上的说一下,非得找别人的吗,不能自己写?到底是中国人没用还是你没用?
wjhai23
驱动牛犊
驱动牛犊
  • 注册日期2007-09-20
  • 最后登录2009-06-25
  • 粉丝0
  • 关注0
  • 积分50分
  • 威望6点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2007-10-09 16:59
楼主这个只是做到了 连接设备时 运行这个程序就把驱动安装上吧 ?

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

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

各位大侠支招下
youyouwoxin
驱动牛犊
驱动牛犊
  • 注册日期2007-09-25
  • 最后登录2007-10-11
  • 粉丝0
  • 关注0
  • 积分80分
  • 威望9点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2007-10-10 20:10
我的库文件怎么编译不了啊,总是说fatal error C1083: Cannot open include file: 'wdm.h': No such file or directory,这是怎么回事?
xalitao
驱动牛犊
驱动牛犊
  • 注册日期2005-09-09
  • 最后登录2008-07-20
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望12点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2007-10-26 09:08
wjhai23 同样的问题

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

怎样实现驱动的预先安装,也就是,没有连接设备的时候,先把驱动安装好,设备插入后,直接可以使用
xbzjackey
驱动小牛
驱动小牛
  • 注册日期2002-12-27
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望34点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2008-07-31 16:51
楼主 用了co-installer吗?
回答好的不要忘了给分哦。。。
xbzjackey
驱动小牛
驱动小牛
  • 注册日期2002-12-27
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望34点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2008-08-06 11:24
系统自带的
回答好的不要忘了给分哦。。。
上一页
游客

返回顶部