12.3 HII Protocols

Some protocols must be clearly understood in order to successfully implement a UEFI driver with HII functionality. The basic protocols consist of four consumable protocols and the HII Config Access Protocol produced by a UEFI Driver. They need not be used in any particular order. The MdeModulePkg provides the UefiHiiServicesLib that automatically looks up consumed HII protocols and makes them available to a UEFI Driver requiring the services they provide. A UEFI platform is not required to produce all of these protocols. The following is the list of protocols and the global variable provided by the UefiHiiServicesLib. If a global variable is set to NULL, it means that the platform does not produce that specific protocol. UEFI Drivers must handle all platform configurations, so it is important for a UEFI Driver to continue to function both when an HII related protocol is present and when an HII related protocol is absent.

  1. EFI_HII_DATABASE_PROTOCOL gHiiDatabase

  2. EFI_HII_STRING_PROTOCOL gHiiString

  3. EFI_HII_FONT_PROTOCOL gHiiFont

  4. EFI_HII_IMAGE_PROTOCOL gHiiImage