FIX: NdisMIndicateReceivePacket Bugchecks on Multiproc Checked Build

ID: Q201214


The information in this article applies to:


SYMPTOMS

A deserialized miniport network driver interface specification (NDIS) 4.0 running on a multiprocessor CHECKED build of Windows NT 4.0 Service Pack 3, bugchecks the system if it calls NdisMIndicateReceivePacket. This bugcheck occurs because NDIS recursively acquires an internal SpinLock in NdisMIndicateReceivePacket. The hardware abstraction layer (HAL) checks for SpinLock recursion on a CHECKED build. The (HAL) does not test for this on a FREE build of Windows NT, thus a deadlock can occur.

Typical output from a checked build of Windows NT 4.0 Service Pack 3 looks like the following in the debugger.

NOTE: The bugcheck code is the address of the SpinLock.


*** Fatal System Error: 0x80546B88 (0x00000000,0x00000000,0x00000000,0x00000000)

Hard coded breakpoint hit
> kb
FramePtr  RetAddr   Param1   Param2   Param3   Function Name

f9017c9c  801222a0  00000003 805455f4 80544000 NT!RtlpBreakWithStatusInstruction
f9017e14  80121fe9  80546b88 00000000 00000000 NT!KeBugCheckEx+0xf0
f9017e30  801781ee  80546b88 00000010 00000002 NT!KeBugCheck+0x11
f9017e40  8000527c  80546b88 00000005 fe4b5699 NT!Kii386SpinOnSpinLock@8+0x42
f9017e4c  fe4b5699  f9017e74 80127321 f9017f28 HAL!@KfAcquireSpinLock@4+0x3c
f9017e60  f8ce6f4b  80546b58 f9017e80 00000010 NDIS!ethFilterIndicateReceivePacketX+0x12
f9017f88  f8ce6517  01017ec0 806ac000 f9017fe0 E100BEX!ProcessRXInterrupt+0x3b7
f9017fa8  fe48d42f  80545000 00000000 8054501c E100BEX!D100HandleInterrupt+0xdf
f9017fc8  80173738  80545030 8054501c 00000000 NDIS!ndisMDpc+0x11a
f9017ff4  8017366b  0000000e 00000000 7142dd77 NT!KiRetireDpcList+0x6b
806ac600  806ac600  00000000 f9017ff4 00000bb7 NT!KiIdleLoop+0x4b
> 


CAUSE

NDIS recursively acquires an internal SpinLock for deserialized miniports.


RESOLUTION

Install Service Pack 4.


STATUS

Microsoft has confirmed this to be a bug in the Microsoft products listed at the beginning of this article. This bug has been corrected in Service Pack 4.

Additional query words: kbDSupport NDIS


Keywords          : kbDDK kbNDIS kbNTOS400bug kbNTOS400fix kbNTOS400sp3bug kbNTOS400sp3 kbGrpNTDDK 
Version           : winnt:4.0
Platform          : winnt 
Issue type        : kbbug 

Last Reviewed: April 28, 1999