阅读:2157回复:7
驱动程序怎么才能主动向应用程序回传数据呢?
比如说驱动程序响应中断驱动程序应通知应用程序来取数据,
大侠们怎么做呢? 我想: 在应用程序中建一个等待线程,等待驱动程序里面的事件, 当驱动程序向应用程序发一个事件,应用程序就来读数, 这是我的想法,可否行通? 还有没有好的办法呢? |
|
最新喜欢:![]() |
沙发#
发布于:2002-10-17 16:02
可行,不过需要在驱动程序和应用程序之间共享一个事件,这个事件对象可以在应用层建立,也可以在驱动层建立。
相关技术请查看本站专栏文章中的在应用程序和驱动程序中共享内存的相关文章。 |
|
|
板凳#
发布于:2002-10-19 23:00
共享event是个通用的办法,要是你嫌慢,可以直接在驱动程序和应用程序之间共享缓冲区,这样驱动可以直接把数据写进去而不用应用程序再重新发读请求,然后你可以让应用程序一直轮询这个缓冲,这样传输的速度就应该差不多了。
|
|
地板#
发布于:2002-10-21 12:37
谢谢,
这个方法不错,再请教一下: 我的系统中断是8000次/S,每次中断 要读写I/O 32次,我不知道这个BUFFER要设 多大才比较合适, 另外我想这些I/O读写就放在ISR中, 不另外使用DPC,不是不可以节省一点 时间,以防止下一个中断来了, 上一个DPC还没完成,不知是否可行? |
|
地下室#
发布于:2002-10-23 16:20
hongjun, 我也在做相似的驱动,BUUFER的大小我想要是以2ms周期轮询,只要满足4ms的数据量就可以了
|
|
5楼#
发布于:2002-11-01 11:28
另外我想这些I/O读写就放在ISR中, 不另外使用DPC,不是不可以节省一点 时间,以防止下一个中断来了, 上一个DPC还没完成,不知是否可行? ---------------------------------------- 一般不建议这样做 [编辑 - 11/1/02 by hglzw] |
|
|
6楼#
发布于:2002-11-01 11:58
谢谢, 那就等着死吧 |
|
|
7楼#
发布于:2002-11-03 15:06
谢谢, 这样做完全可以,我现在用的采集驱动就是这样做的。频率8000sps,每次中断要读64次I/O,在Win98和Win2k下效果都非常好,没有出现死机的现象。 |
|