阅读:1599回复:3
IRQL_NOT_LESS_OR_EQUAL 是什么错误?
我写了一个基于ISA的驱动程序,可是运行时候,老是出现这样的错误,然后就死机重新启动了,不知道是怎么回事情??
Break Due to KeBugCheckEx(Unhandled Kernel mode exception) Error = A (IRQL_NOT_LESS_OR_EQUAL) P1=4 P2=2 P3=1 P4=8046B179 能给个具体方向么? |
|
|
沙发#
发布于:2005-01-24 10:43
我的驱动里面有一个中断,管理数据的收发,俺好多次动态分配过非分页内存,和这个东东有关么?
|
|
|
板凳#
发布于:2005-01-24 17:20
Driver Development Tools: Windows DDK Bug Check 0xA: IRQL_NOT_LESS_OR_EQUAL The IRQL_NOT_LESS_OR_EQUAL bug check has a value of 0x0000000A. This indicates that the driver accessed paged memory at DISPATCH_LEVEL or above. Parameters The following parameters are displayed on the blue screen. Parameter Description 1 Memory referenced 2 IRQL at time of reference 3 0: Read 1: Write 4 Address which referenced memory Cause This bug check is issued if paged memory (or invalid memory) is accessed when the IRQL is too high. The error that generates this bug check usually occurs after the installation of a faulty device driver, system service, or BIOS. If you encounter bug check 0xA while upgrading to a later version of Microsoft? Windows?, this error might be caused by a device driver, a system service, a virus scanner, or a backup tool that is incompatible with the new version. Resolving the Problem If a kernel debugger is available, obtain a stack trace. To resolve an error caused by a faulty device driver, system service, or BIOS: Restart your computer. Press F8 at the character-based menu that displays the operating system choices. Select the Last Known Good Configuration option from the Windows Advanced Options menu. This option is most effective when only one driver or service is added at a time. To resolve an error caused by an incompatible device driver, system service, virus scanner, or backup tool: Check the System Log in Event Viewer for error messages that might identify the device or driver that caused the error. Try disabling memory caching of the BIOS. Run the hardware diagnostics supplied by the system manufacturer, especially the memory scanner. For details on these procedures, see the owner's manual for your computer. Make sure the latest Service Pack is installed. If your system has small computer system interface (SCSI) adapters, contact the adapter manufacturer to obtain updated Windows drivers. Try disabling sync negotiation in the SCSI BIOS, checking the cabling and the SCSI IDs of each device, and confirming proper termination. For integrated device electronics (IDE) devices, define the onboard IDE port as Primary only. Also, check each IDE device for the proper master/slave/stand-alone setting. Try removing all IDE devices except for hard disks. If the message appears during an installation of Windows, make sure that the computer and all installed peripherals are listed on the Microsoft Windows Hardware Compatibility List (HCL). Here is a debugging example: kd> .bugcheck [Lists bugcheck data.] Bugcheck code 0000000a Arguments 00000000 0000001c 00000000 00000000 kd> kb [Lists the stack trace.] ChildEBP RetAddr Args to Child 8013ed5c 801263ba 00000000 00000000 e12ab000 NT!_DbgBreakPoint 8013eecc 801389ee 0000000a 00000000 0000001c NT!_KeBugCheckEx+0x194 8013eecc 00000000 0000000a 00000000 0000001c NT!_KiTrap0E+0x256 8013ed5c 801263ba 00000000 00000000 e12ab000 8013ef64 00000246 fe551aa1 ff690268 00000002 NT!_KeBugCheckEx+0x194 kd> kv [Lists the trap frames.] ChildEBP RetAddr Args to Child 8013ed5c 801263ba 00000000 00000000 e12ab000 NT!_DbgBreakPoint (FPO: [0,0,0]) 8013eecc 801389ee 0000000a 00000000 0000001c NT!_KeBugCheckEx+0x194 8013eecc 00000000 0000000a 00000000 0000001c NT!_KiTrap0E+0x256 (FPO: [0,0] TrapFrame @ 8013eee8) 8013ed5c 801263ba 00000000 00000000 e12ab000 8013ef64 00000246 fe551aa1 ff690268 00000002 NT!_KeBugCheckEx+0x194 kd> .trap 8013eee8 [Gets the registers for the trap frame at the time of the fault.] eax=dec80201 ebx=ffdff420 ecx=8013c71c edx=000003f8 esi=00000000 edi=87038e10 eip=00000000 esp=8013ef5c ebp=8013ef64 iopl=0 nv up ei pl nz na pe nc cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00010202 ErrCode = 00000000 00000000 ??????????????? [The current instruction pointer is NULL.] kd> kb [Gives the stack trace before the fault.] ChildEBP RetAddr Args to Child 8013ef68 fe551aa1 ff690268 00000002 fe5620d2 NT!_DbgBreakPoint 8013ef74 fe5620d2 fe5620da ff690268 80404690 NDIS!_EthFilterIndicateReceiveComplete+0x31 8013ef64 00000246 fe551aa1 ff690268 00000002 elnkii!_ElnkiiRcvInterruptDpc+0x1d0 Comments Before upgrading to a new version of Windows, remove all third-party device drivers and system services, and disable any virus scanners. Contact the software manufacturers to obtain updates of these third-party tools. Built on Wednesday, July 24, 2002 |
|
|
地板#
发布于:2005-01-26 10:01
谢谢楼上的回答,对何为IRQL_NOT_LESS_OR_EQUAL俺现在是明白了,估计是俺的DPC例程中引用了分页内存。俺重新改写了程序的结构,现在已经好了,谢谢! :D
|
|
|