Motoristas de Ônibus
Um motorista de ônibus atende a um controlador de barramento, adaptador ou ponte (consulte a figura Possíveis camadas de driver ). A Microsoft fornece motoristas de ônibus para os ônibus mais comuns, como PCI, PnpISA, SCSI e USB. Outros motoristas de ônibus podem ser fornecidos por IHVs ou OEMs. Motoristas de ônibus são motoristas obrigatórios; há um motorista de ônibus para cada tipo de ônibus em um computador. Um motorista de ônibus poderá atender mais de um ônibus se houver mais de um ônibus do mesmo tipo no computador.
As principais responsabilidades de um motorista de ônibus são:
Enumerar os dispositivos em seu barramento.
Responder a Plug and Play IRPs e IRPs de gerenciamento de energia.
Acesso multiplex ao ônibus (para alguns ônibus).
Administrar genericamente os dispositivos em seu barramento.
Os motoristas de ônibus são essencialmente drivers de função que também enumeram filhos.
Durante a enumeração, um motorista de ônibus identifica os dispositivos em seu barramento e cria objetos de dispositivo para eles. (Para obter informações sobre objetos de dispositivo, consulte Device Objects and Device Stacks.) O método que um motorista de ônibus usa para identificar dispositivos conectados depende do barramento específico.
Um motorista de ônibus executa determinadas operações em nome dos dispositivos em seu barramento, incluindo o acesso a registros de dispositivo para alterar fisicamente o estado de energia de um dispositivo. Por exemplo, quando o dispositivo entra em suspensão, o motorista do barramento define registros de dispositivo para colocar o dispositivo no estado adequado de energia do dispositivo.
Observe, no entanto, que um motorista de ônibus não lida com solicitações de leitura e gravação para os dispositivos filho que estão conectados ao ônibus. As solicitações de leitura e gravação em um dispositivo filho são manipuladas pelo driver de função do dispositivo filho. Somente se o dispositivo filho estiver sendo usado no modo bruto o driver de barramento pai manipulará leituras e gravações para o dispositivo.
Como um driver de barramento atua como o driver de função para seu controlador, adaptador ou ponte, ele também gerencia a política de energia do dispositivo para esses componentes.
Um driver de ônibus pode ser implementado como um par driver/minidriver, a maneira como um par de motoristas de porta/miniport SCSI conduz um HBA (adaptador de barramento de host) SCSI. Nesses pares de driver, o minidriver é vinculado ao segundo driver, que é uma DLL.