Human Interface Infrastructure

From PhoenixWiki

(Redirected from HII)
Jump to: navigation, search

This section defines the core code and services that are required for an implementation of the Human Interface Infrastructure (HII) portion of the UEFI specification. The Intel Framework also provided similar capabilities with the same name. It describes the basic mechanisms to manage user input and provides code definitions for the HII-related protocols, functions, and type definitions that are architecturally required.

UEFI-compliant systems manage user input, including:

  • String and font management.
  • User input abstractions (for keyboards and mice)
  • Internal representations of the forms (in the HTML sense) that are used for running a preboot setup.
  • External representations (and derivations) of the forms that are used to pass configuration information to runtime applications, and the mechanisms to allow the results of those applications to be driven back into the firmware.


  • Simplified localization, the process by which the interface is adapted to a particular language.
  • A "forms" representation mechanism that is rich enough to support the complex configuration issues encountered by platform developers, including stock keeping unit (SKU) management and interrelationships between questions in the forms.
  • Definition of a mechanism to allow most or all the configuration of the system to be performed during boot, at runtime, and remotely. Where possible, the forms describing the configuration should be expressed using existing standards such as XML (see IFR Markup Language).
  • Ability for the different drivers (including those from add-in cards) and applications to contribute forms, strings, and fonts in a uniform manner while still allowing innovation in the look and feel for Setup.
  • Support user-interface on a wide range of display devices:
    • Local text display
    • Local graphics display
    • Remote text display
    • Remote graphics display
    • Web browser
    • OS-present GUI

Design Discussion

This section describes the basic concepts behind the Human Interface Infrastructure. This is a set of protocols that allow a UEFI driver to provide the ability to register user interface and configuration content with the platform firmware. Unlike legacy option ROMs, the configuration of drivers and controllers is delayed until a platform management utility chooses to use the services of these protocols. UEFI drivers are not allowed to perform setup-like operations outside the context of these protocols. This means that a driver is not allowed to interact with the user outside the context of this protocol.

The drivers and applications install elements (such as fonts, strings, images and forms) into the HII Database, which acts as a central repository for the entire platform. The Forms Browser uses these elements to render the user interface on the display devices and receive information from the user via HID devices. When complete, the changes made by the user in the Forms Browser are saved, either to the UEFI global variable storage—(GetVariable() and SetVariable()— or to variable storage provided by the individual drivers.

Copyright (C) 2009 Phoenix Technologies Ltd. All Rights Reserved. Portions copyright (C) 2008 UEFI Forum, Inc. Used with permission

Personal tools