首页
社区
课程
招聘
[求助]x64驱动如何申请一个完整4k页
发表于: 2018-9-2 01:19 3756

[求助]x64驱动如何申请一个完整4k页

2018-9-2 01:19
3756
如题,求助大家,x64驱动如何申请一个完整4k页
我现在需要的是申请一个4k页面,去修改这个页面的页表。
我用ExAllocatePool(PagedPool, 0x1000);在win7可以申请到一个完整的4k页,在win10就不行,是这个问题。

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 2018-9-2 22:45 被鬼才zxy编辑 ,原因:
收藏
免费 0
支持
分享
最新回复 (11)
雪    币: 1641
活跃值: (3601)
能力值: (RANK:15 )
在线值:
发帖
回帖
粉丝
2
问题讲清楚
2018-9-2 09:02
0
雪    币: 5270
活跃值: (3505)
能力值: ( LV7,RANK:117 )
在线值:
发帖
回帖
粉丝
3
刘铠文 问题讲清楚
我需要对申请的这个页的页表进行操作,需要这个页是4k分页方式的,我该如何申请这段内存
2018-9-2 12:32
0
雪    币: 136
活跃值: (432)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
https://bbs.pediy.com/thread-203514.htm 这篇帖子似乎可以解决你的问题
2018-9-2 16:11
0
雪    币: 5270
活跃值: (3505)
能力值: ( LV7,RANK:117 )
在线值:
发帖
回帖
粉丝
5
khristian https://bbs.pediy.com/thread-203514.htm 这篇帖子似乎可以解决你的问题
感谢你的回答,这篇帖子里所说的是VA到PA的转换,我的程序中已经实现了这块的内容,我现在需要的是申请一个4k页面,去修改这个页面的页表。
我用ExAllocatePool(PagedPool, 0x1000);在win7可以申请到一个完整的4k页,在win10就不行,是这个问题。
2018-9-2 22:43
0
雪    币: 45
活跃值: (2490)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
ExAllocatePoolWithTag 试试
2018-9-2 23:10
0
雪    币: 136
活跃值: (432)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
7
我忘记在哪看到过内核部分内存是使用大页面(4M),如果确实是这种页面,那么ExAllocatePool类似函数应该是在内核已经分配好的堆栈上分配吧?
如果这些都属实,说明你仅是在4M页内申请了一块内存,4或8字节对齐都有可能,所以你申请的不是4k对齐的整页.
没有具体研究过仅是思路
你看看是不是可以看看缺页中断或者类似系统服务的实现.
2018-9-3 10:52
0
雪    币: 5734
活跃值: (1737)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
8
去看 ExAllocatePool 大于4K就是整页
2018-9-3 12:00
0
雪    币: 12848
活跃值: (9147)
能力值: ( LV9,RANK:280 )
在线值:
发帖
回帖
粉丝
9
win10 17134已经不让瞎改页表了,分分钟蓝你一脸
小老弟可真是个写挂鬼才,看雪捡到宝了
2018-9-3 12:45
0
雪    币: 5270
活跃值: (3505)
能力值: ( LV7,RANK:117 )
在线值:
发帖
回帖
粉丝
10
我win7(7601),win10(10240),用MmAllocateNonCachedMemory(0x1000);暂时解决了。。。
2018-9-3 15:16
0
雪    币: 5270
活跃值: (3505)
能力值: ( LV7,RANK:117 )
在线值:
发帖
回帖
粉丝
11
hzqst win10 17134已经不让瞎改页表了,分分钟蓝你一脸 小老弟可真是个写挂鬼才,看雪捡到宝了
emmm哇这么惨的嘛
2018-9-3 15:18
0
雪    币: 190
活跃值: (84)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
分配>8K的内存 取中间完整的页部分 试试
2018-9-7 11:39
0
游客
登录 | 注册 方可回帖
返回
//