A.4.4 SCSI Miniport Driver’s HwScsiInitialize Routine

For each supported HBA found by the miniport driver, its HwScsiInitialize routine is called to set up the HBA’s registers and initial protocol state, if any.

If the HwScsiInitialize routine enables interrupts on the HBA, the miniport’s HwScsiInterrupt routine will be called to handle any interrupts the device generates during the initialization.

If initializing the HBA causes a bus reset, the HwScsiInitialize routine must call ScsiPortNotification with the NotificationType value ResetDetected.

When the HwScsiInitialize routine returns control, ScsiPortInitialize sends SCSIOP_INQUIRY requests to the miniport driver, collecting the SCSI-II INQUIRY data about the devices on each bus and storing it for subsequent examination by Windows NT SCSI class drivers, as described in Section A.1.3.1. Each request to scan a SCSI bus for the INQUIRY data is sent to the miniport’s HwScsiStartIo routine, described in Section A.4.5.