6.1.2 Optional Device Driver Features

The following lists features that a device driver can optionally implement.
  • Install one or more instances of the EFI_COMPONENT_NAME2_PROTOCOL in the driver's entry point.
    Implementing this feature is strongly recommended. It allows a driver to provide human-readable names for the name of the driver and the controllers that the driver manages.
  • Register one or more HII packages in the driver's entry point.
    HII packages provide strings, fonts, and forms that allow users (such as IT administrators) to change the driver's configuration. They are only required if a driver must provide the ability for a user to change configuration settings for a device.
  • Install one or more instances of the EFI_DRIVER_DIAGNOSTICS2_PROTOCOL in the driver's entry point.
    If a driver needs to provide diagnostics for the controllers that the driver manages, this protocol is required.
  • Provide an EFI_LOADED_IMAGE_PROTOCOL.Unload() service so the driver can be dynamically unloaded.
    It is recommended that this feature be implemented during driver development, driver debug, and system integration. It is strongly recommended that this service remain in drivers for add-in adapters to help debug interaction issues during system integration.
  • Install one or more instances of the EFI_DRIVER_FAMILY_OVERRIDE_PROTOCOL in the driver's entry point.
    This protocol is required only if a driver needs a higher priority rule for connecting drivers to controllers through the UEFI Boot Service ConnectController().
  • Install one or more instances of the EFI_DRIVER_HEALTH_PROTOCOL in the driver's entry point.
    This protocol is only required for drivers that manage devices that can be in a bad state that is recoverable through either a repair operation or a configuration operation.
  • Install an instance of the EFI_DRIVER_SUPPORTED_EFI_VERSION_PROTOCOL in the driver's entry point.
    This protocol is required for PCI controller or other plug-in cards. Implementation of this feature is recommended.
  • Create an Exit Boot Services event in the driver's entry point.
    This feature is required only if the driver is required to place the devices it manages in a specific state just before control is handed to an operating system.
  • Creates a Set Virtual Address Map event in the driver's entry point.
    This feature is required only for a device driver that is a UEFI runtime driver.