WriteProcessMemory修改内存后马下恢复为什么不成功啊

WriteProcessMemory修改内存后马上恢复为什么不成功啊?
orgaddr := paddr^;
WriteProcessMemory(GetCurrentProcess(), paddr, @newaddr, sizeof(@newaddr), dwSize);
WriteProcessMemory(GetCurrentProcess(), @newaddr, @orgaddr, sizeof(@newaddr), dwSize);
怎么还原不了呢??什么原因?
------解决思路----------------------
应该不会的,我也研究过这个的测试也很正确的
你的程序可那个地方设置错参数了
------解决思路----------------------
地址可能被占用了,即使一瞬间也有可能被占用的
如果有错误可以用GetLastError查看错误代码

------解决思路----------------------
首先看你的基址找正确没有
其次其他的程序也可能对这个程序进行操作,比如Timer+钩子,定时检查并还原