Controladores de autobús

Un controlador de autobús ofrece un controlador de autobús, un adaptador o un puente (consulte la figura Posibles capas de controlador ). Microsoft proporciona controladores de autobús para los autobuses más comunes, como PCI, PnpISA, SCSI y USB. Otros conductores de autobús pueden ser proporcionados por IHD o OEM. Los conductores de autobús son conductores obligatorios; hay un conductor de autobús para cada tipo de autobús en una máquina. Un controlador de autobús puede atender más de un bus si hay más de un bus del mismo tipo en la máquina.

Las principales responsabilidades de un conductor de autobús son:

  • Enumerar los dispositivos en su bus.

  • Responder a Plug and Play IRP y IRP de administración de energía.

  • Acceso multiplex al autobús (para algunos autobuses).

  • Administre genéricamente los dispositivos en su bus.

Los controladores de autobús son esencialmente controladores de función que también enumeran los elementos secundarios.

Durante la enumeración, un controlador de autobús identifica los dispositivos en su bus y crea objetos de dispositivo para ellos. (Para obtener información sobre los objetos de dispositivo, consulte Objetos de dispositivo y Pilas de dispositivos). El método que usa un controlador de autobús para identificar los dispositivos conectados depende del bus determinado.

Un controlador de autobús realiza ciertas operaciones en nombre de los dispositivos de su bus, incluido el acceso a los registros de dispositivos para cambiar físicamente el estado de alimentación de un dispositivo. Por ejemplo, cuando el dispositivo entra en suspensión, el controlador de autobús establece los registros de dispositivo para colocar el dispositivo en el estado de alimentación adecuado del dispositivo.

Sin embargo, tenga en cuenta que un controlador de autobús no controla las solicitudes de lectura y escritura para los dispositivos secundarios que están conectados a su bus. El controlador de funciones del dispositivo secundario controla las solicitudes de lectura y escritura en un dispositivo secundario. Solo si el dispositivo secundario se usa en modo sin formato , el controlador de bus primario controla las lecturas y escrituras del dispositivo.

Dado que un controlador de bus actúa como controlador de función para su controlador, adaptador o puente, también administra la directiva de alimentación del dispositivo para estos componentes.

Un controlador de bus se puede implementar como un par controlador/minidriver, la forma en que un par de controladores de controlador SCSI/miniportador controla un adaptador de bus de host SCSI (HBA). En estos pares de controladores, el minidriver está vinculado al segundo controlador, que es un archivo DLL.