3.4
Image Services
Three types of images can be loaded: EFI Applications, EFI Boot Services Drivers, and EFI
Runtime Services Drivers. An EFI OS Loader is a type of EFI Application. The most significant
difference between these image types is the type of memory into which they are loaded by the
firmware's loader. Table 3-8 summarizes the differences between images.
Table 3-8.
Image Type Differences Summary
EFI Application
Description
A transient application
that is loaded during boot
services time. EFI
applications are either
unloaded when they
complete, or they take
responsibility for the
continued operation of the
system via
ExitBootServices().
The applications are
loaded in sequential order
by the boot manager, but
one application may
dynamically load another.
Loaded into
EfiLoaderCode,
memory type
EfiLoaderData
Default pool
EfiLoaderData
allocations
from memory
type
Exit
When an application
behaviour
exits, firmware frees the
memory used to hold its
image.
Notes
This type of image would
not install any protocol
interfaces or handles.
Version 1.02
EFI Boot Services Driver
A program that is loaded into boot
services memory and stays resident
until boot services terminates.
EfiBootServicesCode,
EfiBootServicesData
EfiBootServicesData
When a boot services driver exits with
an error code, firmware frees the
memory used to hold its image.
When a boot services driver's entry
point completes with
EFI_SUCCESS,
the image is retained in memory.
This type of image would typically use
InstallProtocolInterface().
12/12/00
Services
EFI Runtime Services Driver
A program that is loaded into
runtime services memory and
stays resident during runtime. The
memory required for a Runtime
Services Driver must be performed
in a single memory allocation, and
marked as
EfiRuntimeServicesData. (Note
that the memory only stays
resident when booting an EFI-
compatible operating system.
Legacy operating systems will
reuse the memory.)
EfiRuntimeServicesCode,
EfiRuntimeServicesData
EfiRuntimeServicesData
When a runtime services driver
exits with an error code, firmware
frees the memory used to hold its
image.
When a runtime services driver's
entry point completes with
,
the image is
EFI_SUCCESS
retained in memory.
A runtime driver can only allocate
runtime memory during boot
services time. Due to the
complexity of performing a virtual
relocation for a runtime image, this
driver type is discouraged unless it
is absolutely required.
67
Need help?
Do you have a question about the Extensible Firmware Interface and is the answer not in the manual?