阅读:1478回复:12
20分!!如何用程序决定WIN2K用哪个驱动?
偶们的同一设备有两个不同的驱动(历史原因),在不同的应用程序中需要使用不同的驱动,如何用程序修改WIN2K用哪个驱动而不是每次手工更新驱动程序?
各位大侠可以提供样例代码吗?谢谢!! |
|
沙发#
发布于:2002-11-14 09:40
总结、原创区有一篇minsoft写的在win98/2000下共用的inf文件,不只对你有没有用。呵呵~~放分吧! :D
|
|
|
板凳#
发布于:2002-11-14 09:58
解决起来由两种办法,都是笨办法:
<1>:在你的应用程序当中分别用两个驱动的Symbol Link Name 去打开设备,若打开A驱动,就设标志为A,以后就用A驱动的方式去读写设备;反之,亦然; <2>:参考%DDK%\\src\\setup\\install的例子,你需要用到那个驱动就卸载当前的驱动,安装你需要的驱动。 |
|
地板#
发布于:2002-11-14 11:05
如果应用程序是你写的,而且两个驱动程序运行时状态(如符名链接等)能够区别开来,就能够实现。
因为WIN2K可以做到动态御载/装载驱动程序。 思路是你的应用程序先识别当前正在使用的驱程,如果不是你期望的则御了它,装载你所其望的。 |
|
|
地下室#
发布于:2002-11-14 12:04
一,inf文件。
二,自己的选择加载。 |
|
|
5楼#
发布于:2002-11-14 18:14
偶现在已经可以根据symbolic link name分辨不同的驱动,但是选择驱动时还是有问题:
因为我们的设备是USB的,一旦偶用卸载了现在的驱动,系统会立即报告又找到一个,如何又把刚才的驱动自动装上了。 偶试着用SetupDiCallClassInstaller(DIF_SELECTDEVICE, DeviceInfoSet, &DeviceInfoData)和SetupDiSelectDevice(DeviceInfoSet,&DeviceInfoData),虽然弹出了驱动选择框,但是不管怎么选驱动还是原来的那个没变,是不是还要做进一步的工作? |
|
6楼#
发布于:2002-11-14 18:23
它不是报又找到一个吗?
你在御之前用程序直接修改INF文件,下次装的就对了。 对WIN98,所有INF文件在指定的目录中。(windows\\inf,它一般是隐含起来的) |
|
|
7楼#
发布于:2002-11-15 09:34
我有个比较弱的方法:
自己确定是否覆盖SYSTEM32/DRIVER下的相应*.sys文件。不知行否? |
|
|
8楼#
发布于:2002-11-15 12:57
它不是报又找到一个吗? 但是偶不知道INF文件是哪一个啊,系统给改名成oem*.inf文件了,是不是还要自己去注册表里找呢?而且偶们的两个INF和SYS都是不同的。 |
|
9楼#
发布于:2002-11-15 13:43
那你用是WIN2K了,WIN2K的INF管理和WIN98有点不同,WIN98是直接保留原来INF文件的,而WIN2K会改名,不过也没关系,你看里面的硬件ID号和你的硬件适配那个就是。
|
|
|
10楼#
发布于:2002-11-15 13:45
还有种办法,如果你的硬件可以动态改ID的话,那就更方便了。
|
|
|
11楼#
发布于:2002-11-15 16:02
还有种办法,如果你的硬件可以动态改ID的话,那就更方便了。 nod 9494 |
|
|
12楼#
发布于:2002-11-15 16:23
谢谢各位,偶的问题已经解决,方法是:
先根据symbolic link name分辨不同的驱动 然后用DDK样例install里的代码直接安装就行了,不需要先卸载 |
|