EFI_BUS_SPECIFIC_DRIVER_OVERRIDE_PROTOCOL
instance to the design ofGetDriver()
.GetDriver()
.GetDriver()
service to return set-of-driver image handlesStart()
function.Stop()
function.GetDriver()
that returns an ordered list of driver image handles for the UEFI drivers that were loaded from a container of UEFI driver(s). There are many ways to implement storage for the ordered list of driver image handled including an array and linked lists.PCI Use Case
: The order in which the image handles are returned by the PCI Bus Driver matches the order in which the UEFI drivers were found in the PCI option ROM, from the lowest address to the highest address. The PCI bus driver is responsible for enumerating the PCI devices on a PCI bus. When a PCI device is discovered, the PCI device is also checked to see if it has an attached PCI option ROM. The PCI option ROM contents must follow the PCI Specification for storing one or more images. The PCI bus driver walks the list of images in a PCI option ROM looking for UEFI drivers. If a UEFI driver is found, it is optionally decompressed using the Decompress Protocol and then loaded The driver entry point is called using the UEFI boot services LoadImage()
and StartImage()
. If LoadImage()
does not return an error, the UEFI driver must be added to the end of the list of drivers the Bus Specific Driver Override Protocol for that PCI device returns after the GetDriver()
service is called.GetDriver()
.