Return from HwScsiStartIo

Every HwScsiStartIo routine must return TRUE, indicating that the input request was processed.

If the HwScsiStartIo routine cannot carry out a requested operation when it is called, HwScsiStartIo should do the following:

  1. Set the input SRB's SrbStatus to SRB_STATUS_BUSY.

  2. Call ScsiPortNotification with the NotificationTypeRequestComplete and with the input SRB.

  3. Call ScsiPortNotification with the NotificationTypeNextRequest if the driver can accept a request to a different target logical unit than the one in the just completed SRB.

  4. Return TRUE.

The port driver resubmits any request returned with the SrbStatus value SRB_STATUS_BUSY to the miniport driver's HwScsiStartIo routine later.

Eventually, every miniport driver must call ScsiPortNotification twice for each SRB input to its HwScsiStartIo routine: first, to complete the request (NotificationTypeRequestComplete) and, second, to tell the port driver to call the HwScsiStartIo routine again with the next SRB (NotificationTypeNextRequest or NextLuRequest).

The HwScsiStartIo routine of a miniport driver that manages its HBA exclusively by polling calls ScsiPortNotification with the NotificationTypeRequestTimerCall and a pointer to its HwScsiTimer routine. For more information about the HwScsiTimer routine, see SCSI Miniport Driver's HwScsiTimer Routine.