6.1.1 Required Device Driver Features

Device drivers are required to implement the following features:
  • A driver entry point that installs one or more instances of the Driver Binding Protocol.
  • Manages one or more controller handles. Even if a driver writer is convinced that the driver manages only a single controller, it is strongly recommended that the driver be designed to manage multiple controllers. The overhead for this functionality is low, and it makes the driver more portable.
  • Does not produce any child handles. This feature is the main distinction between device drivers and bus/hybrid drivers.
  • Ignores the RemainingDevicePath parameter that is passed into the Supported() and Start() services of the Driver Binding Protocol.
  • Consumes one or more I/O-related protocols from the controller handle.
  • Produces one or more I/O-related protocols on the same controller handle.