Monday 14 June 2010

Getting blue error messages with "IRQL_NOT_LESS_OR_EQUAL".

IRQL_NOT_LESS_OR_EQUAL stop errors are caused by software not hardware. When Windows XP is in the middle of scheduling an execution thread, it puts the processor at an Interrupt ReQuest Level (or IRQL) of 'Dispatch'. This blocks further software interrupts from the scheduler until the process is complete, and no one is allowed to do anything that requires the scheduler. Unfortunately, accessing a memory address in virtual memory is such an activity, because when a process generates a VM page fault, it is usually suspended while the slow hard disk gets around to delivering the requested page. The upshot of this is that drivers (and everything else but especially drivers) are restricted to the contents of physical memory while the IRQL is at dispatch. If anything breaks this rule (say because a corrupted pointer tries to access a random memory address), Windows XP flings up the blue screen and shuts it down pronto. The answer is simply to find out which driver is responsible and replace it.

No comments:

Post a Comment