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

被折叠的 条评论
为什么被折叠?



