我正在使用 Windows 内核驱动程序(用 WDF 编写),我不是其作者,但我可以访问源代码。随着时间的推移,该驱动程序似乎会泄漏内核内存,最终导致 BSOD。
因此,在分析 BSOD 后的完整内存转储时,我运行:
!wdfdriverinfo drvr.sys 0x41
显示出异常多的
WDFMEMORY
物体 - 几乎 20k。
我想知道是否有一种自动方法可以找出导致内存泄漏的原因? (除了静态代码分析。)
!wdfpoolusage
调试器扩展对于您调试池相关问题很有用。有关详细信息,请参阅 https://learn.microsoft.com/en-us/windows-hardware/drivers/debuggercmds/-wdfkd-wdfpoolusage