The UEFI system table is the most important data structure in UEFI. From this one data structure, a UEFI executable image can gain access to system configuration information and a rich collection of UEFI services. These UEFI services include the following:
-
UEFI boot services
-
UEFI runtime services
-
Services provided by protocols
Two of the data fields in the UEFI system table, UEFI boot services and UEFI runtime services, are accessed through the UEFI boot services table and the UEFI runtime services table, respectively. The number and type of services that are available from these two tables are fixed for each revision of the UEFI Specification. The UEFI boot services and UEFI runtime services are defined in the UEFI Specification. The specification also describes the common uses of these services by UEFI drivers.
Protocol services are groups of related functions and data fields that are named by a Globally Unique Identifier (GUID; see Appendix A of the UEFI Specification). Protocol services are typically used to provide software abstractions for devices such as consoles, mass storage devices and networks. They can also be used to extend the number of generic services that are available in the platform.
Protocols are the basic building blocks that allow the functionality of UEFI firmware to be extended over time. The UEFI Specification defines over 30 different protocols, and various implementations of UEFI firmware. UEFI drivers may produce additional protocols to extend the functionality of a platform.