阅读:2303回复:5
用超级终端测试:数据已经送到了读缓冲区,就是在超级终端不显示。但当我断开连接时,数据显示。请各位大虾帮帮忙,是什么原因?
有人问过了,
只不过我还是没有解决。 大家有什么建议? |
|
沙发#
发布于:2004-02-11 17:04
你驱动的irp_mj_read是如何处理的?如果没有数据的话,你是返回STATUS_PENDING吗?还是返回成功?
|
|
板凳#
发布于: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,设队列,也没有进行超时处理等等。 但出现了如题的问题,怎样解决呢? |
|
地板#
发布于:2004-02-11 17:31
acidfish兄,
我是用你虚拟串口程序改的, 你能否再帮帮忙? 谢谢!! |
|
地下室#
发布于:2004-02-12 11:31
acidfish兄,
还是不见你回答,不过你的回答对我还是有启发的。 分就给你啦。 |
|
5楼#
发布于:2004-02-12 11:54
acidfish兄,
不是我不给分,而是我按“给分”时提示这个贴不是我贴的或已经结贴, 不知论坛出了什么错,重新登录也是这样,而且我登录后在线情况总是提示为离线,真是见鬼。 不过,只要论坛或我的系统没问题就会给分的。 |
|