flyhobo
驱动小牛
驱动小牛
  • 注册日期2004-03-05
  • 最后登录2005-05-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2958回复:6

WORKER_THREAD_RETURNED_AT_DATA_IRQL 蓝屏故障,原因何在?

楼主#
更多 发布于:2004-05-31 17:15
我写的驱动程序功能实现,安装时出现蓝屏!
***stop 0x000000E1(0x80426932,0x00000002,0x00000000,0x80479960)
WORKER_THREAD_RETURNED_AT_DATA_IRQL
*** Address 80426932 base at 80400000,DataStamp 4047db83 -ntoskrnl.exe
*** Address 80479960 base at 80400000,DataStamp 4047db83 -ntoskrnl.exe
Beginning dump of physical memory
physical memory dump compelete.Contect you system administrator or technical support group.


在DDK中有如下:
Bug Check 0xE1: WORKER_THREAD_RETURNED_AT_BAD_IRQL
The WORKER_THREAD_RETURNED_AT_BAD_IRQL bug check has value 0x000000E1. This signifies that a worker thread completed and returned at IRQL DISPATCH_LEVEL or above.

Parameters
The following parameters are displayed on the blue screen.

Parameter    Description
1            Address of the worker routine
2            IRQL (ought to have been zero)
3            Work item parameter
4            Work item address


Resolving the Problem
To find the guilty driver, use the following kernel debugger command:

kd> ln address

where address is the worker routine address given in Parameter 1.

看不懂啊!我怎样才能确定我的程序那里出了问题?


[编辑 -  5/31/04 by  flyhobo]
好好过日子
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-05-31 17:31
说的很明白了呀80426932为你工作线程地址,...我的msn是:
mfczmh@sina.com
需要请和我联系
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
flyhobo
驱动小牛
驱动小牛
  • 注册日期2004-03-05
  • 最后登录2005-05-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-05-31 17:42
说的很明白了呀80426932为你工作线程地址,...我的msn是:
mfczmh@sina.com
需要请和我联系

我怎么知道80426932为那个工作线程?

我的驱动里有向另一个WDM发送自建IRP的代码,会不会是这里我们处理好?但用softice调试这里的代码都好好的,没有异常,反倒是每次都是在调用MiniportSetInformation(Oid为OID_802_3_MULTICAST_LIST)返回(成功)后蓝屏就发生了。

我加了你:)
好好过日子
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-05-31 21:37
PCI_OBJECT指针为空
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
flyhobo
驱动小牛
驱动小牛
  • 注册日期2004-03-05
  • 最后登录2005-05-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-06-01 08:51
PCI_OBJECT指针为空

PCI_OBJECT 为接受miniport传送数据的WDM指针,是通过IoGetDeviceObjectPointer(&DeviceName,FILE_READ_DATA | FILE_WRITE_DATA,&FileObject,&PCI_OBJECT)取得的,这里在实际测试的时候不会注释掉的。我打印了PCI_OBJECT指针不为空。
我在调试调试
好好过日子
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-06-01 08:57
你上msn吧
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
flyhobo
驱动小牛
驱动小牛
  • 注册日期2004-03-05
  • 最后登录2005-05-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-06-01 15:39
问题解决了

因为我同步时加锁在NdisAcquireSpinLock()和NdisReleaseSpinLock()之间执行了过多的代码。

DDK中有如下:
A driver should never hold a spin lock for an extended period (more than a few instructions). Holding a spin lock for longer than 25 microseconds degrades both system and driver performance :o
好好过日子
游客

返回顶部