xuxinfa712
驱动牛犊
驱动牛犊
  • 注册日期2010-03-16
  • 最后登录2011-05-09
  • 粉丝1
  • 关注0
  • 积分10分
  • 威望81点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1947回复:2

pci驱动诡异问题请教!急,若能解决可付报酬

楼主#
更多 发布于:2010-06-09 13:03
我们开发了一块pci9052芯片的PCI接口板,出现怪异问题,请帮忙分析下!
 
基于PDC1000开发的接口板(使用PCI9052)。    
数据采集有两部分,第一部分较少数据读写;第二部分大量数据频繁读写(80ms定时器,每80ms有2048次*3*12位/次,读写时钟由2M晶振产生,瞬间读写速度大概2-3M/s),但这80ms只有20-30ms有读写。

电脑开机马上(开机2,3分钟左右)连接测量仪器,第一部分数据读写没问题,采用第二部分读写会出现电脑自动重启。但若电脑开机=10分钟左右再连接机器采集数据会一点问题都没有。

windbg分析dmp文件是CRITICAL_OBJECT_TERMINATION (f4)
A process or thread crucial to system operation has unexpectedly exited or been
terminated.
Several processes and threads are necessary for the operation of the
system; when they are terminated (for any reason), the system can no
longer function.
Arguments:
Arg1: 00000003, Process
Arg2: 892816c0, Terminating object
Arg3: 89281834, Process image file name
Arg4: 805d220a, Explanatory message (ascii)

大概说是This system bugchecked when the critical process csrss.exe failed an I/O operation due to insufficient non-paged pool.
但我查了下,申请的内存差不多都释放了啊。困惑!

这是不是驱动的问题,还是接口板硬件问题?
 
不知道什么原因,谢谢!
急,若能解决可付报酬!  qq:2158212446
space061
驱动牛犊
驱动牛犊
  • 注册日期2005-08-03
  • 最后登录2013-05-29
  • 粉丝0
  • 关注0
  • 积分24分
  • 威望272点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2010-06-09 15:22
换个角度:  是不是申请的内存太多?释放的不及时?
xuxinfa712
驱动牛犊
驱动牛犊
  • 注册日期2010-03-16
  • 最后登录2011-05-09
  • 粉丝1
  • 关注0
  • 积分10分
  • 威望81点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2010-06-09 15:55
 DriverName = (char*)ExAllocatePool(NonPagedPool,DriverNameLen);
pEvent = (PDEBUGPRINT_EVENT)ExAllocatePool(NonPagedPool,len);
Msg = (char*)ExAllocatePool(NonPagedPool,max);
ServiceRegistryPath.Buffer = (PWSTR) ExAllocatePool(PagedPool, pRegistryPath->Length + sizeof(WCHAR));
只有这4个地方用了,前三个用ExFreePool 了,最后一个用 RtlFreeUnicodeString(&ServiceRegistryPath);
感觉NonPagedPool应该有100多M--200多M,申请这点应该没问题吧。
谢谢指教
游客

返回顶部