Bagikan melalui


Hindari Perangkat Jajak Pendapat

Driver perangkat harus menghindari polling perangkatnya kecuali benar-benar diperlukan, dan tidak boleh menggunakan seluruh jatah waktu untuk polling. Memilih perangkat adalah operasi mahal yang membuat sistem operasi apa pun dibatasi oleh komputasi dalam driver pemilihan. Driver perangkat yang melakukan banyak polling mengganggu operasi I/O pada perangkat lain dan dapat membuat sistem lambat dan tidak responsif kepada pengguna.

Perangkat yang baru dikembangkan, yang secanggih prosesor tempat Windows dirancang untuk dijalankan, jarang memerlukan driver untuk memantau perangkatnya, baik untuk memastikan bahwa perangkat siap memulai operasi I/O atau bahwa operasi telah 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 beberapa cara lain untuk menunggu perangkat memperbarui register-nya.

Meskipun mungkin tampak logis untuk memecahkan masalah perangkat yang lambat dengan memprogram perulangan sederhana yang meningkatkan penghitung, sehingga "membuang-buang" interval minimum saat pembaruan register perangkat, driver semacam itu tidak mungkin portabel di seluruh platform di lingkungan Windows. Maksimum penghitung perulangan akan memerlukan penyesuaian untuk setiap platform. Selain itu, jika driver dikompilasi dengan kompiler pengoptimalan yang baik, kompiler dapat menghapus variabel penghitung driver dan perulangan di mana variabel tersebut ditambah.

Catatan Ikuti panduan implementasi ini jika driver harus menunda saat perangkat keras memperbarui status: Driver dapat memanggil KeStallExecutionProcessor sebelum membaca register perangkat. Driver harus meminimalkan periode macet dan, secara umum, menentukan interval macet yang tidak lebih dari 50 mikrodetik.

Granularitas interval KeStallExecutionProcessor adalah satu mikrodetik.

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