阅读:1666回复:5
如何把内核的buffer地址,映射到用户态的虚拟地址,使得用户app能够访问内核buffer?
如何把内核的buffer地址,映射到用户态的虚拟地址,使得用户app能够访问内核buffer?
以及内核的buffer使用什么方法创建? 小弟请教各位大侠了!(有代码给,更好) |
|
最新喜欢:![]()
|
沙发#
发布于:2003-04-04 15:28
从方便和安全的角度考虑,还是把用户的buffer地址映射到内核
|
|
|
板凳#
发布于:2003-04-04 15:44
小弟有苦衷阿。。。。。
我的kernel buffer有3m,如果用户提供buffer,kernel与user app之间copy数据很慢,影响效率阿 欢迎去abc初学者论坛讨论这个问题 http://www.driverdevelop.com:90/forum/viewthread.php?tid=38123 |
|
|
地板#
发布于:2003-04-05 11:36
网站有好多帖子讨论过这个问题了,搜一下,另外资料区也有相关的文章
|
|
|
地下室#
发布于:2003-04-10 00:25
小弟有苦衷阿。。。。。 那就用directio吧,不用拷贝数据 |
|
|
5楼#
发布于:2003-04-11 18:14
1、先用IoAllocateMdl为你的buffer生成一个mdl
2、用MmMapLockedPagesSpecifyCache映射你的buffer到用户进程, 这一步需用到1中生成的mdl 另外:映射动作只能在用户进程的上下文中进行,否则,用户进程 还是不能访问该buffer.Good Luck! |
|