chenji
驱动牛犊
驱动牛犊
  • 注册日期2002-07-24
  • 最后登录2004-03-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1420回复:2

求教:为什么上层的class driver不发读数据的SRB给我的stream minidriver?

楼主#
更多 发布于:2003-08-07 15:49
我在给一块视频捕获卡写一个stream minidriver的驱动,现在在做captrue部分,使用AMcap.exe测试,初始化一切正常,上层class driver可以打开我的capture流,并且可以在打开后调用我的StrMiniReceiveStreamDataPacket函数发一个SRB下来,问题在于当我使用完这个SRB并且返回以后,class driver就再也不发别的SRB下来了,也就是说不再调用我的StrMiniReceiveStreamDataPacket函数了。
我试用了各种方法,打开或关闭class driver的同步,在下层给SRB排队,考虑了中断级别等等,但上层就是不发SRB下来。
唯一可行的就是采用TestCap中的定时器触发的方式,可以保证上层不断的传SRB给minidriver,但我不想使用定时器,为什么使用定时器就行,不用就不行呢,请问各位大侠是否遇到此类情况,如何解决?
swf2003
驱动中牛
驱动中牛
  • 注册日期2003-02-13
  • 最后登录2011-10-28
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望22点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-08-08 08:36
这要看你以前的 SRB COMMAND 处理的对不对。
比如 SRB_GET_STREAM_INFO ,这个 SRB cmd 很重要。
你的认可是对我最大的鼓励!
chenji
驱动牛犊
驱动牛犊
  • 注册日期2002-07-24
  • 最后登录2004-03-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-08-08 09:52
首先感谢你的答复。

我的驱动是在TestCap的基础上改的,好多函数都是用的TestCap的源码。现在可以打开capture流,也可以发送第一个SRB下来,但是当这个SRB完成后class driver就不再复用(reuse)这个SRB了。也不发新的SRB下来。
需要说明的是不是SRB超时了,也不是数据格式不对,因为如果采用TestCap使用的定时器的方式就是可行的。很奇怪的说。为什么使用定时器class driver就可以复用那个SRB,不用就不行呢?

游客

返回顶部