In the dispatch function, I queued an Irp and marked it
IoMarkIrpPending(). Then in the dispatch function itself, because of
someother action, I have decided not to pend the Irp and to complete
the Irp in dispatch function itself.
Now what should be the Irp.status.IoStatus and Irp.Status.Information.
Can I give relevant error like STATUS_INSUFFICIENT_RESOURCES or should
it be STATUS_PENDING. The return value of dispatch function and Irp
completion status should be same ? The dispactch function will return
STATUS_PENDING because I called IoMarkIrpPending.
Can I legitimately change my mind to complete the pended Irp in
dispatch function?