在2k,xp,2k3中读取特定虚拟地址系统占用率飙升的问题。

Windows内核调试

在2k,xp,2k3中读取特定虚拟地址系统占用率飙升的问题。


侯佩 2010-01-07, 08:55 上午
代码:

bool DDKAPI HyFixBug(void) {   bool bRet = false;   DWORD *DeadAddr = (DWORD*)0xc0282000; 

DWORD dwVal = 0;        __try   {     dwVal = *DeadAddr;  // wow!     bRet = true;   }   __except(EXCEPTION_EXECUTE_HANDLER)   {     DbgPrint("%s Rise Exception!\n",__func__);   }   return bRet; }

在 2k(sp4,非PAE模式)下地址读0xc0282000地址内容时,cpu内核占用率飙升到
100%,但系统并没有彻底死机,只是变得很慢。加int 3用softice单步到该句时
softice挂起,但用ctrl+D可以恢复。注意0xc0282000正好是虚拟地址
0xa0800000的PTE虚拟地址,不光这一个地址,访问0xa0800000之后的一段虚拟
地址的PTE都会有如上现象。

在xp(sp3 PAE模式)和2k3(sp1 PAE模式)下访问0xbb000000开始虚拟地址的PTE
时会发生同样现象。

访问其他地址的PTE地址,均无此现象。

Powered by Community Server Powered by CnForums.Net