busi2002
驱动牛犊
驱动牛犊
  • 注册日期2002-11-17
  • 最后登录2003-10-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1027回复:0

快来人呀!!受不了!怪怪怪

楼主#
更多 发布于:2002-12-15 09:26
http://www.driverdevelop.com/forum/html_29681.html?1039914608
我给串口叠加上一层过滤驱动,发现:

用串口通信的应用软件向串口发数据,第一次很快的就进入
了IRP_MJ_WRITE的例程,但在第二次以及以后的各次点击发送数据时
要等很长时间,驱动才进入到IRP_MJ_WRITE的例程,而且是一次比一次长,长达几十秒几分中,才生成IRP发到驱动的IRP_MJ_WRITE例程中。而且是数据越大,等的越长!!

每次执行完了IRP_MJ_WRITE后,如果正常的话,应该是会发IOCTL_SERIAL_WAIT_ON_MASK,可我的程序是发完之后就得等,
我怀疑是底层的驱动没给返回值,一直等到超时。可我是直接给
pass到底层。不知道是什么原因????

》》还有个很关键的问题:
我写的是kernel驱动,不知道我将中间驱动绑到串口的方法对不对!!
IoCreateDevice( pDriverObject,
sizeof(DEVICE_EXTENSION),
NULL, // no name FILE_DEVICE_UNKNOWN,
0, FALSE, &pFilterDevObj);
IoGetDeviceObjectPointer( &(UNICODE_STRING)LowDevName, FILE_ALL_ACCESS, &FileObject, &pLowDevObj);
//LowDevName=\"\\\\Device\\\\Serial0\",这个地方会不会有问题
    ObDereferenceObject(FileObject);
pFilDevExt->pTargetDevice =IoAttachDeviceToDeviceStack( pFilterDevObj,pLowDevObj);

这样帮定到串口上能行吗?????
大家帮忙啊


[编辑 -  12/15/02 by  busi2002]
游客

返回顶部