6.3 Hybrid drivers

A hybrid driver has features of both a device driver and a bus driver. The main distinction between a device driver and a bus driver is that a bus driver creates child handles and a device driver does not. In addition, a bus driver is allowed only to install produced protocols on the newly created child handles. A hybrid driver does the following:

  • Creates new child handles.

  • Installs produced protocols on the child handles.

  • Installs produced protocols onto the bus controller handle.

A driver for a multi-channel RAID SCSI host controller is a hybrid driver. It produces the Extended SCSI Pass Thru Protocol (with the logical bit on) on the controller handle and creates child handles with Extended SCSI Pass Thru Protocol for each physical channel (with the logical bit off).