作者:我想说wince离我远点
转自:http://blog.youkuaiyun.com/lqxandroid2012/article/details/8208908
我想用三种方式来达到驱动程序通知应用程序。
第一种方式:驱动程序通过PostMessage给操作系统发一个信息,再由应用程序通过GetMessage接受处理,这个方式很简单,让应用程序随时处理驱动程序的信息,我也很快地在开发板上实现了,不过这是异步处理,处理实时性要求高的操作就不合适了。
第二种方式:从网上找到过一种方式,让应用程序的Event和驱动程序的Event的名称相同,以达到应用程序和驱动程序同时相应中断的请求。可惜我再也找不到这篇文章了,经过二天的试验,驱动程序建立的命名Event,应用程序也确认此Event存在,但不能用OpenEvent打开,WaitForSingleObject的结果也是错误。不知有哪位同行高手能给我指点。
第三种方式:网上介绍最多的方式,也是我下一步必须掌握的方法,应用程序通过DeviceIoControl来传递Event给驱动程序,驱动程序通过SetEvent来激活Event。还有就是应用程序和驱动程序共享内存。这是应用层和驱动层最直接和通用的交流方法,也是学习标准流驱动程序的一个阶段结束标志,希望我能顺利完成。