Driver del bus
Un driver del bus fornisce un controller del bus, un adattatore o un ponte (vedere la figura Possibili livelli driver ). Microsoft fornisce driver di bus per gli autobus più comuni, ad esempio PCI, PnpISA, SCSI e USB. Altri driver di autobus possono essere forniti da IHVs o OEMs. I driver del bus sono obbligatori; c'è un driver del bus per ogni tipo di autobus in una macchina. Un conducente del bus può servizio più di un bus se è presente più di un bus dello stesso tipo nel computer.
Le principali responsabilità di un conducente del bus sono:
Enumera i dispositivi nel bus.
Rispondere agli IRP Plug and Play e ai servizi di gestione energia.
Accesso multiplex al bus (per alcuni autobus).
Amministrare genericamente i dispositivi sul bus.
I driver del bus sono essenzialmente driver di funzione che enumerano anche elementi figlio.
Durante l'enumerazione, un driver del bus identifica i dispositivi nel bus e crea oggetti dispositivo per loro. Per informazioni sugli oggetti dispositivo, vedere Oggetti dispositivo e Stack di dispositivi. Il metodo usato da un driver del bus per identificare i dispositivi connessi dipende dal bus specifico.
Un driver del bus esegue determinate operazioni per conto dei dispositivi sul bus, incluso l'accesso ai registri dei dispositivi per modificare fisicamente lo stato di alimentazione di un dispositivo. Ad esempio, quando il dispositivo passa a dormire, il driver del bus imposta i registri del dispositivo per inserire il dispositivo nello stato di alimentazione del dispositivo appropriato.
Si noti tuttavia che un driver del bus non gestisce le richieste di lettura e scrittura per i dispositivi figlio connessi al bus. Le richieste di lettura e scrittura in un dispositivo figlio vengono gestite dal driver di funzione del dispositivo figlio. Solo se il dispositivo figlio viene usato in modalità non elaborata , il driver del bus padre gestisce le letture e le scritture per il dispositivo.
Poiché un driver del bus funge da driver di funzione per il controller, l'adattatore o il bridge, gestisce anche i criteri di alimentazione del dispositivo per questi componenti.
Un driver del bus può essere implementato come coppia driver/minidriver, il modo in cui una coppia di driver SCSI/miniport guida una scheda del bus host SCSI (HBA). In tali coppie di driver, il minidriver è collegato al secondo driver, ovvero una DLL.