bicycle111
驱动牛犊
驱动牛犊
  • 注册日期2009-08-19
  • 最后登录2012-12-26
  • 粉丝0
  • 关注0
  • 积分12分
  • 威望81点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2014回复:1

驱动里实现一机多设备运行的关键是什么?

楼主#
更多 发布于:2010-09-14 21:24
我们的驱动单设备测试已经通过了,现在一机多设备驱动可以安装,也可以分别独立使用,但是在两个不同的软件里同时打开两个设备就不行,显示打开设备错误。
请教一下wdm模式驱动协调一机多卡的关键在哪里?
jbhlzw
驱动牛犊
驱动牛犊
  • 注册日期2006-04-03
  • 最后登录2010-09-29
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望93点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2010-09-16 17:40
如果在同一个软件能打开2个设备各自运行,那在2个软件里分别打开应该也没问题吧。1。多个相似的设备(售主号和设备号可以相同)使用同一驱动程序是可行的,关键驱动程序应注册一个GUID号,不应该只提供老式符号连接名。2。安装驱时,inf文件里可以对不同售主号和设备号的设备指明不同的设备描述符和友好名,以便于区分不同设备。3。打开驱动时,应通过GUID号打开,枚举这个guid下的所有的设备,形成一个设备列表,对于相同售主号和设备号的设备是不好分辨的,设备本身应该提供不同的卷标号,就像优盘重命名,或者支持字符的写入,以便于重命名设备,这样设备列表里的设备对使用者来说就好分辨了,否则你只能用后缀-1,-2来表示了。应该说打开相同的设备不会有问题,从物理上来说,如pci是在不同的槽上,usb在不同的口上,即便售主号和设备号是相通的,对系统来说也能分辨。4。如果一个软件已经打开这个设备,另一个软件还需要打开这个设备,这个设备驱动程序一定不能使独占式访问,从实际上来说,同时打开一个设备进行操作的可能性不大,会造成访问冲突。5。如果一个软件打开了一个设备,另一个软件需要打开另一个设备,那么软件在枚举GUID下的设备时应该明确是否打开的是需要打开的设备,而不是先前打开的设备。设备里表里的顺序总是固定的,你已经打开了第一个设备,那么现在你应该打开第2个设备;或者你应该比较设备卷标,第一次写入卷标应该在枚举GUID下设备时,如果后来判断已经存在了就不用改了。你可以想象插入2个相同的U盘,你是如何分辨的,一个道理。6。多个相同的设备使用同一个驱动程序,设备的固件程序里面一定不要指定设备的序列号。
游客

返回顶部