STATUS_PENDING and another thread completing the request

I just want to verify something. If a read request is being process in our
read routine, and we decide to queue it, then if we mark the Ipr pending
using IoMarkIrpPending(), then queue it to another thread, and after the
queing but before the return (with STATUS_PENDING) to the caller initiating
the read request the other thread actually completes the read request with
an IoCompleteRequest that NT handles this absolutely correctly. I mean,
what could I do to actually guarantee that it would work other than slow
down the worker thread (which may be running on a different processor)?

Thanks,
Mike Lotz
xxxxx@qlc.com

> the read request the other thread actually completes the read request with

an IoCompleteRequest that NT handles this absolutely correctly. I mean,

AFAIK this will be handled correctly without any special measurements from
your part.
IoCompleteRequest can be called by a worker thread or DpcForIsr before
your STATUS_PENDING return.

Max