To Mark Roddy:
Your dispatch routine is borken
Suppose your completion handler returned STATUS_MORE_PROCESSING_REQUIRED?
Not only would DV be complaining, but the system would be going about its
bugcheck nonsense.
No. Return value from my completion handler is STATUS_SUCCESS.
To Mats PETERSSON:
Have you tried returning “STATUS_UNSUCCESSFUL” or something similar from
your function where you refuse the IRP? I think that’s how you’re supposed
to do it, but I’m not an expert…
I’ve just tried it. The result is the same.
BTW, I have an idea. For STATUS_SUCCESS from the lower driver (sync case) I
can change return value in my device dispatch routine (give my context to
completion in store new status in context). For STATUS_PENDING I think
Driver verifier will not tell me about status != Irp->IoStatus.Status.
Vlad