Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Kecuali untuk driver tingkat tertinggi, semua driver menangani permintaan IRP_MJ_READ dan IRP_MJ_WRITE secara asinkron. Rutinitas DispatchRead dan DispatchWrite bahkan dalam driver tingkat tertinggi tidak dapat menunggu driver tingkat bawah selesai memproses permintaan baca atau tulis asinkron; mereka harus meneruskan permintaan tersebut ke driver yang lebih rendah dan mengembalikan STATUS_PENDING.
Demikian pula, rutinitas DispatchReadWrite driver perangkat tingkat terendah harus meneruskan permintaan transfer ke rutinitas driver lain yang memproses permintaan I/O perangkat lalu mengembalikan STATUS_PENDING.
Driver tingkat tinggi terkadang harus mengatur IRP transfer parsial dan meneruskannya ke driver tingkat lebih rendah. Driver tingkat yang lebih tinggi dapat menyelesaikan IRP baca/tulis asli hanya ketika permintaan transfer parsialnya telah diselesaikan oleh driver yang lebih rendah.
Misalnya, rutinitas DispatchReadWrite driver kelas SCSI diperlukan untuk membagi permintaan transfer besar yang melebihi kemampuan transfer HBA yang mendasar ke dalam serangkaian permintaan transfer parsial. Driver kelas harus mengatur parameter dalam IRP transfer parsialnya sehingga driver port/miniport SCSI dapat memenuhi setiap permintaan transfer parsial dalam satu operasi DMA.
Driver perangkat lain yang menggunakan DMA atau PIO mungkin juga perlu membagi permintaan transfer besar untuk diri mereka sendiri.
Untuk informasi selengkapnya tentang menggunakan DMA dan PIO, lihat Teknik Input/Output.