Intel Extensible Firmware Interface Network Router User Manual


  Open as PDF
of 1084
 
Extensible Firmware Interface Specification
5-32 12/01/02 Version 1.10
The Protocol Handler boot services have been modified to take advantage of the information that is
now being tracked with the OpenProtocol()
and CloseProtocol() boot services. Since
the usage of protocol interfaces is being tracked with these new boot services, it is now possible to
safely uninstall and reinstall protocol interfaces that are being consumed by EFI drivers.
As depicted in Figure 5-1, the firmware is responsible for maintaining a “data base” that shows
which protocols are attached to each device handle. (The figure depicts the “data base” as a linked
list, but the choice of data structure is implementation-dependent.) The “data base” is built
dynamically by calling the InstallProtocolInterface()
function. Protocols can only be
installed by EFI drivers or the firmware itself. In the figure, a device handle (EFI_HANDLE) refers
to a list of one or more registered protocol interfaces for that handle. The first handle in the system
has four attached protocols, and the second handle has two attached protocols. Each attached
protocol is represented as a GUID/Interface pointer pair. The GUID is the name of the protocol,
and Interface points to a protocol instance. This data structure will typically contain a list of
interface functions, and some amount of instance data.
Access to devices is initiated by calling the HandleProtocol()
function, which determines
whether a handle supports a given protocol. If it does, a pointer to the matching Protocol Interface
structure is returned.
Whenaprotocolisaddedtothesystem,itmayeitherbeaddedtoanexistingdevicehandleorit
may be added to create a new device handle. Figure 5-1 shows that protocol handlers are listed for
each device handle and that each protocol handler is logically an EFI driver.
OM13155
Device Handle
GUID
Interface
Protocol
Interface
Instance
Data
GUID
Interface
Protocol
Interface
Instance
Data
GUID
Interface
Protocol
Interface
Instance
Data
GUID
Interface
Protocol
Interface
Instance
Data
Device Handle
GUID
Interface
Protocol
Interface
Instance
Data
GUID
Interface
Protocol
Interface
Instance
Data
First Handle
Figure 5-1. Device Handle to Protocol Handler Mapping