Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Untuk menulis driver kuat yang mematuhi Windows Driver Model (WDM) atau Kernel Mode Driver Framework (KMDF), NDIS, atau Storport, Anda harus memiliki keahlian dan memahami bagaimana driver berinteraksi dengan manajer I/O. Mengujicoba driver ini juga sama sulitnya.
Mengembangkan driver yang solid dapat menjadi tantangan karena alasan-alasan berikut:
Driver berfungsi secara asinkron, bahkan pada mesin dengan prosesor tunggal.
Driver bersifat sangat reentransi.
Para pengemudi menggunakan banyak aturan yang samar.
Model pengemudi bersifat evolusioner dan berubah seiring waktu.
Menguji driver perangkat dibatasi oleh alasan berikut:
Pengamatan. Anda tidak dapat mengamati kesalahan dalam interaksi antara driver dan sistem operasi. Driver dapat melanggar aturan penggunaan implisit, yang mengakibatkan crash atau perilaku yang tidak tepat, tetapi sulit untuk mendeteksi akar penyebab kesalahan saat mengembangkan dan menguji driver.
Kontrol. Driver yang bekerja dengan benar dalam keadaan normal dapat memiliki kesalahan halus yang hanya terjadi dalam situasi luar biasa, seperti ketika tumpukan driver di bawahnya gagal dalam memproses IRP. Situasi seperti itu sulit untuk diujicobakan, sehingga pengujian tradisional tidak dapat secara memadai mendeteksi jalur kesalahan melalui kode driver.
SDV meningkatkan pengamatan dan kontrol yang Anda miliki saat menguji driver. Dengan menentukan aturan untuk penggunaan fungsi WDM, KMDF, NDIS, dan Storport yang tepat dan memantau kepatuhan driver terhadap aturan tersebut, SDV meningkatkan kemampuan Anda untuk mengamati kesalahan. Misalnya, aturan WDM LowerDriverReturn menentukan bahwa, dalam keadaan tertentu, rutinitas pengiriman driver harus selalu mengembalikan nilai yang dikembalikan oleh driver yang lebih rendah dalam tumpukan.
SDV juga meningkatkan kontrol dengan menyediakan:
Model lingkungan pengemudi yang bersifat bermusuhan, di mana beberapa skenario terburuk (seperti panggilan sistem operasi yang terus gagal) dapat terjadi.
Analisis statis yang kuat (disebut pemeriksaan model) yang secara sistematis menjelajahi semua kemungkinan jalur eksekusi di driver.
SDV adalah alat uji unit yang esensial untuk driver perangkat. Ini menempatkan driver di lingkungan yang tidak bersahabat dan secara sistematis menguji jalur kode melalui driver untuk menemukan pelanggaran terhadap aturan penggunaan model driver.
Penting
SDV tidak lagi didukung dan SDV tidak tersedia di rilis Windows 24H2 WDK atau EWDK. Ini tidak tersedia di WDK yang lebih baru dari build 26017, dan tidak termasuk dalam WDK Windows 24H2 RTM.
SDV masih dapat digunakan dengan mengunduh Windows 11, versi 22H2 EWDK (dirilis 24 Oktober 2023) dengan alat build Visual Studio 17.1.5 dari Unduh Windows Driver Kit (WDK). Hanya penggunaan Enterprise WDK untuk menjalankan SDV yang direkomendasikan. Menggunakan versi WDK standar yang lebih lama bersama dengan rilis Terbaru Visual Studio tidak disarankan, karena ini kemungkinan akan mengakibatkan kegagalan analisis.
Ke depannya, CodeQL akan menjadi alat analisis statis utama untuk driver. CodeQL menyediakan bahasa kueri canggih yang memperlakukan kode sebagai database yang akan dikueri, sehingga mudah untuk menulis kueri untuk perilaku, pola, dan lainnya tertentu.
Untuk informasi selengkapnya tentang menggunakan CodeQL, lihat CodeQL dan Uji Logo Alat Statis.