20.1 SCSI Host Controller Driver

A SCSI host controller driver manages a SCSI host controller that contains one or more SCSI channels. It creates handles for each SCSI channel and installs the Extended SCSI Pass Thru Protocol and Device Path Protocol to each of the handle that the driver creates. See the SCSI Driver Models and Bus Support chapter of the UEFI Specification for details about EFI_EXT_SCSI_PASS_THRU_PROTOCOL.
A SCSI host controller driver follows the UEFI driver model. Depending on the adapter that it manages, a SCSI host controller driver can be categorized as either a device driver or a hybrid driver. It creates child handles for each SCSI channel (if there is more than 1) and it may also install protocols on its own handle. Typically, SCSI host controller drivers are chip-specific because of the requirement to initialize and manage the currently bound SCSI host controller.
Because there may be multiple SCSI host adapters in a platform that may be managed by a single SCSI host controller driver, it is recommended that the SCSI host controller driver be designed to be re-entrant and allocate a different private context data structure for each SCSI host controller.