4.4 Communicating with a UEFI driver

4.4.1 Protocol

Uefi Application can use the following protocol service to access the protocol interfaces produced by UEFI drivers.
Services to retrieve the protocol:
  • LocateProtocol()
  • HandleProtocol()
  • OpenProtocol()
Note: Uefi Application cannot use the InstallProcotol service or corresponding Libraries to install the protocol. This is because the UEFI application is unloaded after returning from the entry point. Therefore, it is meaningless to install this protocol.

4.4.2 Variable

Variables are defined as key/value pairs that consist of identifying information plus the attributes (the key) and arbitrary data (the value). Variables are intended for use as a means to store data that is passed between the EFI environment implemented in the platform and EFI OS loaders and other applications that run in the EFI environment.
UEFI application can read and write variable via UEFI Runtime Services
GetVariable() and SetVariable(). Because UEFI application must run after the Dxe/UEFI driver, Variable Arch protocol must be installed.