驱动与应用程序之间通过共享内存通信,即Ring0与Ring3共享内存,有时候是一个显而易见的需求,另外,驱动很多情况下也需要在某种条件满足后主动通知应用程序做相应的操作,本文作一些我自己的学习心得记录,以便以后参考。
共享内存
关于内核与应用层共享内存,其实给出一篇OSR的文章和代码,一切问题都解决了,我在网络上搜到了这篇文章的一些翻译,但是诡异的是所有的这些译文居然没有把原文链接给加上,原文中的Sample也没有给出来,使我不得不继续花时间在网络上搜索原文和原文的Sample代码。
这里不准备写得太多,在OSR的文章中已经说得很明白了,这段时间正在做这个,做好了把代码拿出来跟大家共享。
OSR:A Common Topic Explained - Sharing Memory Between Drivers and Applications
http://www.osronline.com/article.cfm?article=39
关于此文的译文很多,找了两个排版比较不错的,标题:在驱动和应用程序之间共享内存。
http://blog.csdn.net/lovesunshine2008/archive/2009/04/01/4041755.aspx
http://laokaddk.blog.51cto.com/368606/167228
事件通知
OSR:Sharing Is Caring - Sharing Events Between Kernel-User Mode
http://www.osronline.com/article.cfm?id=108
为了方便,OSR的两篇文章的txt版本、链接和其中的两份Sample代码,我都打包到一起放到CSDN Download中,需要的自行下载。