我来我网
https://5come5.cn
 
您尚未 登录  注册 | 菠菜 | 软件站 | 音乐站 | 邮箱1 | 邮箱2 | 风格选择 | 更多 » 
 

« 1 2» Pages: ( 1/2 total )
本页主题: 有人做过驱动吗?win32下怎么样把核心内存映射到用户模式?? 隐藏签名 | 打印 | 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题

coolboy





性别: 保密 状态: 该用户目前不在线
等级: 品行端正
发贴: 252
威望: 0
浮云: 1107
在线等级:
注册时间: 2005-10-02
最后登陆: 2016-04-25

5come5帮你背单词 [ peaceful /'pi:sful/ a. 和平的,安宁的,和平时期的 ]


有人做过驱动吗?win32下怎么样把核心内存映射到用户模式??

如题,核心地址空间分配的内存,想和用户态的进程共享。
顶端 Posted: 2007-06-11 11:24 | [楼 主]
solo独奏



性别: 帅哥 状态: 该用户目前不在线
头衔: 冰是睡着的水
等级: 荣誉会员
家族: YD一族
发贴: 6989
威望: 3
浮云: 379
在线等级:
注册时间: 2006-12-01
最后登陆: 2008-06-26

5come5帮你背单词 [ library /'laibrəri/ n. 图书馆,图书室,藏书 ]


这个可有点技术含量...我认识的一个准研究生在做这个,头都弄大了他说.
让我们纯白易碎的灵魂在玫瑰花瓣的坠和旋中散落...
                        一个受水仙花祝福而生的人...
              一个花语为-恩惠的人
                                                    猫尾草...或许我喜欢上了这么个女人
顶端 Posted: 2007-06-11 20:55 | [1 楼]
kingbird



性别: 保密 状态: 该用户目前不在线
等级: 品行端正
发贴: 382
威望: 0
浮云: 1130
在线等级:
注册时间: 2004-05-04
最后登陆: 2007-08-19

5come5帮你背单词 [ freely /'fri:li/ ad. 自由地,直率地,免费地 ]


你说的是驱动共享内存与应用层的通信吧
很麻烦的,稍不注意就容易造成蓝屏的
主要是过程还是在应用层上的程序利用你所要调用的对象设备的名称创建句柄
再利用createiocontrol()实现内存的共享。
顶端 Posted: 2007-06-11 23:59 | [2 楼]
kaby





性别: 帅哥 状态: 该用户目前不在线
头衔: 又好又强大
等级: 荣誉会员
家族: 八宝推倒委员会
发贴: 3360
威望: 0
浮云: 584
在线等级:
注册时间: 2003-09-24
最后登陆: 2015-03-28

5come5帮你背单词 [ napkin /'næpkin/ n. 餐巾,尿布 ]


1.印象中有现成函数,网上肯定有大把的源代码自己google,还有DDK。
2.记忆中应该用起来应该比较**:当时目的是内核区与用户区大规模的数据交换,经分析得出用SOCKET是而不是映射内存会比较靠谱。
全不记得了,以上[屏蔽]仅供参考。

顶端 Posted: 2007-06-12 00:07 | [3 楼]
coolboy





性别: 保密 状态: 该用户目前不在线
等级: 品行端正
发贴: 252
威望: 0
浮云: 1107
在线等级:
注册时间: 2005-10-02
最后登陆: 2016-04-25

5come5帮你背单词 [ strengthen /'streŋθən/ vt. 加强,巩固 ]


Quote:
引用第2楼kingbird于2007-06-11 23:59发表的:
你说的是驱动共享内存与应用层的通信吧
很麻烦的,稍不注意就容易造成蓝屏的
主要是过程还是在应用层上的程序利用你所要调用的对象设备的名称创建句柄
再利用createiocontrol()实现内存的共享。

感谢回复,我现在的问题是,驱动没办法用标准的IOCTL同应用层通信,无法创建符号链接,无法用IRP(显示驱动,有点特殊,非WDM),而且数据量比较大,考虑到效率问题,我打算在内核分配内存,然后映射到用户地址空间,这样也省去了memcpy的过程。
顶端 Posted: 2007-06-12 10:20 | [4 楼]
coolboy





性别: 保密 状态: 该用户目前不在线
等级: 品行端正
发贴: 252
威望: 0
浮云: 1107
在线等级:
注册时间: 2005-10-02
最后登陆: 2016-04-25

5come5帮你背单词 [ equation /i'kweiən/ n. 方程式,等式 ]


Quote:
引用第3楼kaby于2007-06-12 00:07发表的:
1.印象中有现成函数,网上肯定有大把的源代码自己google,还有DDK。
2.记忆中应该用起来应该比较**:当时目的是内核区与用户区大规模的数据交换,经分析得出用SOCKET是而不是映射内存会比较靠谱。
全不记得了,以上[屏蔽]仅供参考。

晕,核心态能用SCOKET吗?好像不能吧。。。
顶端 Posted: 2007-06-12 10:23 | [5 楼]
路过此地



性别: 帅哥 状态: 该用户目前不在线
等级: 希望之光
发贴: 1788
威望: 0
浮云: 0
在线等级:
注册时间: 2007-03-21
最后登陆: 2014-11-08

5come5帮你背单词 [ jail // n. 监狱,看守所 ]


同问
最省钱的电话资费(Shutter快门)
https://192.168.2.8/bbs/read.php?tid=621202
顶端 Posted: 2007-06-12 10:28 | [6 楼]
btkakashi



性别: 帅哥 状态: 该用户目前不在线
等级: 希望之光
家族: 尤文蒂尼
发贴: 1924
威望: 0
浮云: 1110
在线等级:
注册时间: 2007-05-12
最后登陆: 2008-06-30

5come5帮你背单词 [ politics /'politiks/ n. 政治,政治学 ]


晕,看都看不懂,都是达人啊



顶端 Posted: 2007-06-12 10:30 | [7 楼]
disneycheng



性别: 帅哥 状态: 该用户目前不在线
头衔: Piano Prince
等级: 荣誉会员
发贴: 1971
威望: 1
浮云: 413
在线等级:
注册时间: 2005-12-16
最后登陆: 2008-06-29

5come5帮你背单词 [ envelope /'envələup/ n. 信封 ]


考虑attach然后物理内存。嘿嘿。方法是有的呵呵。。。
Disney
顶端 Posted: 2007-06-13 23:17 | [8 楼]
coolboy





性别: 保密 状态: 该用户目前不在线
等级: 品行端正
发贴: 252
威望: 0
浮云: 1107
在线等级:
注册时间: 2005-10-02
最后登陆: 2016-04-25

5come5帮你背单词 [ intention /in'tenən/ n. 意图,动机,目的 ]


问题已解决,贴点代码,希望对后来人有帮助。
   pKernelAddress = ExAllocatePoolWithTag(PagedPool, psm->length, _MemTag);
   if (pKernelAddress == NULL)
   {
       ........
       return    ERROR;
   }

   pMdl = IoAllocateMdl(pKernelAddress, length, FALSE, FALSE, NULL);
   if (pMdl == NULL)
   {
                            ........
       ExFreePool(psm->pKernelAddress);
       return    ERROR;
   }

   try
   {
       MmProbeAndLockPages(pMdl,KernelMode ,IoReadAccess);
   }
   except (EXCEPTION_EXECUTE_HANDLER)
   {
       ........
       IoFreeMdl(psm);
       ExFreePool(pKernelAddress);
       return    ERROR;
   }
   

   try
   {
       pUserAddress = MmMapLockedPagesSpecifyCache(pMdl, UserMode, MmNonCached, NULL, FALSE, NormalPagePriority);

   }
   except (EXCEPTION_EXECUTE_HANDLER)
   {
                            ........
       MmUnmapLockedPages(pKernelAddress,pMdl);
       IoFreeMdl(pMdl);
       ExFreePool(pKernelAddress);
       return ERROR;
   }

我用的仅仅是分页池内存,非分页池映射方法不大一样,懒得研究了,头都大了。
顶端 Posted: 2007-06-14 00:33 | [9 楼]
洋洋洒洒



性别: 帅哥 状态: 该用户目前不在线
头衔: 她的我
等级: 荣誉会员
发贴: 6290
威望: 2
浮云: 496
在线等级:
注册时间: 2006-11-25
最后登陆: 2010-09-14

5come5帮你背单词 [ nuisance /'nju:sns/ n. 讨厌的东西 ]


Quote:
引用第4楼coolboy于2007-06-12 10:20发表的:

感谢回复,我现在的问题是,驱动没办法用标准的IOCTL同应用层通信,无法创建符号链接,无法用IRP(显示驱动,有点特殊,非WDM),而且数据量比较大,考虑到效率问题,我打算在内核分配内存,然后映射到用户地址空间,这样也省去了memcpy的过程。



完全看不懂啊~~
感觉问问题的LZ不是计算机的吧
惭愧惭愧~~连这个问题说的什么都看不懂
~好好学习,天天向上~     

  ·~·左手和右手·~·


顶端 Posted: 2007-06-14 00:36 | [10 楼]
coolboy





性别: 保密 状态: 该用户目前不在线
等级: 品行端正
发贴: 252
威望: 0
浮云: 1107
在线等级:
注册时间: 2005-10-02
最后登陆: 2016-04-25

5come5帮你背单词 [ underestimate /Λndər'estimeit/ v. & n. 对…低估,看轻 ]


Quote:
引用第8楼disneycheng于2007-06-13 23:17发表的:
考虑attach然后物理内存。嘿嘿。方法是有的呵呵。。。

怎样attach?说出来大家学习学习啊。
顶端 Posted: 2007-06-14 00:42 | [11 楼]
aaronnicholas



灌水天才奖
性别: 帅哥 状态: 该用户目前不在线
头衔: Mr.ひとり
等级: 荣誉会员
家族: 水族馆
发贴: 64143
威望: 5
浮云: 495
在线等级:
注册时间: 2004-09-09
最后登陆: 2016-02-14

5come5帮你背单词 [ square /skw/ə/ n. 广场,正方形,平方;a. 正方形的,平方的 ]


Quote:
引用第11楼coolboy于2007-06-14 00:42发表的:

怎样attach?说出来大家学习学习啊。


attach应该是指KeAttachProcess
也可以直接设置对应页面PTE中的用户访问位
一人ぼっちの寂しさを
顶端 Posted: 2007-06-20 18:00 | [12 楼]
aaronnicholas



灌水天才奖
性别: 帅哥 状态: 该用户目前不在线
头衔: Mr.ひとり
等级: 荣誉会员
家族: 水族馆
发贴: 64143
威望: 5
浮云: 495
在线等级:
注册时间: 2004-09-09
最后登陆: 2016-02-14

5come5帮你背单词 [ striking /'straikiŋ/ a. 引人注目的,显著的 ]


内核态和用户态的内存共享,最科学的方法是section map
一人ぼっちの寂しさを
顶端 Posted: 2007-06-20 18:02 | [13 楼]
stam0



性别: 帅哥 状态: 该用户目前不在线
等级: 人见人爱
发贴: 2704
威望: 0
浮云: 1440
在线等级:
注册时间: 2005-11-22
最后登陆: 2012-12-29

5come5帮你背单词 [ multiple /'mΛltipl/ a. 复合的,多样的,多重的;n. 倍数 ]


Quote:
引用第5楼coolboy于2007-06-12 10:23发表的:

晕,核心态能用SCOKET吗?好像不能吧。。。

不能。。
求空卡 200GZ/张 有的蝈蝈PM我

顶端 Posted: 2007-06-21 11:09 | [14 楼]
« 1 2» Pages: ( 1/2 total )
我来我网·5come5 Forum » 程序员之家

Total 0.010665(s) query 5, Time now is:11-23 12:38, Gzip enabled
Powered by PHPWind v5.3, Localized by 5come5 Tech Team, 黔ICP备16009856号