EFI_EXT_SCSI_PASS_THRU_PROTOCOLallows information about a SCSI channel to be collected and allows SCSI Request Packets to be sent to any SCSI devices on a SCSI channel, even if those devices are not boot devices. This protocol is attached to the device handle of each SCSI channel in a system that the protocol supports and can be used for diagnostics. It may also be used to build a block I/O driver for SCSI hard drives and SCSI CD-ROM or DVD drives to allow those devices to become boot devices.
ExtScsiPassThru.c. Appendix A contains a template for the Extended SCSI Pass Thru Protocol.
EFI_EXT_SCSI_PASS_THRU_PROTOCOL, see the section in the UEFI Specification on SCSI Driver Models and Bus Support.
Start()function of the SCSI host controller driver prior to installing the Extended SCSI Pass Thru Protocol instance into the Handle Database.
EFI_EXT_SCSI_PASS_THRU_PROTOCOL.Mode is a structure that describes the intrinsic attributes of Extended SCSI Pass Thru Protocol instance. Note that a non-RAID SCSI channel sets both the physical and logical attributes. A physical channel on the RAID adapter only sets the physical attribute, and the logical channel on the RAID adapter only sets the logical attribute. If the channel supports non-blocking I/O, the nonblocking attribute is also set. The example below shows how to set those attributes on a non-RAID SCSI adapter that supports non-blocking I/O.
EFI_EXT_SCSI_PASS_THRU_PROTOCOL.GetTargetLun()functions provide the ability to enumerate the SCSI targets attached to a SCSI channel. The SCSI host controller driver may implement it by internally maintaining active device flags. The SCSI host controller driver may use this flag and channel-specific knowledge to determine what device is next, as well as what device is first.
EFI_EXT_SCSI_PASS_THRU_PROTOCOL.BuildDevicePath()function facilitates the construction of a SCSI device path. The Extended SCSI Pass Thru Protocol may be used to abstract access to many different types of device, and as a result the specific device path used to describe a SCSI target may vary. The detailed SCSI target category can be identified only by the Extended SCSI Pass Thru implementation, which is why this function is part of the Extended SCSI Pass Thru Protocol.
EFI_EXT_SCSI_PASS_THRU_PROTOCOL.PassThru()function is the most important function when implementing Extended SCSI Pass Thru Protocol and it performs the following: