kilroy_guo
驱动大牛
驱动大牛
  • 注册日期2002-10-29
  • 最后登录2005-11-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1665回复:5

如何把内核的buffer地址,映射到用户态的虚拟地址,使得用户app能够访问内核buffer?

楼主#
更多 发布于:2003-04-04 12:03
如何把内核的buffer地址,映射到用户态的虚拟地址,使得用户app能够访问内核buffer?
以及内核的buffer使用什么方法创建?

小弟请教各位大侠了!(有代码给,更好)

最新喜欢:

RED_springRED_sp...
二姑家的猫想......
xyyln
驱动老牛
驱动老牛
  • 注册日期2003-01-02
  • 最后登录2009-12-28
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望11点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-04-04 15:28
从方便和安全的角度考虑,还是把用户的buffer地址映射到内核
[img]http://www.jt99.com/zjbbs/UploadFile/2003113018513643830.gif[/img]
kilroy_guo
驱动大牛
驱动大牛
  • 注册日期2002-10-29
  • 最后登录2005-11-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-04-04 15:44
小弟有苦衷阿。。。。。
我的kernel buffer有3m,如果用户提供buffer,kernel与user app之间copy数据很慢,影响效率阿

欢迎去abc初学者论坛讨论这个问题
http://www.driverdevelop.com:90/forum/viewthread.php?tid=38123
二姑家的猫想......
h13
h13
驱动老牛
驱动老牛
  • 注册日期2002-07-10
  • 最后登录2008-10-24
  • 粉丝1
  • 关注1
  • 积分0分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-04-05 11:36
网站有好多帖子讨论过这个问题了,搜一下,另外资料区也有相关的文章
<table> [color=#8040FF]神,常虚以凝而灵明湛定 气,常静以养而充盈流通[/color] </table>
mailme
驱动老牛
驱动老牛
  • 注册日期2001-05-21
  • 最后登录2010-02-25
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望3点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-04-10 00:25
小弟有苦衷阿。。。。。
我的kernel buffer有3m,如果用户提供buffer,kernel与user app之间copy数据很慢,影响效率阿

欢迎去abc初学者论坛讨论这个问题
http://www.driverdevelop.com:90/forum/viewthread.php?tid=38123


那就用directio吧,不用拷贝数据
早起早睡 精神百倍
ddong
驱动牛犊
驱动牛犊
  • 注册日期2002-11-23
  • 最后登录2012-02-24
  • 粉丝0
  • 关注0
  • 积分12分
  • 威望11点
  • 贡献值1点
  • 好评度1点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-04-11 18:14
1、先用IoAllocateMdl为你的buffer生成一个mdl
2、用MmMapLockedPagesSpecifyCache映射你的buffer到用户进程,
   这一步需用到1中生成的mdl
另外:映射动作只能在用户进程的上下文中进行,否则,用户进程
还是不能访问该buffer.Good Luck!
游客

返回顶部