首页
社区
课程
招聘
[求助]为什么在驱动程序中不能使用4096以上的函数栈空间?
发表于: 2010-1-29 10:19 5468

[求助]为什么在驱动程序中不能使用4096以上的函数栈空间?

2010-1-29 10:19
5468
为什么在驱动程序中不能使用4096以上的函数栈空间?
为什么在驱动程序中不能使用4096以上的函数栈空间?

我的一个驱动程序,里边有一个函数,函数里

//CHAR header_buf[4096] = { 0 }; //这样不行,driver monitor 加载时说127找不到文件

改成下边这样就行了
PCHAR header_buf;
header_buf=ExAllocatePool(NonPagedPool,4096);

驱动程序对程序栈空间的限制是多少呢?

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 63
活跃值: (17)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
2
火星上的驱动程序可以使用4096以上的栈空间
LZ可以去火星上开发
2010-1-29 11:04
0
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
驱动程序默认的stack很小,你用编译的加个参数,应该可以改
2010-1-29 15:13
0
雪    币: 750
活跃值: (228)
能力值: ( LV9,RANK:780 )
在线值:
发帖
回帖
粉丝
4
。。。。。。
2010-2-1 07:12
0
雪    币: 242
活跃值: (14)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
WINDOWS平台下,PE程序的堆栈有两种限制
1)用户态,由PE头中的Stack字段设置最大(保留)栈空间,3楼所说的设置编译参数,就是设置此部分,内存/地址空间充足的情况下我还没遇到上限。
3)内核态,线程栈大小是系统规定的,而且是被很多内核模块共用的。内核态的内存是很珍贵的,不要把写用户态程序的那一套山寨手段拿到内核态。正规驱动程序中,几十个字节以上的存储空间都是动态分配的!

现在“驱动”这词已经被沦落
2010-2-3 12:33
0
游客
登录 | 注册 方可回帖
返回
//