guoj
驱动小牛
驱动小牛
  • 注册日期2001-04-02
  • 最后登录2014-02-14
  • 粉丝3
  • 关注0
  • 积分15分
  • 威望55点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
阅读:2368回复:22

请教在win98下驻留内存的方法?

楼主#
更多 发布于:2002-10-21 16:28
guoj
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-10-21 17:25
驱动本身就是驻留在内存中的
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
guoj
驱动小牛
驱动小牛
  • 注册日期2001-04-02
  • 最后登录2014-02-14
  • 粉丝3
  • 关注0
  • 积分15分
  • 威望55点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-10-21 17:43
当然是在用户态分配一块内存,而后,要让其常驻系统当中,即不被移动或者交换到页面文件中去。
guoj
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-10-21 17:44
病毒?去我签名里的论坛看看
[img]http://www.driverdevelop.com/forum/upload/VanCheer/2003-03-21_mon.gif[/img][img]http://www.driverdevelop.com/forum/upload/VanCheer/2002-12-07_smallbaby.jpg[/img]
guoj
驱动小牛
驱动小牛
  • 注册日期2001-04-02
  • 最后登录2014-02-14
  • 粉丝3
  • 关注0
  • 积分15分
  • 威望55点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-10-22 09:14
老猫,你的论坛去过了,并且将你的内容给搜索了以下,我觉得相关的帖子讲的不是很理想,所以把这个问题搬到这来了。
guoj
zydcat
驱动老牛
驱动老牛
  • 注册日期2001-12-06
  • 最后登录2006-04-12
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-10-22 09:34
当然是在用户态分配一块内存,而后,要让其常驻系统当中,即不被移动或者交换到页面文件中去。


globallock
[color=red]肥虫虫[/color] [img]http://www.driverdevelop.com/forum/upload/bradley/2002-11-15_ig01.gif[/img]
guoj
驱动小牛
驱动小牛
  • 注册日期2001-04-02
  • 最后登录2014-02-14
  • 粉丝3
  • 关注0
  • 积分15分
  • 威望55点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-10-22 09:40
  应用中用VirtualLock锁定的页面其实并不是真的锁定了,它仍旧参与页面调度,在一定条件下(比如工作集中所有线程都挂起且页面紧缺)它会被换出。
  相对应的,globallock 锁也是一样。
guoj
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-10-22 10:56
或许你可增加一个调用门,从Ring3中直接调用Ring0的函数来分配内存,然后使用VirtualProtectEx等函数(或者别的办法)修改分配的内存属性,使用另外的进程写入代码,这样或许可以
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
guoj
驱动小牛
驱动小牛
  • 注册日期2001-04-02
  • 最后登录2014-02-14
  • 粉丝3
  • 关注0
  • 积分15分
  • 威望55点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-10-22 11:13
只能在RING0 级,通过调用内存分配函数分配非分页内存,而后再进行处理,没有其他方法吗?
guoj
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
9楼#
发布于:2002-10-22 19:17
应该是的。
guoj
驱动小牛
驱动小牛
  • 注册日期2001-04-02
  • 最后登录2014-02-14
  • 粉丝3
  • 关注0
  • 积分15分
  • 威望55点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2002-10-23 08:42
晕,在WIN98下就没有将分页内存变成非分页内存的方法吗?
guoj
guoj
驱动小牛
驱动小牛
  • 注册日期2001-04-02
  • 最后登录2014-02-14
  • 粉丝3
  • 关注0
  • 积分15分
  • 威望55点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2002-10-23 08:43
晕,在WIN98下,用户程序就没有将分页内存变成非分页内存的方法吗?
guoj
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2002-10-23 10:20
晕,在WIN98下,用户程序就没有将分页内存变成非分页内存的方法吗?

愚以为,所谓的未分页内存,只是永远不会交换到硬盘上的东西,其实它也是分页的。X86 CPU进入分页保护模式后,所有地址都是分页的了,不可能真有未分页的出现。
[img]http://www.driverdevelop.com/forum/upload/VanCheer/2003-03-21_mon.gif[/img][img]http://www.driverdevelop.com/forum/upload/VanCheer/2002-12-07_smallbaby.jpg[/img]
guoj
驱动小牛
驱动小牛
  • 注册日期2001-04-02
  • 最后登录2014-02-14
  • 粉丝3
  • 关注0
  • 积分15分
  • 威望55点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2002-10-23 12:54
  这样说吧,既然都在分页机制管辖下,那我们如何让某一段内存永远不被交换到磁盘上去吗?而不要象VirtualLock那样,在紧急时刻,又参与了页面交换。
  其实,我就想:把用户态分配的内存变成中断处理程序占用的那种类型的内存。而不要出现页面调度失败。
