Bagikan melalui


Menulis Rutinitas SynchCritSection

Driver menggunakan rutinitas SynchCritSection mereka untuk salah satu dari dua tujuan dasar:

Memprogram perangkat untuk operasi I/O

Mengakses informasi status bersama

Seperti ISR, rutinitas SynchCritSection harus dijalankan secepat mungkin, hanya melakukan apa yang diperlukan untuk menyiapkan pendaftaran perangkat atau memperbarui data konteks, sebelum kembali.

Karena KeSynchronizeExecution memegang kunci putaran interupsi driver perangkat saat rutinitas SynchCritSection berjalan, ISR driver tidak dapat dijalankan sampai rutinitas SynchCritSection mengembalikan kontrol.

Untuk setiap IRP yang diterima, driver perangkat harus melakukan pemrosesan I/O sebanyak mungkin baik di IRQL PASSIVE_LEVEL dalam rutinitas pengirimannya (atau mungkin utas khusus perangkat), atau di IRQL DISPATCH_LEVEL dalam rutinitas StartIo dan DPC-nya.

Untuk informasi tambahan tentang bagaimana bagian penting disinkronkan, lihat Menggunakan Kunci Putar: Contoh.