kittylh
驱动牛犊
驱动牛犊
  • 注册日期2002-04-16
  • 最后登录2004-01-31
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1569回复:11

急问:关于多个相同硬件的问题

楼主#
更多 发布于:2002-04-28 15:48
大虾们帮帮忙,紧急的问题:我有两块完全相同的PCI卡,单个卡WIN2K下的驱动程序和应用程序都已经有了。想让两块卡同时工作,应该采用怎样的方式?一个驱动对象可以对应多个设备对象,具体怎么实现?从上层应用到驱动程序用什么来识别对应的设备,是GUID吗?在线等,谢谢。
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2002-04-28 16:10
在你的PCI卡上应该有跳线或者什么寄存器等,来识别设备的。
kittylh
驱动牛犊
驱动牛犊
  • 注册日期2002-04-16
  • 最后登录2004-01-31
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-04-28 16:20
在你的PCI卡上应该有跳线或者什么寄存器等,来识别设备的。


好象没有跳线,寄存器是指配置空间之类的吗?
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
地板#
发布于:2002-04-28 16:26
你的驱动是你写的吗?
kittylh
驱动牛犊
驱动牛犊
  • 注册日期2002-04-16
  • 最后登录2004-01-31
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-04-28 16:41
驱动不是我写的。
kittylh
驱动牛犊
驱动牛犊
  • 注册日期2002-04-16
  • 最后登录2004-01-31
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-04-28 16:42
卡和驱动还有应用程序都不是我写的。
因为应用环境有变化,我需要使两个卡一起工作。
caesun
驱动小牛
驱动小牛
  • 注册日期2001-12-10
  • 最后登录2006-12-01
  • 粉丝0
  • 关注0
  • 积分290分
  • 威望30点
  • 贡献值393点
  • 好评度21点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-04-30 16:39
一般来说应该使用板上的跳线。
当时我们作伴的时候也没考虑到几块板共用的问题,后来我就通过给每块板加序列号来区分,序列号就放在subvendorid register里。
zydcat
驱动老牛
驱动老牛
  • 注册日期2001-12-06
  • 最后登录2006-04-12
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-04-30 17:28
驱动程序内部是肯定可以区分的,
在创建设备对象的时候,会加个序列号上去。
同时创建对应用层可见的符号名
这也是带有序号的,
但是现在应用程序不是你编的
就不知道他是怎么访问的了
[color=red]肥虫虫[/color] [img]http://www.driverdevelop.com/forum/upload/bradley/2002-11-15_ig01.gif[/img]
caesun
驱动小牛
驱动小牛
  • 注册日期2001-12-10
  • 最后登录2006-12-01
  • 粉丝0
  • 关注0
  • 积分290分
  • 威望30点
  • 贡献值393点
  • 好评度21点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-04-30 18:18
OS只能提供busxx devxx funcxx之类的和机器相关信息,但具体是哪一块板子应该是由板上的寄存器提供信息(比如设置跳线)。其实只要略对驱动程序修改即可区分不同板子,但要是一个驱动程序同时支持几块板子可能要对驱动程序作较大改动。
caesun
驱动小牛
驱动小牛
  • 注册日期2001-12-10
  • 最后登录2006-12-01
  • 粉丝0
  • 关注0
  • 积分290分
  • 威望30点
  • 贡献值393点
  • 好评度21点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-05-23 21:14
楼顶的大虾最后怎么定的? :)
kittylh
驱动牛犊
驱动牛犊
  • 注册日期2002-04-16
  • 最后登录2004-01-31
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2002-05-24 09:09
楼顶的大虾最后怎么定的? :)


很笨的方法。直接把驱动程序的设备接口GUID换一下,安装之后在注册表的HKLM\\system\\……\\deviceclasses中生成两项,再把对应的OPEN操作名字改动一下,不同的GUID用不同的OPEN函数,打开句柄时就可以区分了。
这只是临时的法子,大家有更好的方法请提供。
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
11楼#
发布于:2002-05-24 09:14
不是你的驱动,可能只好这样将就用了。
游客

返回顶部