Hi

Let's say I'm a high level driver and i call IoCallDriver to pass an
IRP down
the stack, and the whole operation is synchronous.
There are several devices in the stack (let's say A,B,C,D), each one of
them has a completion routine (except D). After device D completes the
irp, all completion routines for all the devices are being called, and
only afterwards all the IoCallDriver() routines of all the devices
return? (or if I'm wrong, what is the right order?)

Thanks

Re: Returning order of CompletionRoutines() and IoCallDriver() by Doron

Doron
Thu Mar 09 00:18:47 CST 2006

if A is at the top and D is at the bottom, the completion routines would
execute in reverse order (C, B, A). It is not safe to assume a PIRP is
synchronous w/out checking the NTSTATUS returned by IoCallDriver.

d

--
Please do not send e-mail directly to this alias. this alias is for
newsgroup purposes only.
This posting is provided "AS IS" with no warranties, and confers no rights.


<zedy1984@gmail.com> wrote in message
news:1141867530.649578.54590@p10g2000cwp.googlegroups.com...
> Hi
>
> Let's say I'm a high level driver and i call IoCallDriver to pass an
> IRP down
> the stack, and the whole operation is synchronous.
> There are several devices in the stack (let's say A,B,C,D), each one of
> them has a completion routine (except D). After device D completes the
> irp, all completion routines for all the devices are being called, and
> only afterwards all the IoCallDriver() routines of all the devices
> return? (or if I'm wrong, what is the right order?)
>
> Thanks
>