2011-10-01 66 views
1

有没有办法知道可以使用ReadProcessMemory从另一个进程读取多少内存?
如果我尝试读取从特定地址太多的内存,它会返回错误代码299,并将读取的0字节。
我猜是因为我试图读取超出进程的分配的缓冲区。检查在其他进程中可以读取多少内存

+3

请参阅http://stackoverflow.com/q/5571995/225757。总之,你想用'VirtualQueryEx'来了解存储区,然后分别读取它们。 –

+0

这可能不相关,但我写了一个程序,从过程的每一个提交页面读取一个字节,[这个问题](http://stackoverflow.com/questions/2939599/is-it-possible-to- unpage-所有记忆功能于Windows)中包含核心算法。 –

回答

0

据我所知,唯一的办法是试图读取它。 ReadProcessMemory将返回0,如果你想读的内存块是不是在这个过程中完全访问,例如它的一部分未分配。

使用较小的nSize(1024或512甚至1)是一种解决方法。

相关问题