Try running with the checked build of NDIS so that it will spit out the
reason it has bugchecked. Also, turn on the NDIS verifier as well as Driver
Verifier on NDIS.SYS, your -protocol-.sys, and your -miniport-.sys.
Make sure your protocol handles NDIS_STATUS_RESOURCES correctly in the
ProtocolRecievePacket() handler. That is, that it does not try to hold onto
the packet. I suspect that this bugcheck might very well be that a packet
was indicated to your protocol with NDIS_STATUS_RESOURCES and your protocol
returned a non-zero packet reference count from ProtocolRecievePacket().
Of course, there is the far greatly likelyhood that I am completely wrong
about that hunch and I surely don’t think I could actually tell you what was
wrong without a lot more information.
For instance, to find out what protocol binding NDIS was in the process of
indicating the packet to at the time it bugchecked, a bit of stack dumping
along with the output form !ndiskd.protocols to see the address (handle)
values of the protocol bindings (opens) will narrow this down somewhat. I
am going to take a guess that you will find it to be your protocol, or, that
your protocol ‘preceeds’ the current protocol in the list of opens (meaning
it would have already been given the packet).
Another thing to look at would be the packet itself using !ndiskd.pkt
(actually, it might be .packet, I don’t remember right this instant but
!ndiskd.help is wonderful). Again, the packet address is on the stack
*somewhere*. Heck, it might even be one of the bugcheck parameters, who
knows. !ndiskd.packet is pretty good about telling you if an address is a
packet or not. When you find the packet, see if it looks reasonable (like,
that it has a MDL list, is not free, etc.)
Good Luck,
Dave Cattley
Consulting Engineer
Systems Software Development
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of
xxxxx@wipro.com
Sent: Thursday, September 13, 2007 2:11 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] Crashing Miniport Driver
Hi,
Im developing NDIS Protocol driver.While running suddenly my
Miniport driver is crashing.Following is the message I got it from Debugger
BUGCODE_ID_DRIVER (40000080)
This is the NDIS Driver Bugcheck for Windows 2000 and Windows XP.
For Windows Server 2003 and later, see 0x7C, BUGCODE_NDIS_DRIVER.
DESCRIPTION
The meaning of the bug check parameters cannot be determined by examining
the parameters alone. You must also examine the text of a DbgPrint message.
For details, see either the debugger documentation or the DDK documentation.
Arguments:
Arg1: 8623e670
Arg2: 85f2d120
Arg3: 805501e4
Arg4: 00000001
Debugging Details:
DEFAULT_BUCKET_ID: DRIVER_FAULT
BUGCHECK_STR: 0x40000080
PROCESS_NAME: Idle
LAST_CONTROL_TRANSFER: from 804f8afd to 8052a5d8
STACK_TEXT:
8054fb18 804f8afd 00000003 8054fe74 00000000
nt!RtlpBreakWithStatusInstruction
8054fb64 804f96e8 00000003 8623e670 85f2d120 nt!KiBugCheckDebugBreak+0x19
8054ff44 804f9c37 40000080 8623e670 85f2d120 nt!KeBugCheck2+0x574
8054ff64 f730c921 40000080 8623e670 85f2d120 nt!KeBugCheckEx+0x1b
8054ffc4 f6cca29f 8623e670 805501e4 00000001
NDIS!ethFilterDprIndicateReceivePacket+0x5fd
WARNING: Stack unwind information not available. Following frames may be
wrong.
805503fc f6ccd0c3 86059000 8623e670 86059190 Rtenicxp+0x529f 80550410
f7301f09 86059000 8055b0a0 ffdff9c0 Rtenicxp+0x80c3
80550428 80544e5f 860591a4 86059190 00000000 NDIS!ndisMDpcX+0x21 80550450
80544d44 00000000 0000000e 00000000 nt!KiRetireDpcList+0x61
80550454 00000000 0000000e 00000000 00000000 nt!KiIdleLoop+0x28
STACK_COMMAND: kb
FOLLOWUP_IP:
Rtenicxp+529f
f6cca29f 56 push esi
SYMBOL_STACK_INDEX: 5
SYMBOL_NAME: Rtenicxp+529f
FOLLOWUP_NAME: MachineOwner
MODULE_NAME: Rtenicxp
IMAGE_NAME: Rtenicxp.sys
DEBUG_FLR_IMAGE_TIMESTAMP: 45c8b02e
FAILURE_BUCKET_ID: 0x40000080_Rtenicxp+529f
BUCKET_ID: 0x40000080_Rtenicxp+529f
What would be the reason for this error.
Thanks
Alex.
NTDEV is sponsored by OSR
For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars
To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer