Re: DPC Question.

Hello devs

The explanation for the bug check 0xB8 code states,
“A wait operation, attach process, or yield was attempted from a
DPC routine. This is an illegal operation.”

What does “yield from a DPC routine mean”?

look into xp ddk, contains the explanation for this.

-sanesh

-----Original Message-----
From: nt developer [mailto:xxxxx@rediffmail.com]
Sent: Monday, January 13, 2003 7:10 PM
To: NT Developers Interest List
Subject: [ntdev] Re: DPC Question.

Hello devs

The explanation for the bug check 0xB8 code states,
“A wait operation, attach process, or yield was attempted from a
DPC routine. This is an illegal operation.”

What does “yield from a DPC routine mean”?


You are currently subscribed to ntdev as: xxxxx@ctd.hcltech.com
To unsubscribe send a blank email to xxxxx@lists.osr.com

I think that the documentation is trying to say that you have performed an operation within a
dpc context that has resulted in a task switch operation, typically because you have violated
an IRQL restriction on a DDK API. Your bugcheck stack context ought to point to the offending
api call in your dpc routine, or from some function called from your dpc routine. There is no
specific DDK API for ‘yield’.

===========================
Mark Roddy
Consultant, Microsoft DDK MVP
Hollis Technology Solutions
xxxxx@hollistech.com
www.hollistech.com
603-321-1032

-----Original Message-----
From: “nt developer”
To: “NT Developers Interest List”
Date: 13 Jan 2003 13:40:19 -0000
Subject: [ntdev] Re: DPC Question.

> Hello devs
>
> The explanation for the bug check 0xB8 code states,
> “A wait operation, attach process, or yield was attempted from a
> DPC routine. This is an illegal operation.”
>
> What does “yield from a DPC routine mean”?
>
>
>
>
>
>
>
>
>
>
> —
> You are currently subscribed to ntdev as: xxxxx@hollistech.com
> To unsubscribe send a blank email to xxxxx@lists.osr.com

It means that something caused or could have caused an illegal
stop/delay/pause in your “deferred procedure call” execution path. There
are many API routines that cannot be called at an elevated IRQL. In this
case, I believe that yield means “task switch”… In other words you may be
yielding execution to another thread by some mechanism. Like other readers
have already stated, you should debug the exception to find the offending
line of code and how you got there.

-zep

At 03:40 AM 1/13/2003, you wrote:

Hello devs

The explanation for the bug check 0xB8 code states,
“A wait operation, attach process, or yield was attempted from a DPC
routine. This is an illegal operation.”

What does “yield from a DPC routine mean”?


You are currently subscribed to ntdev as: zeppelin@io.com
To unsubscribe send a blank email to xxxxx@lists.osr.com

Execution “yielding” means that one thread voluntarely gives up execution
quantum to another thread.
If another thread has been already selected for execution, the execution
context is switched to it. If no,
an attempt is made to find a ready thread in the system queue, and , if this
succedes, execution context is
switched to it. The thread which yielded execution is put on the ready
thread queue. If no thread
can be selected for execution, the thread continues to run , and an
apropiate status is returned.

There is only one undocumented API which performs directly a execution
yileding.

This is not to be confused with processor yielding, which is , on X86
architecture,
a simple “pause” instruction. A completly different animal which aint
respnsable for such an
error.

Your bugcheck occures only when, during a DPC list retire operation, and
thus for the
whole period of time the DPC routines are executed, a Context Swap operation
is
attempted. As the DDK states, this can be from many causes, and they
describe several.
Keep in mind that any routine used in a DPC which might result in a
dispatcher
operation (understand this for now as a thread switch as a result of wait
on a dispatcher object,
an unwait operation if a wait condition was satisfied …, yielding … )
will give you this bugcheck.

----- Original Message -----
From: “Justin Frodsham”
To: “NT Developers Interest List”
Sent: Monday, January 13, 2003 4:45 PM
Subject: [ntdev] Re: DPC Question.

> It means that something caused or could have caused an illegal
> stop/delay/pause in your “deferred procedure call” execution path. There
> are many API routines that cannot be called at an elevated IRQL. In this
> case, I believe that yield means “task switch”… In other words you may
be
> yielding execution to another thread by some mechanism. Like other
readers
> have already stated, you should debug the exception to find the offending
> line of code and how you got there.
>
> -zep
>
>
> At 03:40 AM 1/13/2003, you wrote:
> >Hello devs
> >
> > The explanation for the bug check 0xB8 code states,
> >“A wait operation, attach process, or yield was attempted from a DPC
> >routine. This is an illegal operation.”
> >
> >What does “yield from a DPC routine mean”?
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >—
> >You are currently subscribed to ntdev as: zeppelin@io.com
> >To unsubscribe send a blank email to xxxxx@lists.osr.com
> >
>
>
>
>
>
> —
> You are currently subscribed to ntdev as: xxxxx@rdsor.ro
> To unsubscribe send a blank email to xxxxx@lists.osr.com
>