windows内核编程,申请内容空间然后释放的问题

我的驱动在开始时使用ExAllocatePool为指针P申请了一片PagedPool内存空间,但由于在之后的过程中,指针P发生了变化,直至变成NULL。这时如果调用ExFreePool(P)来释放内存空间的话,就会因为P为空指针而发生蓝屏,那么此时我应该如何才能释放之前为P申请的那片内存空间呢?如果只申请了而不释放的话容易造成内存泄漏。
麻烦知道的大神解答下,谢谢。

阅读 2.7k
2 个回答

在变化之前就需要使用一个常量保持指针了,之后释放这个常量指向的空间就行。空间申请出来之后,大小和地址就不会再变化了。

你可以用一个 临时指针来指向 有空间的那个指针 做++--操作,一般都是这样的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题