IRP_MJ_WRITE
Setiap driver perangkat yang mentransfer data dari sistem ke perangkatnya harus menangani permintaan tulis dalam rutinitas DispatchWrite atau DispatchReadWrite , karena harus ada driver tingkat lebih tinggi yang berlapis di atas driver perangkat tersebut.
Ketika Dikirim
Setiap kali setelah keberhasilan penyelesaian permintaan buat.
Mungkin, aplikasi mode pengguna atau komponen Win32 dengan handel untuk objek file yang mewakili objek perangkat target telah meminta transfer data ke perangkat. Mungkin, driver tingkat yang lebih tinggi telah membuat dan menyiapkan IRP tulis.
Parameter Input
Lokasi tumpukan I/O driver di IRP menunjukkan berapa banyak byte yang akan ditransfer di Parameters.Write.Length.
Beberapa driver menggunakan nilai di Parameters.Write.Key untuk mengurutkan permintaan tulis masuk ke dalam urutan yang ditentukan driver dalam antrean perangkat atau dalam antrean internal IRP yang dikelola driver.
Jenis driver tertentu juga menggunakan nilai di Parameters.Write.ByteOffset, yang menunjukkan offset awal untuk operasi transfer. Misalnya, lihat topik IRP_MJ_WRITE dalam dokumentasi Installable File System (IFS).
Bergantung pada apakah driver perangkat yang mendasar menyiapkan Bendera objek perangkat target dengan DO_BUFFERED_IO atau dengan DO_DIRECT_IO, data ditransfer dari salah satu hal berikut:
Buffer di Irp-AssociatedIrp.SystemBuffer>, jika driver menggunakan I/O buffer
Buffer yang dijelaskan oleh MDL di Irp-MdlAddress>, jika driver perangkat yang mendasar menggunakan I/O langsung (DMA atau PIO)
Parameter Output
Tidak ada
Operasi
Pada penerimaan permintaan tulis, driver tingkat yang lebih tinggi mengatur lokasi tumpukan I/O di IRP untuk driver yang lebih rendah berikutnya, atau membuat dan menyiapkan IRP tambahan untuk satu atau beberapa driver yang lebih rendah. Ini dapat mengatur rutinitas IoCompletion-nya , yang bersifat opsional untuk IRP input tetapi diperlukan untuk IRP yang dibuat driver, dengan memanggil IoSetCompletionRoutine. Kemudian, driver meneruskan permintaan ke driver berikutnya yang lebih rendah dengan IoCallDriver.
Pada penerimaan permintaan tulis, driver perangkat mentransfer data dari memori sistem ke perangkatnya. Driver perangkat mengatur bidang Informasi blok status I/O ke jumlah byte yang ditransfer ketika menyelesaikan IRP.
Persyaratan
Header |
Wdm.h (termasuk Wdm.h, Ntddk.h, atau Ntifs.h) |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk