shdaianita
驱动牛犊
驱动牛犊
  • 注册日期2008-07-18
  • 最后登录2009-07-14
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望25点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1986回复:2

如何判断共享内存已经被释放?

楼主#
更多 发布于:2008-08-03 14:50
 在退出程序时,我需要判断共享内存是否已经被释放,用了
if(!SystemAddr||!Mdl)

结果老是蓝屏 即释放已经释放的内存,导致的

请问应该怎样判断呢?

以上都是PVOID类型

还有,我已经成功截获了包,怎样查看包的长度,所有内容呢,就像在IRIS里面显示出来的,包使用psharememory所指向的,其是PVOID类型,不知道怎么查看PVOID类型的数据?
zhaock
驱动太牛
驱动太牛
  • 注册日期2002-01-26
  • 最后登录2018-06-02
  • 粉丝3
  • 关注2
  • 积分73328分
  • 威望362317点
  • 贡献值1点
  • 好评度226点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2008-08-04 09:38
1.应用程序退出的时候,if(UserAddr) {MmUnmapLockedPages...;UserAddr=NULL}
真正的内存释放在DriverUnload里做,ExFreePool(SysAddr)
2.将PVOID随意转成pchar或者pint就可以
shdaianita
驱动牛犊
驱动牛犊
  • 注册日期2008-07-18
  • 最后登录2009-07-14
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望25点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2008-08-05 09:21
谢谢哦 我已经解决了
游客

返回顶部