3 efi bus specific driver override protocol, Efi_bus_specific_driver_override_protocol, Bus_specific_driver_override – Intel Extensible Firmware Interface User Manual

Page 273: Bus specific driver, Override protocol

Advertising
background image

Protocols

— EFI Driver Model

Version 1.10

12/01/02

9-31

9.3 EFI Bus Specific Driver Override Protocol

This section provides a detailed description of the

EFI_BUS_SPECIFIC_DRIVER_OVERRIDE_

PROTOCOL

. Bus drivers that have a bus specific algorithm for matching drivers to controllers are

required to produce this protocol for each controller. For example, a PCI Bus Driver will produce
an instance of this protocol for every PCI controller that has a PCI option ROM that contains one or
more EFI drivers. The protocol instance is attached to the handle of the PCI controller.

EFI_BUS_SPECIFIC_DRIVER_OVERRIDE_PROTOCOL

Summary

This protocol matches one or more drivers to a controller. This protocol is produced by a bus

driver, and it is installed on the child handles of buses that require a bus specific algorithm for
matching drivers to controllers. This protocol is used by the

ConnectController()

boot

service to select the best driver for a controller. All of the drivers returned by this protocol have a
higher precedence than drivers found in the general EFI Driver Binding search algorithm, but a
lower precedence than those drivers returned by the EFI Platform Driver Override Protocol. If
more than one driver image handle is returned by this protocol, then the drivers image handles are
returned in order from highest precedence to lowest precedence.

GUID

#define EFI_BUS_SPECIFIC_DRIVER_OVERRIDE_PROTOCOL_GUID \

{ 0x3bc1b285,0x8a15,0x4a82,0xaa,0xbf,0x4d,0x7d,0x13,0xfb,0x32,0x65 }

Protocol Interface Structure

typedef struct _EFI_BUS_SPECIFIC_DRIVER_OVERRIDE_PROTOCOL {
EFI_BUS_SPECIFIC_DRIVER_OVERRIDE_GET_DRIVER

GetDriver;

} EFI_BUS_SPECIFIC_DRIVER_OVERRIDE_PROTOCOL;

Parameters

GetDriver

Uses a bus specific algorithm to retrieve a driver image handle
for a controller. See the

GetDriver()

function description.

Description

The

EFI_BUS_SPECIFIC_DRIVER_OVERRIDE_PROTOCOL

provides a mechanism for bus

drivers to override the default driver selection performed by the

ConnectController()

boot

service. This protocol is attached to the handle of a child device after the child handle is created by
the bus driver. The service in this protocol can return a bus specific override driver to

ConnectController()

. ConnectController()

must call this service until all of the bus

specific override drivers have been retrieved.

ConnectController()

uses this information

along with the EFI Platform Driver Override Protocol and all of the EFI Driver Binding protocol
instances to select the best drivers for a controller. Since a controller can be managed by more than
one driver, this protocol can return more than one bus specific override driver.

Advertising