假设我想检查我的win32
用户模式应用程序的整个 4GB 地址空间。由于尝试直接从随机位置读取会引发access violation
,我想先检查每个页面的可读性:
char* p = 0x00000000;
while (p < 0xf0000000 )
{
MEMORY_BASIC_INFORMATION mbi;
VirtualQuery ( p , & mbi , 100) ;
if (!( mbi.Protect | PAGE_NOACCESS ) )
char tmp = *p;
p = p + PAGE_SIZE;
}
还有其他更有效的方法吗?