A UEFI application starts execution at its entry point and then executes until
it returns from its entry point or it calls the Exit()
boot service function.
When done, the image is unloaded from memory. It does not stay resident. Some
examples of common UEFI applications include the following: - UEFI Shell
-
UEFI Shell Applications
-
Flash utilities
-
Diagnostic utilities
It is perfectly acceptable to invoke UEFI applications from inside other UEFI applications.
The UEFI Specification details a special type of UEFI application called an
OS boot loader. It is a UEFI application that calls ExitBootServices()
.
ExitBootServices()
is called when the OS loader has set up enough of the OS
infrastructure that it is ready to assume ownership of the system resources. At
ExitBootServices()
, the UEFI platform firmware frees all of its boot time
services and boot time drivers, leaving only the runtime services and runtime
drivers.