MAPPING IRP Status and SRB Status

Hi All,
I am wokring on a SCSI miniport driver which exports a processor device at a particular BUS, TARGET, LUN. I also have another filter driver which

  1. Takes the handle to the port driver and gets it’s device object.

  2. fires IOCTL_SCSI_GET_CAPABILITIES and then IOCTL_SCSI_GET_INQUIRY_DATA to the port driver.

  3. Then it checks weather the IRP status is PENDING. If it is pending then it will just keep waiting [using KeWaitForSingleObject]

This IRP will get translated to equivalent SRB when it comes to my miniport driver.

My question is :

  1. If I return the SRB_STATUS_BUSY, will this IRP get completed ?

My understanding is that this IRP will not get completed. The port driver will re-issue the same SRB when miniport asks for the Next Request. Once we complete the SRB with some other STATUS value then my filter driver’s IRP will get completed.

  1. If I return the SRB_STATUS_NO_DEVICE, what will be the status of the filter driver’s IRP.

Thanks,

  • Ajitabh

Yahoo! Music Unlimited - Access over 1 million songs. Try it free.