Condividi tramite


Introduzione ai driver di classe di archiviazione

Un driver della classe di archiviazione usa l'interfaccia della classe/porta SCSI ben stabilita per controllare un dispositivo di archiviazione di massa del relativo tipo su qualsiasi bus per cui il sistema fornisce un driver di porta di archiviazione (attualmente SCSI, IDE, USB e IEEE 1394). Il bus specifico a cui un dispositivo di archiviazione è connesso è trasparente al driver della classe di archiviazione.

Qualsiasi driver di classe di archiviazione gestisce le richieste di I/O da applicazioni utente o driver di livello superiore creando blocchi di richiesta SCSI (SRB) contenenti blocchi di descrittore di comando (CDB) e inviandoli, tramite qualsiasi driver di filtro che interviene, al driver della porta di archiviazione sottostante.

Un driver di classe di archiviazione non fornisce informazioni di indirizzamento nella SRB. Invece, il driver di porta (o un driver ancora inferiore) è responsabile di qualsiasi indirizzamento richiesto. Il driver della porta di archiviazione converte gli SRB nel formato richiesto dall'adattatore del bus host sottostante (HBA), che potrebbe essere una scheda del bus host SCSI o 1394, un controller IDE o un altro hardware e problemi comandi al dispositivo. In Windows Driver Kit (WDK), il termine "HBA" si trova per qualsiasi scheda o controller sottostante.

Al gestore I/O e a qualsiasi driver di livello superiore sopra un driver di classe di archiviazione, la maggior parte dei driver di classe di archiviazione sono driver intermedi in modalità kernel standard. Pertanto ogni driver di classe deve avere una routine DriverEntry, una routine AddDevice, una routine di scaricamento, una o più routine IoCompletion, oltre a DispatchPnP e DispatchPower routine per gestire Plug and Play e power IRP.

Un driver di classe di archiviazione deve avere anche una routine DispatchSystemControl per gestire i irP di controllo del sistema e può avere qualsiasi altra routine di driver di livello superiore standard, ad esempio una routine StartIo , come determinato dalla finestra di progettazione del driver. Per altre informazioni sulle routine del driver in modalità kernel e sul controllo del sistema standard, vedere Routine driver standard.

Per la gestione PnP, un driver di classe di archiviazione è un driver di funzione, ovvero uno che unità un singolo dispositivo. Un driver della classe di archiviazione può anche fungere da driver bus, enumerando i dispositivi figlio dei dispositivi. Ad esempio, il driver di classe per un dispositivo multimediale partizionato, ad esempio un disco, restituisce un elenco di PDO che rappresentano le relative partizioni. Ogni PDO può essere indirizzato come dispositivo di destinazione e viene eseguito il servizio dal proprio driver di classe.

Nota

Un driver per un dispositivo SCSI, ad esempio una stampante o uno scanner, deve essere implementato come descritto in questa sezione. Un driver per un dispositivo SCSI di questo tipo usa la stessa interfaccia di classe/porta SCSI per controllare il dispositivo e ha le stesse responsabilità per gestire i provider di servizi di rete, compilare srb e inviarli al driver di porta sottostante, come avviene per un driver per un dispositivo di archiviazione.