阅读:2150回复:2
如何检验一个内存地址是否有效
我从应用申请一块内存,通过一个直接方式的I/O请求传递给驱动,在DeviceIoCtrol中相应的IO_CTL处先得到系统虚拟地址,然后锁定,用一个全局变量保存该地址,然后在中断服务例程ISR中向这块内存拷贝数据,有没有什么好的策略在拷贝前检查这个内存地址的有效性,因为有时应用异常退出而驱动不知道继续往这个地址写数据会导致蓝屏死机。请高手指点!谢谢!
|
|
|
沙发#
发布于:2009-03-10 09:49
内核分配的内存: MmIsAddressValid
应用层分配的,驱动在该应用层上下文访问的 ProbeForRead ProbeForWrite |
|
|
板凳#
发布于:2009-03-11 18:32
感谢znsoft的回答,昨天没上来,问题已经解决了,谢谢!
|
|
|