|
|
|
|
|
|
|
Windows内核调试
帖子发起人: soloo 发起时间: 2009-10-21 00:30 上午 回复: 6
|
帖子排序:
|
|
|
|
2009-10-21, 00:30 上午
|
soloo
注册: 2008-11-04
发 贴: 4
|
|
|
蓝屏DUMP: http://www.cnlvker.com/download/dump.rar (好像传不了附件)
在关机的时候经常蓝屏,感觉是R3与R0的共享内存区造成的PTE冲突: PFN_LIST_CORRUPT (4e) Typically caused by drivers passing bad memory descriptor lists (ie: calling MmUnlockPages twice with the same list, etc). If a kernel debugger is available get the stack trace. Arguments: Arg1: 00000099, A PTE or PFN is corrupt Arg2: 00000000, page frame number Arg3: 00000001, current page state Arg4: 00000000, 0
Debugging Details:
dump显示PTE分页冲突,驱动传入错误的内存描述符列表错误 (可能2次释放导致)
要通宵改了,项目里我的代码老蓝屏,组长快把我杀了 多谢各位老大们指教,谢谢!!
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2009-10-21, 09:30 上午
|
王宇
注册: 2007-05-08
发 贴: 306
|
|
|
说的没错,要在你们组长杀你之前检查你的共享内存代码,看看哪里会导致异常减少ShareCount..
大致是这样:
MiDecrementShareCount() 函数会检查当前 Pfn 是否位于标准的 (StandbyPageList) 或活动的 (ActiveAndValid) 链表,若是就减少计数 (Pfn1->u2.ShareCount -= 1;) 再继续工作;若不是就蓝屏:
if (Pfn1->u3.e1.PageLocation != ActiveAndValid && Pfn1->u3.e1.PageLocation != StandbyPageList) { KeBugCheckEx (PFN_LIST_CORRUPT, 0x99, PageFrameIndex, Pfn1->u3.e1.PageLocation, 0); }
你提交的参数是已释放链表 (FreePageList),不是前述两者,显然导致上述蓝屏。
typedef enum _MMLISTS { ZeroedPageList, FreePageList, StandbyPageList, //this list and before make up available pages. ModifiedPageList, ModifiedNoWritePageList, BadPageList, ActiveAndValid, TransitionPage } MMLISTS;
微软的建议是检查你的 MmUnlockPages() 等调用情况,看看哪里多释放了一次。
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2009-10-21, 18:00 下午
|
soloo
注册: 2008-11-04
发 贴: 4
|
|
|
多谢王兄拔刀相助!
检查了N遍,是2个驱动用了一个驱动控制BUFFER造成:
DeviceIoControl(xxxdevice,
xxxContorlCode,
controlbuff,
256,
controlbuff,
256,
&dw,
0);
2个驱动用的一个controlbuff,dw
全局变量 DWORD controlbuff[64];
其中一个驱动MmMapIoSpace映射了controlbuff
可能这样造成的2次释放冲突
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2009-10-21, 18:50 下午
|
王宇
注册: 2007-05-08
发 贴: 306
|
|
|
呵呵 上午的时候也看到 solo 在 debugman 的帖子了
不过我觉得用 MmMapIoSpace 映射环3地址做通讯不太好呀,同步什么的都是问题,写写 Demo 可以,做产品还是别呀...
^_^
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2009-10-21, 19:15 下午
|
MJ0011
注册: 2008-04-24
发 贴: 112
|
|
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
高端调试 » 软件调试 » Windows内核调试 » 【PTE冲突蓝屏DUMP求助】
|
|
|
|
|
|