Hover
驱动牛犊
驱动牛犊
  • 注册日期2003-02-04
  • 最后登录2004-11-30
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2304回复:5

用超级终端测试:数据已经送到了读缓冲区,就是在超级终端不显示。但当我断开连接时,数据显示。请各位大虾帮帮忙,是什么原因?

楼主#
更多 发布于:2004-02-11 16:47
有人问过了,
只不过我还是没有解决。
大家有什么建议?
acidfish
驱动小牛
驱动小牛
  • 注册日期2002-05-20
  • 最后登录2009-11-11
  • 粉丝0
  • 关注0
  • 积分21分
  • 威望3点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-02-11 17:04
你驱动的irp_mj_read是如何处理的?如果没有数据的话,你是返回STATUS_PENDING吗?还是返回成功?
Hover
驱动牛犊
驱动牛犊
  • 注册日期2003-02-04
  • 最后登录2004-11-30
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-02-11 17:07
我把我处理的过程以及代码说明一下:

1.目的:在超级终端中显示多个“M”字符出来。
驱动的实现部分:
2.在RispatchRead中只调用CompleteReadIrp();
3.CompleteReadIrp的处理为:
   {
      PUCHAR pOutBuf;
      status=STATUS_SUCCESS;
      IrpStack=IoGetCurrentIrpStackLocation(Irp);
      pOutBuf = (PUCHAR)Irp->AssociatedIrp.SystemBuffer,
      RtlCopyMemory(pOutBuf,"M",2);//直接赋值
      return CompleteRequest(Irp,status,2);
    }
4.由于是直接赋值,我并没有进行其它任何处理,如IrpMarkPending,设队列,也没有进行超时处理等等。

但出现了如题的问题,怎样解决呢?
Hover
驱动牛犊
驱动牛犊
  • 注册日期2003-02-04
  • 最后登录2004-11-30
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-02-11 17:31
acidfish兄,
我是用你虚拟串口程序改的,
你能否再帮帮忙?
谢谢!!
Hover
驱动牛犊
驱动牛犊
  • 注册日期2003-02-04
  • 最后登录2004-11-30
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-02-12 11:31
acidfish兄,
 还是不见你回答,不过你的回答对我还是有启发的。
分就给你啦。
Hover
驱动牛犊
驱动牛犊
  • 注册日期2003-02-04
  • 最后登录2004-11-30
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-02-12 11:54
acidfish兄,
不是我不给分,而是我按“给分”时提示这个贴不是我贴的或已经结贴,
不知论坛出了什么错,重新登录也是这样,而且我登录后在线情况总是提示为离线,真是见鬼。
不过,只要论坛或我的系统没问题就会给分的。
游客

返回顶部