Keuntungan Menulis Driver UMDF

Topik ini menjelaskan keuntungan menulis driver User-Mode Driver Framework (UMDF) alih-alih driver mode kernel.

Ketika Anda menulis driver UMDF, Anda mendapat manfaat dari hal-hal berikut:

  • Driver UMDF berkontribusi pada stabilitas sistem operasi yang lebih besar karena mereka hanya memiliki akses ke ruang alamat proses tempat mereka berjalan.

  • Karena driver UMDF berjalan di bawah akun LocalService , mereka memiliki akses terbatas ke data pengguna atau ke file sistem.

  • Driver mode pengguna beroperasi di lingkungan yang jauh lebih sederhana daripada driver mode kernel. Misalnya, driver mode kernel harus mempertimbangkan IRQL, kesalahan halaman, dan konteks utas. Namun, dalam mode pengguna, masalah ini tidak ada. Driver mode pengguna selalu berjalan di utas yang berbeda dari proses permintaan dan selalu dapat mengambil kesalahan halaman.

  • UMDF versi 2 menawarkan paritas fitur dengan KMDF di sebagian besar area. Untuk perbandingan lengkap, lihat Membandingkan Fungsionalitas UMDF 2 dengan KMDF.

  • UMDF versi 2 memfasilitasi konversi antara KMDF dan UMDF. Lihat Cara mengonversi driver KMDF ke driver UMDF 2 (dan sebaliknya).

  • Anda dapat men-debug driver UMDF dengan menggunakan debugger mode pengguna atau, dimulai dengan UMDF versi 2, debugger mode kernel.

  • Anda dapat menggunakan perintah ekstensi debugger Wdfkd.dll dengan KMDF dan dimulai dengan UMDF versi 2. Untuk informasi selengkapnya, lihat Ekstensi Debugger.

Tujuan mendasar dari model WDF secara keseluruhan adalah untuk memberikan default cerdas, sehingga Anda dapat fokus pada perangkat keras perangkat Anda dan menghindari penulisan kode untuk melakukan tugas yang umum bagi sebagian besar driver.

Untuk mencapai tujuan ini, kerangka kerja dirancang untuk bekerja dengan driver berdasarkan "keikutsertaan". Saat Anda menulis driver UMDF, Anda menyediakan rutinitas panggilan balik hanya untuk peristiwa yang memengaruhi perangkat Anda. Misalnya, beberapa perangkat memerlukan intervensi segera setelah diaktifkan dan tepat sebelum dimatikan. Driver untuk perangkat tersebut dapat menerapkan fungsi panggilan balik yang dipanggil kerangka kerja pada saat itu.

Driver menyertakan kode untuk menangani hanya peristiwa yang perangkatnya memerlukan dukungan khusus perangkat. Semua peristiwa lain dapat ditangani oleh default kerangka kerja.

Selain itu, driver dapat mengonfigurasi antrean permintaan I/O-nya sehingga kerangka kerja berhenti mengirimkan permintaan saat perangkat dalam keadaan daya rendah dan melanjutkan pengiriman setelah perangkat kembali ke status operasional. Demikian pula, jika permintaan I/O tiba saat perangkat dalam keadaan daya rendah, kerangka kerja dapat secara otomatis menyalakan perangkat.