阅读:8123回复:26
我的驱动自动安装程序终于完成
通过 阅读仿照 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 又装不上了,不知道为什么了。 |
|
沙发#
发布于: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 就可以。唉,对系统的驱动流程不了解,只能通过多测试来找问题了
附上修改后的代码 |
|
|
板凳#
发布于:2007-08-29 20:45
编译时 需要安装ddk文件 并要在vc设置上把一些ddk的头文件包含进去,同时需要的几个库要要在vc环境下指明,要用到的几个ddk的库的路径在vc里也要设置
|
|
地板#
发布于:2007-08-30 01:35
学习!
|
|
地下室#
发布于:2007-09-10 22:54
这个有个命令行界面在那边不太好看啊,不知道有什么办法可以弄个图形进度条那样?
|
|
驱动小牛
|
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 |
6楼#
发布于:2007-09-20 11:26
报错说什么ERROR_NO_DRIVER_SELECTED
|
|
7楼#
发布于:2007-09-24 10:52
引用第5楼zhoujiamurong于2007-09-18 15:56发表的 : 将 打开 vc tools->Options 到 directoris 页面 include filse 里 增加一个ddk的头文件路径 如我的路径是 D:\WINDDK\3790\inc\wxp 一定要将其放在第一行位置 还是在directoris 页面里 在 library filse 里 增加一个 ddk库路径,如我的 D:\WINDDK\3790\lib\wxp\i386 就可以了 可惜这里不能贴图 |
|
8楼#
发布于:2007-09-26 10:05
UpdateDriverForPlugAndPlayDevices(0, HWID, FName, INSTALLFLAG_FORCE,
/&RebootRequired)) 请问楼主,这个函数是那里的?是系统的还是自己编写的.还有自动安装的步骤是什么,你插上硬件,系统就会自动弹出窗体出来啊,怎么自动法啊! |
|
9楼#
发布于:2007-09-28 17:23
这个函数在vista下不能用
|
|
|
10楼#
发布于:2007-09-28 22:38
好东西,顶,这是什么驱动安装,怎么这么麻烦?
|
|
11楼#
发布于:2007-09-29 12:17
参考
|
|
12楼#
发布于:2007-09-29 12:19
值得学习
|
|
13楼#
发布于:2007-10-07 16:17
中国人搞软件开发的真没用,找来找去总算在公元2007年9月,这里找到了关于:驱动自动安装的程序,可能还是个半成品。
|
|
14楼#
发布于:2007-10-08 14:13
不得不跟楼主说一下,程序中还是有点错误的
以我写的程序为例子 %MfgName%是DigitalTV_Mfg, NT 但是段名是[DigitalTV_Mfg.NT] 其中的,要换成. 不然安装不成功。 --------------------------------------- 再和楼上的说一下,非得找别人的吗,不能自己写?到底是中国人没用还是你没用? |
|
15楼#
发布于:2007-10-09 16:59
楼主这个只是做到了 连接设备时 运行这个程序就把驱动安装上吧 ?
如果没有连接设备, 运行后再插入设备一样没有驱动, 这种我前段时间也做过一次 要怎样才能做到不连接设备安装完驱动后 连接设备时自动去搜索安装? 各位大侠支招下 |
|
16楼#
发布于:2007-10-10 20:10
我的库文件怎么编译不了啊,总是说fatal error C1083: Cannot open include file: 'wdm.h': No such file or directory,这是怎么回事?
|
|
17楼#
发布于:2007-10-26 09:08
wjhai23 同样的问题
上面的代码只是实现了插入设备后的驱动安装。 怎样实现驱动的预先安装,也就是,没有连接设备的时候,先把驱动安装好,设备插入后,直接可以使用 |
|
18楼#
发布于:2008-07-31 16:51
楼主 用了co-installer吗?
|
|
|
19楼#
发布于:2008-08-06 11:24
系统自带的
|
|
|
上一页
下一页