6.4 Service Drivers

A service driver does not manage any devices nor does it produce any instances of the EFI_DRIVER_BINDING_PROTOCOL. It is a simple driver that produces one or more protocols on one or more new service handles. These service handles do not have a Device Path Protocol because they do not represent physical devices. The driver entry point returns EFI_SUCCESS after the service handles are created and the protocols are installed, leaving the driver resident in system memory. The list of features that a service driver can optionally implement follows. Recommended and optional features are noted below.

  • Register one or more HII packages in the driver's entry point.

These HII packages provide strings, fonts, and forms that allow users (such as IT administrators) to change the driver's configuration. These HII packages are required only if a driver must provide the ability for a user to change configuration settings.

  • Install one or more instances of the EFI_HII_CONFIG_ACCESS_PROTOCOL in the driver's entry point.

This protocol provides the services to save and restore configuration settings for a device. This protocol is required only if a driver must provide the ability for a user to change configuration settings.

  • Install an instance of the EFI_DRIVER_SUPPORTED_EFI_VERSION_PROTOCOL in the driver's entry point.

The UEFI Specification requires this protocol for PCI controllers or other plug-in cards. Even though this requirement does not apply to Service Drivers, implementation of this feature is still recommended.