6.2.1 Required Bus Driver Features

Bus drivers are required to implement the following features:
  • Install one or more instances of the EFI_DRIVER_BINDING_PROTOCOL in the driver's entry point.
  • Manage one or more controller handles. Even if a driver writer is convinced that the driver manages only a single bus controller, the driver should be designed to manage multiple bus controllers. The overhead for this functionality is low, and it makes the driver more portable.
  • Produce any child handles. This feature is the key distinction between device drivers and bus drivers. (Device drivers do not produce child handles.)
  • Consumes one or more I/O-related protocols from a controller handle.
  • Produces one or more I/O-related protocols on each child handle.