3.6.3 Protocols provided in addition to the UEFI Specification

Not all protocols are defined in the UEFI Specification. For example, the EDK II, like other developer's kits, includes additional protocols that are not part of the UEFI Specification. These additional protocols are necessary to provide all of the functionality in a particular implementation but they are not defined in the current UEFI Specification because they do not present an external interface-a requirement to support booting of an OS or writing of a UEFI driver.
The creation of new protocols is how UEFI-based systems can be extended over time as new devices, buses, and technologies are introduced.
The following are a few examples of protocols in the EDK II that are not part of the UEFI Specification:
  • Print 2 Protocol
  • MdeModulePkg/Include/Protocol/Print2.h
  • Deferred Procedure Call Protocol
  • MdeModulePkg/Include/Protocol/Dpc.h
  • VGA Mini Port Protocol
  • IntelFrameworkModulePkg/Include/Protocol/VgaMiniPort.h
UEFI Drivers and UEFI OS Loaders should not depend on these types of protocols because they are not guaranteed to be present in every UEFI-conformant firmware implementation. UEFI Drivers and UEFI OS Loaders should depend only on protocols defined in the current UEFI Specification and protocols required by platform design guides (i.e. DIG64). The extensible nature of UEFI allows each platform to design and add its own special protocols. Use these protocols to expand the capabilities of UEFI and provide access to proprietary devices and interfaces congruent with the rest of the UEFI architecture.