Pengantar Driver Kelas Penyimpanan
Driver kelas penyimpanan menggunakan antarmuka kelas/port SCSI yang mapan untuk mengontrol perangkat penyimpanan massal jenisnya pada bus apa pun yang sistemnya memasok driver port penyimpanan (saat ini SCSI, IDE, USB, dan IEEE 1394). Bus tertentu yang terhubung dengan perangkat penyimpanan transparan ke driver kelas penyimpanan.
Setiap driver kelas penyimpanan menangani permintaan I/O dari aplikasi pengguna atau driver tingkat yang lebih tinggi dengan membangun blok permintaan SCSI (SRB) yang berisi blok deskriptor perintah (CDB) dan mengirimkannya, melalui driver filter intervensi apa pun, ke driver port penyimpanan yang mendasar.
Driver kelas penyimpanan tidak memberikan informasi alamat di SRB. Sebaliknya, driver port (atau driver yang masih lebih rendah) bertanggung jawab atas setiap alamat yang diperlukan. Driver port penyimpanan menerjemahkan SRB ke dalam format yang diperlukan oleh adaptor bus host (HBA) yang mendasar, yang mungkin merupakan adaptor bus host SCSI atau 1394, pengontrol IDE, atau perangkat keras lainnya, dan mengeluarkan perintah ke perangkat. Dalam Windows Driver Kit (WDK), istilah "HBA" adalah singkatan dari adaptor atau pengontrol yang mendasar tersebut.
Untuk manajer I/O dan driver tingkat yang lebih tinggi yang berlapis di atas driver kelas penyimpanan, sebagian besar driver kelas penyimpanan adalah driver menengah mode kernel standar. Dengan demikian setiap driver kelas harus memiliki rutinitas DriverEntry, rutinitas AddDevice, rutinitas Unload, satu atau beberapa rutinitas IoCompletion, ditambah rutinitas DispatchPnP dan DispatchPower untuk menangani Plug and Play dan runtime integrasi daya.
Driver kelas penyimpanan juga harus memiliki rutinitas DispatchSystemControl untuk menangani IRP kontrol sistem, dan dapat memiliki rutinitas driver tingkat lebih tinggi standar lainnya, seperti rutinitas StartIo , seperti yang ditentukan oleh perancang driver. Untuk informasi selengkapnya tentang kontrol sistem dan rutinitas driver mode kernel standar, lihat Rutinitas Driver Standar.
Untuk manajer PnP, driver kelas penyimpanan adalah Driver Fungsi, yaitu, yang mendorong perangkat individual. Driver kelas penyimpanan juga dapat bertindak sebagai Driver Bus, menghitung perangkat turunan perangkatnya. Misalnya, driver kelas untuk perangkat media yang dipartisi seperti disk mengembalikan daftar PDO yang mewakili partisinya. Setiap PDO tersebut dapat ditangani sebagai perangkat target dan dilayanakan oleh driver kelasnya sendiri.
Catatan
Driver untuk perangkat SCSI seperti printer atau pemindai harus diimplementasikan seperti yang dijelaskan di bagian ini. Driver untuk perangkat SCSI tersebut menggunakan antarmuka kelas/port SCSI yang sama untuk mengontrol perangkatnya dan memiliki tanggung jawab yang sama untuk menangani IRP, membangun SRB, dan mengirimkannya ke driver port yang mendasar seperti halnya driver untuk perangkat penyimpanan.