阅读:1707回复:12
如何将用户程序的内存地址转换为驱动程序可使用的地址
关于共享内存我把坛子里的帖子都可看了,
但大部分讨论如何把SYSTEM BUFFER MAP TO USER SPACE, 反过来, 我在应用程序里申请的共享内存, 通过deviceIOcontrol将指针传给驱动程序, 但在ring0层是不能直接访问应用程序的内存 地址的,该如何转换才行呢?怎么实现呢? |
|
沙发#
发布于:2002-11-01 14:32
你是用DriverWorks开发驱动吗?
若是,我手有现成的例子可以发给你-----如果你很慷慨的话。 |
|
|
板凳#
发布于:2002-11-01 14:36
对,我就是用DS写的,
谢谢Dragon2008兄: liuhongjun@tssx.com.cn 我给你加分,20分全给你! |
|
地板#
发布于:2002-11-01 14:42
很急吗?
源程序在我家里,手边没有。 如不急,我明天发给你。 如急,也得今晚才能给你。 |
|
|
地下室#
发布于:2002-11-01 16:45
谢谢你!
我等着,明天早上给我吧! 我先写其它部分! |
|
5楼#
发布于:2002-11-01 20:03
程序已发,清查收。
|
|
|
6楼#
发布于:2002-11-04 10:05
谢谢!
已收到, 还有一个问题请教: ((Mem_Param*)I.IoctlBuffer())->mdr_PhysicalAddress=Address; ((Mem_Param*)I.IoctlBuffer())->mdr_LinearAddress=MemRegion->ProcessAddress(); 是不是把物理地址和映射后的地址都被 传到应用程序啦? |
|
7楼#
发布于:2002-11-04 12:30
对。
先在驱动中进行了内存从物理地址到线性地址的映射,然后通过这两个语句将得到的物理地址和线性地址作为输出参数传给应用程序。 |
|
|
8楼#
发布于:2004-10-11 22:55
能给我发一份么?我的Email:longnet2000@sina.com.cn
谢谢了! |
|
9楼#
发布于:2004-10-12 18:40
我也想要,谢谢!我的是x810421@163.com
[编辑 - 10/12/04 by x810421] |
|
10楼#
发布于:2004-10-12 22:02
我也想学习一下,先谢过了!
zsh_7769@163.com |
|
11楼#
发布于:2004-10-15 11:01
我也需要,地址转换稀里糊涂,到现在武安和书上的也整不明白。发给我一份吧,谢谢了。menglzh@sohu.com
|
|
12楼#
发布于:2004-10-15 15:46
我也非常想学习一下,能给我发一份么? 我的Email:zhangdeyuan@126.com 先谢过了! |
|
|