阅读:2958回复:6
WORKER_THREAD_RETURNED_AT_DATA_IRQL 蓝屏故障,原因何在?
我写的驱动程序功能实现,安装时出现蓝屏!
***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] |
|
|
沙发#
发布于:2004-05-31 17:31
说的很明白了呀80426932为你工作线程地址,...我的msn是:
mfczmh@sina.com 需要请和我联系 |
|
|
板凳#
发布于:2004-05-31 17:42
说的很明白了呀80426932为你工作线程地址,...我的msn是: 我怎么知道80426932为那个工作线程? 我的驱动里有向另一个WDM发送自建IRP的代码,会不会是这里我们处理好?但用softice调试这里的代码都好好的,没有异常,反倒是每次都是在调用MiniportSetInformation(Oid为OID_802_3_MULTICAST_LIST)返回(成功)后蓝屏就发生了。 我加了你:) |
|
|
地板#
发布于:2004-05-31 21:37
PCI_OBJECT指针为空
|
|
|
地下室#
发布于:2004-06-01 08:51
PCI_OBJECT指针为空 PCI_OBJECT 为接受miniport传送数据的WDM指针,是通过IoGetDeviceObjectPointer(&DeviceName,FILE_READ_DATA | FILE_WRITE_DATA,&FileObject,&PCI_OBJECT)取得的,这里在实际测试的时候不会注释掉的。我打印了PCI_OBJECT指针不为空。 我在调试调试 |
|
|
5楼#
发布于:2004-06-01 08:57
你上msn吧
|
|
|
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 |
|
|