SYMPTOMS
On a Microsoft Windows 2000-based computer, you receive an error message that resembles the following:
STOP 0x0000001E (parameter1, parameter2, parameter3, parameter4)
KERNEL_MODE_EXCEPTION_NOT_HANDLED
Note The
parameter values may vary.
This symptom occurs when the Windows 2000-based computer uses a very fast processor and has a large L3 cache.
CAUSE
This problem occurs because of a hard-coded breakpoint in the Afd.sys process.
This breakpoint occurs because the processor continues to run code before the Asynchronous Procedure Call (APC) occurs.
Note The APC is queued in the Afd.sys process.
After the APC is queued, a series of commands are run. These include a check to determine the following:
- Whether the event in the IO Request Packet (IRP) is signaled
- Whether the return from the IoCallDriver routine was "non-error"
If the event is not signaled, and if the
IoCallDriver routine returns a "non-error" status, a code section is implemented that calls the
DbgBreakPoint routine. The
DbgBreakPoint routine is implemented when either the event or the
IoCallDriver routine behaves incorrectly. When the
DbgBreakPoint routine is called in this area of code, this resembles a situation in which the
BugCheck routine is called. In both situations, the code should not continue to run past the point that is specified in the instructions if the assumption of incorrect behavior is true.
A stack trace of the failure shows that the event is signaled at the time that the
DbgBreakPoint routine occurs. However, the
DbgBreakPoint routine occurs because the event was not signaled at the time of the check.