guoj
guoj
驱动小牛
驱动小牛
  • 注册日期2001-04-02
  • 最后登录2014-02-14
  • 粉丝3
  • 关注0
  • 积分15分
  • 威望55点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2002-10-23 16:57
guoj
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2002-10-24 10:14
我只知道VirtualLock可以
[img]http://www.driverdevelop.com/forum/upload/VanCheer/2003-03-21_mon.gif[/img][img]http://www.driverdevelop.com/forum/upload/VanCheer/2002-12-07_smallbaby.jpg[/img]
guoj
驱动小牛
驱动小牛
  • 注册日期2001-04-02
  • 最后登录2014-02-14
  • 粉丝3
  • 关注0
  • 积分15分
  • 威望55点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2002-10-24 10:55
  是的,花猫。我见到的在用户态的也只有他,但是,书上,确真的加上了这么一句话:“应用中用VirtualLock锁定的页面其实并不是真的锁定了,它仍旧参与页面调度,在一定条件下(比如工作集中所有线程都挂起且页面紧缺)它会被换出”。我有这本书:微软授权清华发行的,书名我一时记不着,是翻译的。所以,我想,要是把他用在特定的地方,例如,锁定接管IRQ的中断处理程序中,故总有一刻,我的WIN98系统要OVER。
   当然,要是能够进入ring0 调用相关服务能够实现尚书功能的话,也行呀。只要确保,程序总是在物理内存中,且不被移动。
我想肯定能实现的,猜看,win98的各种驱动不都运行的好好的吗?

[编辑 -  10/24/02 by  guoj]
guoj
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2002-10-24 11:00
进入ring0可以分配未分页内存,但如果VirtualLock都不行,我对这种未分页的可靠度感到怀疑。
我想,“在一定条件下”的意思是一般不会发生这种情况,除非内存很小,资源占用又大的情况下可能出现,但那样,怪用户机器不好,不怪你。
[img]http://www.driverdevelop.com/forum/upload/VanCheer/2003-03-21_mon.gif[/img][img]http://www.driverdevelop.com/forum/upload/VanCheer/2002-12-07_smallbaby.jpg[/img]
guoj
驱动小牛
驱动小牛
  • 注册日期2001-04-02
  • 最后登录2014-02-14
  • 粉丝3
  • 关注0
  • 积分15分
  • 威望55点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2002-10-24 11:14
  你前面不是说,未分页内存也可以参与交换吗:“愚以为,所谓的未分页内存,只是永远不会交换到硬盘上的东西,其实它也是分页的”。
  所以,我本来是想,VirtualLock不中用的话,就直接在ring0下分配非分页内存,而后进行处理,但是听你一席话,我就觉得有点晕。现在不知如何下手,只能用时间去检验实践了。

[编辑 -  10/24/02 by  guoj]
guoj
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2002-10-24 11:21
 你前面不是说,未分页内存也可以参与交换吗:“愚以为,所谓的未分页内存,只是永远不会交换到硬盘上的东西,其实它也是分页的”。
  所以,我本来是想,VirtualLock不中用的话,就直接在ring0下分配非分页内存,而后进行处理,但是听你一席话,我就觉得有点晕。现在不知如何下手,只能用时间去检验实践了。

[编辑 -  10/24/02 by  guoj]

分页不等于一定参与页面调度,被锁定的或者号称“未分页”的,其实在X86眼里是分页的,但Win不会把它换到硬盘上而已,除非意外情况,比如你说的“一定条件”。
我想,在ring0里分配未分页内存比较好,万一出现“一定条件”,估计Win会优先把VirtualLock的内存换出去。
你自己实践一下吧。
PS:如果你还想给分,可以另开一贴。 :D :D :D
[img]http://www.driverdevelop.com/forum/upload/VanCheer/2003-03-21_mon.gif[/img][img]http://www.driverdevelop.com/forum/upload/VanCheer/2002-12-07_smallbaby.jpg[/img]
上一页
游客

返回顶部