SCSI Miniport Driver's HwScsiResetBus Routine

Every miniport driver must have an HwScsiResetBus routine, which is called with a pointer to the miniport driver's device extension for HBA state and the PathId of the bus to be reset. If an attempted bus-reset operation fails or times out, the miniport driver should call ScsiPortLogError and then program the HBA for a hard reset.

A bus-reset operation might require the miniport driver to clean up the state it maintains in the device extension and/or logical unit extensions for devices on the bus. HwScsiResetBus must complete any outstanding requests by calling ScsiPortCompleteRequest with the SrbStatus value SRB_STATUS_BUS_RESET or, for individual SRBs, ScsiPortNotification with this status value.

After completing the bus-reset request and any outstanding requests, the miniport driver must call ScsiPortNotification (if it has not already done so) with the NotificationTypeNextRequest, or NextLuRequest if the HBA supports tagged queuing or multiple requests per logical unit.

Note that the operating system - specific port driver manages SCSI bus-reset delays on behalf of miniport drivers.