阅读:1248回复:5
ExAllocatePool(新手提问)
用ExAllocatePool在分页池中分配的内存在用ExFreePool释放前,是否一直有效,能否被别的内核程序占用?
能否被页出?页出后能否继续访问,访问是否正确? 怎样锁定已分配的内存(不是整页锁定)? |
|
沙发#
发布于:2005-01-19 16:44
用ExAllocatePool在分页池中分配的内存在用ExFreePool释放前,是否一直有效,能否被别的内核程序占用?
当然一直有效,不然还用你来释放,别的内核程序当然也可以使用你的内存,只要他们知道地址,不过分配的话不会重复,那是内存管理器的问题. 能否被页出?页出后能否继续访问,访问是否正确? 看你分配时候指定的属性,不过我观察即使是不可分页的内存,有时候也不一定都在内存里. 怎样锁定已分配的内存(不是整页锁定)? 只能整页锁定,至少在X86处理器上必须如此,其他的处理器不清楚..... 锁定已分配的内存,DDK里有专门的函数,当然你也可以自己操纵页表. |
|
|
板凳#
发布于:2005-01-19 16:56
别的内核程序能修改我已分配的内存的数据吗?
|
|
地板#
发布于:2005-01-20 10:20
当然可以,核心地址是共享的.
|
|
|
地下室#
发布于:2005-01-23 11:01
用ExAllocatePool在分页池中分配的内存在用ExFreePool释放前,是否一直有效,能否被别的内核程序占用? 讲的很清楚,建议新手好好理解理解 |
|
|
5楼#
发布于:2005-01-23 11:02
当然可以,核心地址是共享的. 那确实 :) |
|
|