Hindari Perangkat Polling

Driver perangkat harus menghindari polling perangkatnya kecuali benar-benar diperlukan, dan tidak boleh menggunakan polling sepanjang waktu untuk polling. Polling perangkat adalah operasi mahal yang membuat sistem operasi apa pun terikat dalam driver polling. Driver perangkat yang melakukan banyak polling mengganggu operasi I/O pada perangkat lain dan dapat membuat sistem lambat dan tidak responsif terhadap pengguna.

Perangkat yang baru dikembangkan, yang secara teknologi canggih seperti prosesor di mana Windows dirancang untuk berjalan, jarang memerlukan driver untuk melakukan polling perangkatnya, baik untuk memastikan bahwa perangkat siap untuk memulai operasi I/O atau bahwa operasi selesai.

Namun demikian, beberapa perangkat yang masih digunakan dirancang untuk bekerja dengan prosesor lama, yang memiliki bus data sempit, laju jam lambat, dan sistem operasi satu pengguna, tugas tunggal yang melakukan I/O sinkron. Perangkat tersebut mungkin memerlukan polling atau cara lain untuk menunggu perangkat memperbarui register-nya.

Meskipun mungkin tampak logis untuk memecahkan masalah perangkat lambat dengan mengkoding perulangan sederhana yang meningkatkan penghitung, sehingga "membuang-buang" interval minimum saat pembaruan perangkat mendaftar, driver seperti itu tidak mungkin portabel di seluruh platform Windows. Maksimum penghitung perulangan akan memerlukan penyesuaian untuk setiap platform. Selain itu, jika driver dikompilasi dengan pengkompilasi pengoptimalan yang baik, pengkompilasi dapat menghapus variabel penghitung driver dan perulangan di mana ia bertahap.

Catatan Ikuti panduan implementasi ini jika driver harus mengulur waktu saat status pembaruan perangkat keras perangkat: Driver dapat memanggil KeStallExecutionProcessor sebelum membaca daftar perangkat. Pengemudi harus meminimalkan interval yang di-stall dan harus, secara umum, menentukan interval kios tidak lebih dari 50 mikrodetik.

Granularitas interval KeStallExecutionProcessor adalah satu mikrosekon.

Jika perangkat sering memerlukan lebih dari 50 mikrodetik untuk memperbarui status, pertimbangkan untuk menyiapkan utas khusus perangkat di driver.