Fireak
驱动牛犊
驱动牛犊
  • 注册日期2002-11-03
  • 最后登录2002-12-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1772回复:19

关于分页的问题!

楼主#
更多 发布于:2002-11-06 16:47
问一个问题:默认情况下,编译器会把Data,Stack,heap,Code Sections的属性定义成\"pageable\" or \"non-pageable\"?????
比如我直接定义一些局部变量如下:  
NTSTAS Driverentry(....)
{
LARGE_INTEGER value, increment;
KSPIN_LOCK spinlock;
}
以上的局部变量是在分页还是非分页内存块中?
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-11-06 16:53
分在堆栈中
传说堆栈是未分页的。
[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]
Fireak
驱动牛犊
驱动牛犊
  • 注册日期2002-11-03
  • 最后登录2002-12-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-11-06 16:58
我描述的变量应该被编译器分配到栈中,你的意思是Stack Section是非分页的?,还有其他的Sections呢,比如Data section code section??? :( :( :(
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-11-06 17:03
没有Stack Section
堆栈就是系统分配的一块内存而已,在驱动文件里没这东西。
[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]
Fireak
驱动牛犊
驱动牛犊
  • 注册日期2002-11-03
  • 最后登录2002-12-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-11-06 17:12
确实在.sys文件中没有stack section,但是在用户模式进程中有这个Section(其实就是一片1M的内存空间)
不讨论这个问题了,重问:
我问的是:
1,stack and heap都Pageable?
2,data section,code section,and other sections都pageable?? :)
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-11-06 17:25
确实在.sys文件中没有stack section,但是在用户模式进程中有这个Section(其实就是一片1M的内存空间)
不讨论这个问题了,重问:
我问的是:
1,stack and heap都Pageable?
2,data section,code section,and other sections都pageable?? :)

用户模式也没这个Section!!!1M空间确实有!!!
1,不是,是nonpaged
2,不懂
3,给分?谢谢
[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]
Fireak
驱动牛犊
驱动牛犊
  • 注册日期2002-11-03
  • 最后登录2002-12-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-11-06 17:39
谢谢花猫,呵呵给你分!
你不是搞Virus的吗,怎么对PE和进程空间的概念如此模糊?
建议你好好的学习一下用户模式的核心编程!
我认为最好的教材:
Advance windows
windows system secret
后者里面有个看应用程序进程空间的例子,一般进程里面有操作系统分配1m的堆空间(编译可选),加深一下基础!hehe ! :) :)
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-11-06 17:47
谢谢花猫,呵呵给你分!
你不是搞Virus的吗,怎么对PE和进程空间的概念如此模糊?
建议你好好的学习一下用户模式的核心编程!
我认为最好的教材:
Advance windows
windows system secret
后者里面有个看应用程序进程空间的例子,一般进程里面有操作系统分配1m的堆空间(编译可选),加深一下基础!hehe ! :) :)

faint!
你不是说驱动吗?
如果是用户模式,所有的Section都是分页的!!!
PE头里这四个值规定了堆和栈的大小,你自己看吧
Offset : 00000060 SizeOfStackReserve : 00100000
Offset : 00000064 SizeOfStackCommit : 00004000
Offset : 00000068 SizeOfHeapReserve : 00100000
Offset : 0000006C SizeOfHeapCommit : 00001000
你说的Section是指什么???难道不是PE的Section???
PE文件当然没有堆栈这个Section。
我就不明白,你既然看了那两部书,为何连PE里到底有什么Section都不知道?
气死我了!!!!!!!!!!!!!!!!
你没说明白,反倒数落我一顿
 :mad: :mad: :mad:

[编辑 -  11/6/02 by  Koms Bomb]
[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]
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-11-06 17:49
哼!
 :mad: :mad: :mad: :mad: :mad: :mad: :mad: :mad:
 :mad: :mad: :mad: :mad: :mad: :mad: :mad: :mad:
 :mad: :mad: :mad: :mad: :mad: :mad: :mad: :mad:
 :mad: :mad: :mad: :mad: :mad: :mad: :mad: :mad:
 :mad: :mad: :mad: :mad: :mad: :mad: :mad: :mad:
 :mad: :mad: :mad: :mad: :mad: :mad: :mad: :mad:
 :mad: :mad: :mad: :mad: :mad: :mad: :mad: :mad:
 :mad: :mad: :mad: :mad: :mad: :mad: :mad: :mad:
