问题描述
我是直接调用其他驱动中的一些函数(调用那个驱动的DriverEntry)
问题是包含该函数的页面似乎已被调出,因为 MmIsAddressValid 返回 false 并且当我尝试转到该地址时,windbg 也会这样说:
Memory access error in 'u F72BA57F'
但是地址是正确的(符号得到解析,我可以看到这实际上是该驱动程序的驱动程序条目)
所以我的问题是如何将分页代码带回内存以便我可以调用它?我不会在我的代码中使用 IRQL 并且它在默认 IRQL 下运行。我想当我在默认的 IRQL 下运行时,内存管理器会处理被调出的内容,并在我尝试跳转到它时将其带回内存,但它似乎没有这样做,因为我得到了 BSOD
默认 IRQL 我的意思是 PASSIVE_LEVEL,根据我的理解,驱动程序中的默认设置是如果我们不搞乱它,但如果我错了,请纠正我。
我认为使用 MmProbeAndLock 可能会有所帮助,但我不确定如何将驱动程序的 EntryPoint 地址转换为 MDL?因为它似乎需要一个 IRP 来构建 MDL,但我没有发送 IRP?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)