阅读:1191回复:4
如何在物理内存中分配块教大的区域(>20),且不会被移出物理内存
要求这块区域一直在物理内存中,不会因为虚拟内存机制被移出物理内存
|
|
沙发#
发布于:2002-05-15 19:51
你是在那里分配?用户层肯定会对换的,还有什么OS?
|
|
板凳#
发布于:2002-05-16 08:25
驱动程序中使用ExAllocatePool分配非分页内存。
应用层使用GlobalAlloc,再使用GlobalLock锁定即可。 |
|
|
地板#
发布于:2002-05-16 09:30
tigerzd说错了:
GlobalLock不能锁定到物理内存。GlobalAlloc、LocalAlloc等一系列函数是从Win16移植的,概念不一样,他们的存在只是为了兼容。详细情况参见Jeffrey的Advanced Windows。 在Win32中,Ring3应该使用VirtualLock。 |
|
地下室#
发布于:2002-05-16 13:07
wilton说的对,我已经知道怎么做了:先用SetProcessWorkingSet()设置进程的工作集大小,再使用VirtualAlloc()分配内存,最后用VirtualLock()锁定在物理内存中
|
|