cherry97
驱动牛犊
驱动牛犊
  • 注册日期2002-11-06
  • 最后登录2002-12-02
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1478回复:12

20分!!如何用程序决定WIN2K用哪个驱动?

楼主#
更多 发布于:2002-11-14 09:08
偶们的同一设备有两个不同的驱动(历史原因),在不同的应用程序中需要使用不同的驱动,如何用程序修改WIN2K用哪个驱动而不是每次手工更新驱动程序?
各位大侠可以提供样例代码吗?谢谢!!
lxcomcn
驱动老牛
驱动老牛
  • 注册日期2002-07-31
  • 最后登录2010-12-10
  • 粉丝0
  • 关注0
  • 积分110分
  • 威望43点
  • 贡献值0点
  • 好评度21点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-11-14 09:40
总结、原创区有一篇minsoft写的在win98/2000下共用的inf文件,不只对你有没有用。呵呵~~放分吧! :D
[img]http://www.nbuser.com/vb/avatar.php?userid=10792&dateline=1046232652 [/img] 我要作诗!!!
blue
驱动大牛
驱动大牛
  • 注册日期2001-04-25
  • 最后登录2010-10-15
  • 粉丝0
  • 关注0
  • 积分55分
  • 威望12点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-11-14 09:58
解决起来由两种办法,都是笨办法:
<1>:在你的应用程序当中分别用两个驱动的Symbol Link Name 去打开设备,若打开A驱动,就设标志为A,以后就用A驱动的方式去读写设备;反之,亦然;
<2>:参考%DDK%\\src\\setup\\install的例子,你需要用到那个驱动就卸载当前的驱动,安装你需要的驱动。
minsoft
驱动小牛
驱动小牛
  • 注册日期2001-07-30
  • 最后登录2007-03-06
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-11-14 11:05
如果应用程序是你写的,而且两个驱动程序运行时状态(如符名链接等)能够区别开来,就能够实现。
因为WIN2K可以做到动态御载/装载驱动程序。
思路是你的应用程序先识别当前正在使用的驱程,如果不是你期望的则御了它,装载你所其望的。
少了e,就少了全部
magicx
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2014-08-18
  • 粉丝1
  • 关注0
  • 积分-14分
  • 威望13点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-11-14 12:04
一,inf文件。
二,自己的选择加载。
[color=red]大头鬼! :P[/color]
cherry97
驱动牛犊
驱动牛犊
  • 注册日期2002-11-06
  • 最后登录2002-12-02
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-11-14 18:14
偶现在已经可以根据symbolic link name分辨不同的驱动,但是选择驱动时还是有问题:
因为我们的设备是USB的,一旦偶用卸载了现在的驱动,系统会立即报告又找到一个,如何又把刚才的驱动自动装上了。
偶试着用SetupDiCallClassInstaller(DIF_SELECTDEVICE,        DeviceInfoSet, &DeviceInfoData)和SetupDiSelectDevice(DeviceInfoSet,&DeviceInfoData),虽然弹出了驱动选择框,但是不管怎么选驱动还是原来的那个没变,是不是还要做进一步的工作?
minsoft
驱动小牛
驱动小牛
  • 注册日期2001-07-30
  • 最后登录2007-03-06
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-11-14 18:23
它不是报又找到一个吗?
你在御之前用程序直接修改INF文件,下次装的就对了。
对WIN98,所有INF文件在指定的目录中。(windows\\inf,它一般是隐含起来的)
少了e,就少了全部
ydyuse
驱动老牛
驱动老牛
  • 注册日期2002-07-25
  • 最后登录2005-03-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-11-15 09:34
我有个比较弱的方法:
  自己确定是否覆盖SYSTEM32/DRIVER下的相应*.sys文件。不知行否?
生命驱动,活力无限!
cherry97
驱动牛犊
驱动牛犊
  • 注册日期2002-11-06
  • 最后登录2002-12-02
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-11-15 12:57
它不是报又找到一个吗?
你在御之前用程序直接修改INF文件,下次装的就对了。
对WIN98,所有INF文件在指定的目录中。(windows\\inf,它一般是隐含起来的)


但是偶不知道INF文件是哪一个啊,系统给改名成oem*.inf文件了,是不是还要自己去注册表里找呢?而且偶们的两个INF和SYS都是不同的。
minsoft
驱动小牛
驱动小牛
  • 注册日期2001-07-30
  • 最后登录2007-03-06
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-11-15 13:43
那你用是WIN2K了,WIN2K的INF管理和WIN98有点不同,WIN98是直接保留原来INF文件的,而WIN2K会改名,不过也没关系,你看里面的硬件ID号和你的硬件适配那个就是。
少了e,就少了全部
minsoft
驱动小牛
驱动小牛
  • 注册日期2001-07-30
  • 最后登录2007-03-06
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2002-11-15 13:45
还有种办法,如果你的硬件可以动态改ID的话,那就更方便了。
少了e,就少了全部
Dragon2008
驱动中牛
驱动中牛
  • 注册日期2002-04-01
  • 最后登录2006-03-13
  • 粉丝0
  • 关注0
  • 积分31分
  • 威望5点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2002-11-15 16:02
还有种办法,如果你的硬件可以动态改ID的话,那就更方便了。

nod 9494
我姓龙,我属龙,我叫龙。。。
cherry97
驱动牛犊
驱动牛犊
  • 注册日期2002-11-06
  • 最后登录2002-12-02
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2002-11-15 16:23
谢谢各位,偶的问题已经解决,方法是:
先根据symbolic link name分辨不同的驱动
然后用DDK样例install里的代码直接安装就行了,不需要先卸载
游客

返回顶部