Hi,
I have a question regarding what happens to an IRP when that was previously
marked as pending fails, and is completed with a status other than
STATUS_SUCCESS.
The driver is not layered in this respect, and the IRP is sent via an
asynchronous IOCTL from a WIN32 app. The driver validates the IRP and marks
as pending. Latter the driver determines that the IRP cannot be completed
successfully and completes with code such as this
IoSetCancelRoutine(pAsyncIRP,NULL);
pAsyncIRP->IoStatus.Status = STATUS_SUCCESS;
pAsyncIRP->IoStatus.Information = 0;
IoCompleteRequest(pAsyncIRP, IO_NO_INCREMENT);
This works fine, my question is what happens when the same IRP is completed
with a status such as
pAsyncIRP->IoStatus.Status = STATUS_HOST_UNREACHABLE;
pAsyncIRP->IoStatus.Information = 0;
This IRP never seems to complete. I would appreciate it if someone could
describe what the i/o manager does with this IRP.
Thanks in advance,
Rod.
You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com