kilroy_guo
驱动大牛
驱动大牛
  • 注册日期2002-10-29
  • 最后登录2005-11-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1049回复:4

swf2003大虾请进!给分&请教

楼主#
更多 发布于:2003-07-02 09:39
swf2003大虾,你好!关于iso stream得问题,我想再次请教你。
下面是我的流程:

StartISOStream:
{
第一步:初始化streamobject等等,有两个transferobject
第二步:初始化dpc
第三步:for循环发送那两个transferobject里面的irp
}

irp完成例程:
{
第一步:copy我要得数据
第二步:判断irp返回状态:成功则重用此irp,然后送该irp到dpc队列。失败则释放irp
}

dpc得例程:
{
VOID
SendDpc(
    IN PKDPC Dpc,
    IN PDEVICE_OBJECT fdo,
    IN PIRP Irp,
    IN PVOID Context
    )
{
PDEVICE_EXTENSION          pdx = fdo->DeviceExtension;
IoCallDriver(pdx->StackDeviceObject,Irp);
}
}

可是我的驱动接收到了一定程度就不再接收数据了,我发现只要irp0和irp1顺序一颠倒,马上就接收不到数据了,大虾能帮我分析一下为什么么?大虾你是怎样实现isostream的呢?请大虾指教!在线等,分不够,再给!
二姑家的猫想......
swf2003
驱动中牛
驱动中牛
  • 注册日期2003-02-13
  • 最后登录2011-10-28
  • 粉丝1
  • 关注0
  • 积分4分
  • 威望22点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-07-02 15:11
kilroy_guo 你程序中进一步的问题,我就不好分析了,这不是分多少的的原因,看来主要靠你自己了。
你的认可是对我最大的鼓励!
kilroy_guo
驱动大牛
驱动大牛
  • 注册日期2002-10-29
  • 最后登录2005-11-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-07-02 15:18
惨!:(

swf2003大虾,是用custom dpc么?我接收到一定程度,就发现
KeInsertQueueDpc返回值是false。大侠,是不是我应该用两个
custom dpc对应同一个例程,这样就不会出现insert时候返回false.
但是用两个dpc,我就保证不了两个irp返回顺序了。
大虾救命 :(
二姑家的猫想......
kilroy_guo
驱动大牛
驱动大牛
  • 注册日期2002-10-29
  • 最后登录2005-11-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-07-02 15:27
kilroy_guo 你程序中进一步的问题,我就不好分析了,这不是分多少的的原因,看来主要靠你自己了。



 :(意味深长。。。。。。
二姑家的猫想......
kilroy_guo
驱动大牛
驱动大牛
  • 注册日期2002-10-29
  • 最后登录2005-11-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-07-02 19:00
不用dpc了,效果和直接在irp完成例程里面直接send irp差不多
 :(
二姑家的猫想......
游客

返回顶部