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.