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.