阅读:1750回复:13
关于 Filter Driver 的一个问题,请大家出点主意
简单地问:
Filter Driver 能否在与其所在的 Driver Stack 的上下层 Driver 通讯的同时,作为另一个 Driver 的下层 Driver? 复杂地说: 现在有 PC Camera 的 Driver,想另写一个 Driver,提供 Mouse 的功能(类似软驱动的光电鼠标)。所以我想将其作为 Filter Driver挂接在 PC Camera Driver 的上面,同时作为 HID Miniport Driver 与 HID Class Driver 通讯。 现在虽然 HID Miniport 的 Driver 写好了,却发现要将两方面连接起来却成了问题。特来征求高手意见 :) |
|
|
沙发#
发布于:2003-06-06 11:36
补充:
下图是我设想的方案,上面说的是方案 B 的可行性问题。 当然,欢迎您提出更可行的方案 (我目前只是感觉方案 B 可能性大一点,希望得到理论或经验的支持,谢谢!) |
|
|
板凳#
发布于:2003-06-07 22:02
A可行,不过较复杂。
|
|
地板#
发布于:2003-06-07 22:19
如果streaming driver没有什么特殊要求(我没有做过),a/b都可以。我们经常这么干。
|
|
|
地下室#
发布于:2003-06-09 08:45
谢谢 robin_wxg,谢谢 rayyang2000 版主!
我起初是觉得 B 可行性高,但后来想,我的 driver 要同时向两个 class driver 注册,同时被两个 class driver 调用,不知道会不会有冲突? 不知道 rayyang2000 是否方便说明你们具体的应用情况, 以便参考,及比较其类似性? 而且考虑到写 filter driver 对现有 driver 改动多一些,且只是做 pass-through,觉得能不用它还是不用它。 对于 A,主要的一个问题是插入一个设备后只能根据设备的 hardware Id 加载一个 driver (大家知道,INF 的 AddService 中能设为 SPSVCINST_ASSOCSERVICE 的只能有一项),这点我已经试过了。后来想,如果这第一个 driver (即上面说的 pc carema driver )能“枚举”出另一个(虚拟的)新设备,也许可能。所以后来提出这个问题。在 http://www.driverdevelop.com/forum/html_43419.html?1055118652 不知道 robin_wxg 说的 A 较复杂什么是指? :) :) |
|
|
5楼#
发布于:2003-06-09 09:56
B方案也是可行的,你的filter driver 可以加载两个(HID Class 及Ks Stream Class下面各一个),然后两个filter driver 可以通信,这也能实现同 Pc Camera Drvier通信。
|
|
|
6楼#
发布于:2003-06-09 10:31
老大,你这是让我写两个 filter driver !?
那岂不是相当于综合了A,B,我看还是免了吧 :D :D 而且你的意思隐含着:HID 下面的 filter driver 不能直接和 pc camera driver 通信,这样一来,A是不可行的。是这样的吗? :( [编辑 - 6/9/03 by jason.gao] |
|
|
7楼#
发布于:2003-06-09 19:59
--------------------------------------------------------
对于 A,主要的一个问题是插入一个设备后只能根据设备的 hardware Id 加载一个 driver (大家知道,INF 的 AddService 中能设为 SPSVCINST_ASSOCSERVICE 的只能有一项),这点我已经试过了。后来想,如果这第一个 driver (即上面说的 pc carema driver )能“枚举”出另一个(虚拟的)新设备,也许可能。所以后来提出这个问题。在 http://www.driverdevelop.com/forum/html_43419.html?1055118652 不知道 robin_wxg 说的 A 较复杂什么是指 -------------------------------------------------------- 其实你很明白,我的意思就是这个,在Camera driver里“枚举”出mouse,就是象usbview里作的那样。 |
|
8楼#
发布于:2003-06-09 21:16
谢谢谢谢,我以为还有别的问题呢,而且以为那个问题不是主要的 :)
那么看来我们的意见是一致的了。今天初步试了一下,觉得这个确实是挺麻烦的 (DDK里面的usbview是个应用程序吧,和这个好象不太一样) 另:如何给分? |
|
|
9楼#
发布于:2003-06-09 23:41
看见你的第一栏里的给分按钮没?给参与者奖励吧,这是论坛的好习惯!谢谢。
|
|
10楼#
发布于:2003-06-09 23:42
USBVIEW 是应用程序,不过我们一样把它改成内核态的,百试不爽!
|
|
11楼#
发布于:2003-06-10 09:06
不好意思,我的总分数定少了,刚才超了。现在只能每人意思一下 :(
robin_wxg: 我好象有点明白,USBVIEW除了与总线驱动打交道外,还需要扮演总线驱动的角色,是不是这样? 能否说说你们是怎样做的? 不过,你回答,我也没分给了 :cool:(能够增加总分吗) 要不,到另一个帖子里去回答,那里还有分 :D(且更相关) http://www.driverdevelop.com/forum/html_43419.html?1055118652 |
|
|
12楼#
发布于:2003-06-10 09:13
哦,我明白了,可以另开贴让人来取分 :D:D
|
|
|
13楼#
发布于:2003-06-10 11:23
突然意识到:应该在 PC Camera Driver 上做一个 Filter Driver,这个 Driver 起到 Bus Driver 的作用,它牧举出一个我的总线上的设备,从而加载 Mouse Driver。(刚刚看到 serenum 好像是这样做的)
各位大佬以为如何? :D :D 我感觉到要S了 :mad: :mad:。。。 |
|
|