Rutinitas HwStorBuildIo yang Tidak Disinkronkan
Dalam model I/O driver SCSI Port-miniport, rutinitas StartIo driver miniport, HwScsiStartIo, harus mengirimkan blok permintaan SCSI (SRB) ke perangkat keras secepat mungkin. Ini penting, karena pekerjaan yang dilakukan dalam rutinitas StartIo driver miniport dicapai saat interupsi dinonaktifkan dan di IRQL = DISPATCH_LEVEL. Sayangnya, model ini tidak cocok untuk pengemudi beberapa adaptor bus host berkinerja tinggi (HBA), karena driver miniport untuk HBA ini harus melakukan sejumlah besar pemrosesan ketika I/O dimulai. Jika driver miniport melakukan pemrosesan ini dalam rutinitas StartIo-nya , itu menurunkan performa sistem.
Model Storport I/O mendukung rutinitas HwStorBuildIo dalam upaya untuk menghapus beberapa beban pemrosesan dari rutinitas StartIo driver miniport, HwStorStartIo. Dalam model I/O Storport, sistem memanggil HwStorBuildIo tepat sebelum memanggil rutinitas HwStorStartIo driver miniport dan melakukan pemrosesan sebanyak mungkin di sana. Strategi ini menghindari pertikaian untuk siklus CPU dan untuk akses ke struktur sistem penting, seperti ekstensi perangkat, karena HwStorBuildIo dijalankan pada IRQL yang lebih rendah dan tidak menyimpan kunci sinkronisasi.
Rutinitas HwStorBuildIo harus menerjemahkan SRB ke struktur data yang lebih nyaman, membangun daftar sebar/kumpulkan, dan melakukan pemrosesan per SRB lainnya. Karena tidak ada kunci yang ditahan selama eksekusi rutinitas HwStorBuildIo , driver miniport tidak boleh mengakses data selain itu di ekstensi SRB dan SRB. Jika akses ke struktur lain diperlukan untuk bagian dari pemrosesan, bagian tersebut masih harus dilakukan dalam rutinitas HwStartIo .
Untuk mencapai performa maksimum, rutinitas HwStorBuildIo harus digunakan bersama dengan mode full-duplex.