阅读:2437回复:2
在SFRead中当Length比较大时,MmGetSystemAddressForMdlSafe发生PAGE_FAULT_IN_NONPAGED_AREA蓝屏
在SFRead中当Length比较大时比如18432,MmGetSystemAddressForMdlSafe发生PAGE_FAULT_IN_NONPAGED_AREA蓝屏
正在测试直接播放透明加密的avi文件,直接使用微软的mplayer2.exe 发现一旦读的Length比较大,无论MmGetSystemAddressForMdlSafe还是MmGetSystemAddressForMdl都回出现蓝屏 不知道那位大大有这方面的经历,如何解决? |
|
沙发#
发布于:2007-08-20 21:19
在SFRead中当Length比较大时比如18432,MmGetSystemAddressForMdlSafe发生PAGE_FAULT_IN_NONPAGED_AREA蓝屏
发现以前一直用if(Irp->MdlAddress) { MyBuffer = MmGetSystemAddressForMdlSafe(Irp->MdlAddressNormalPagePriority); }else if(MyBuffer==NULL&&Irp->UserBuffer) { MyBuffer = Irp->UserBuffer; } 类似代码,但是发现当有些Length较大时, Irp->MdlAddress !=null 但是使用MmGetSystemAddressForMdlSafe 就会出错,同时Irp->UserBuffer也!=null 此时用Irp->UserBuffer是可以的 |
|
板凳#
发布于:2007-08-21 04:46
Re:在SFRead中当Length比较大时,MmGetSystemAddressForM
Seems like MmGetSystemAddressForMdlSafe() is called on DISPATCH_LEVEL and the MDL is not in memory. Looks like this BSOD happened in cached READ path. Do you do something that raised IRQL in cached READ such as using spin lock? |
|