[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]
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-11-06 18:18
本站有我写的一个工具PEViewer,可以查看PE文件格式。
你down下去看看,是否有PE文件有个\"stack section\"
[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]
jjcz
驱动牛犊
驱动牛犊
  • 注册日期2002-03-20
  • 最后登录2006-08-23
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2002-11-06 18:43
KSPIN_LOCK spinlock 肯定是非分页的
Fireak
驱动牛犊
驱动牛犊
  • 注册日期2002-11-03
  • 最后登录2002-12-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2002-11-07 08:44
谢谢花猫,不过你说的不是全对的:
1,首先我提到了进程的概念,我说的Stack section指的是进程里的Stack section,不是PE里的Section。
2,我用PEditor看了一下.sys文件,发现.text(.Code),.data.rdata是non-pageable的,而.rscs,.reloc是pageable的。主要是看PE文件头中的character的flag有没有0x08000000标志!
不过还是谢谢你告诉我这么多。关于我提到的两本书有时间你看看吧,都是写基础教材,不过很有意义!^_^ :D :D :D :D :P :P :P :P
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2002-11-07 09:50
谢谢花猫,不过你说的不是全对的:
1,首先我提到了进程的概念,我说的Stack section指的是进程里的Stack section,不是PE里的Section。
2,我用PEditor看了一下.sys文件,发现.text(.Code),.data.rdata是non-pageable的,而.rscs,.reloc是pageable的。主要是看PE文件头中的character的flag有没有0x08000000标志!
不过还是谢谢你告诉我这么多。关于我提到的两本书有时间你看看吧,都是写基础教材,不过很有意义!^_^ :D :D :D :D :P :P :P :P

你有说你说的stack section是指进程的了吗?你自己没说清楚,怎能怪我?提到section,我第一个想到的就是PE。
你一会说驱动一会说用户模式,我不知道你到底在说什么,感觉你逻辑有些混乱。
[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]
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2002-11-07 09:51
你提到的两本书,我早就概览过。
怎么了??? :mad: :mad: :mad:
[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]
Fireak
驱动牛犊
驱动牛犊
  • 注册日期2002-11-03
  • 最后登录2002-12-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2002-11-07 10:54
不用生气,你个大花猫! :D :D :D
确实是我开始时表达的有问题,关于书我只是给你提一个建议而已!
还有我没有一会说驱动一会说用户模式!我说了进程的概念可能让你这么想了,可能是我表达能力太差的原因。
我是想说.sys是PE文件,PE LOADER在load .sys文件时,得为.sys文件分配了一段堆栈,我于是就把他分配的这段堆栈空间叫做了heap  section。
我不是逻辑混乱,而是表达不清!还有我觉得你这人还行!呵呵! :D :D :D
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2002-11-07 11:51
不用生气,你个大花猫! :D :D :D
确实是我开始时表达的有问题,关于书我只是给你提一个建议而已!
还有我没有一会说驱动一会说用户模式!我说了进程的概念可能让你这么想了,可能是我表达能力太差的原因。
我是想说.sys是PE文件,PE LOADER在load .sys文件时,得为.sys文件分配了一段堆栈,我于是就把他分配的这段堆栈空间叫做了heap  section。
我不是逻辑混乱,而是表达不清!还有我觉得你这人还行!呵呵! :D :D :D

faint!我这么暴躁,你还觉得我还行,你狠 :D
只是你说我“对PE和进程空间的概念如此模糊”,让我非常不爽,我不喜欢被人冤枉。
我记得驱动里堆栈是未分页的。
[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]
kxgchina
驱动小牛
驱动小牛
  • 注册日期2002-04-01
  • 最后登录2005-05-05
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2002-11-07 14:57
请问这两本书是英文的?哪有卖?谢谢
Fireak
驱动牛犊
驱动牛犊
  • 注册日期2002-11-03
  • 最后登录2002-12-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2002-11-07 19:22
对不住花帽,说话过于冒失了!
书都有汉语版的:
前者叫做“windows 核心编程”,那里都有“电子的,和书”
后者叫做“windows系统编程大奥秘”,侯捷网站免费下载
也给我点分吧!呵呵!  :)
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2002-11-08 09:30
对不住花帽,说话过于冒失了!
书都有汉语版的:
前者叫做“windows 核心编程”,那里都有“电子的,和书”
后者叫做“windows系统编程大奥秘”,侯捷网站免费下载
也给我点分吧!呵呵!  :)

“核心”还不错,虽不是真的核心,但看了还是挺有帮助的。
“奥秘”则未必很大,而且是95的
[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]
nikko
驱动小牛
驱动小牛
  • 注册日期2002-08-08
  • 最后登录2004-09-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2002-11-08 09:57
哎~!~!~!

猫咪的脾气越来越坏了! :(
http://202.106.185.224/music_1024/battleraper_02_04_27.mp3
游客

返回顶部