阅读:1025回复:0
快来人呀!!受不了!怪怪怪
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] |
|