Bagikan melalui


Driver yang Didukung

Agar SDV memverifikasi driver, SDV harus dapat menginterpretasikan kode driver, khususnya, titik masuk driver dan kode dalam fungsi dan rutinitas yang mendukung fungsionalitas driver yang diperlukan.

Bagian berikut menjelaskan persyaratan dasar untuk driver dan sintaks spesifik yang diharapkan SDV dari driver yang diverifikasinya. SDV tidak memverifikasi bahwa driver mematuhi persyaratan ini, tetapi jika driver tidak mematuhi, SDV mungkin gagal berjalan dan, dalam situasi yang jarang terjadi, ia melaporkan hasil positif palsu atau negatif palsu karena salah tafsir.

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.

Karakteristik Driver Dasar

SDV hanya dapat memverifikasi driver dengan karakteristik berikut:

Persyaratan Driver Dasar

Agar SDV memverifikasi driver WDM, driver harus:

  • Sertakan Wdm.h atau Ntddk.h (Wdm.h adalah subset dari Ntddk.h).

  • Buat objek perangkat dengan menggunakan metode yang dijelaskan dalam Pengenalan Objek Perangkat dan berikut ini.

  • Menggunakan rutinitas Bongkar yang ditulis sesuai rekomendasi dalam Menulis Rutinitas Bongkar.

  • Deklarasikan setiap fungsi pengiriman menggunakan deklarasi jenis peran fungsi, yang dijelaskan dalam Menggunakan Deklarasi Jenis Peran Fungsi. Untuk informasi tentang tipe peran WDM dan anotasi _Dispatch_type_ (tipe), lihat Mendeklarasikan Fungsi Menggunakan Tipe Peran Fungsi untuk Driver WDM.

Agar SDV memverifikasi driver KMDF, driver harus:

Agar SDV memverifikasi driver NDIS, driver harus:

Selain itu, SDV dapat memverifikasi driver yang mendukung:

Nama Fungsi Yang Dicadangkan

Mesin verifikasi SDV tidak beroperasi dengan benar ketika driver atau kode pustaka menggunakan pola nama fungsi yang sama dengan yang digunakan SDV secara internal.

Secara khusus, SDV tidak menginterpretasikan kode dengan benar jika:

  • Kode ini mencakup nama fungsi yang dimulai dengan __init dan diikuti oleh satu atau beberapa bilangan bulat, seperti __init123.

  • Kode ini mencakup nama fungsi yang dimulai dengan sdv_, seperti sdv_Func, atau menyertakan string _sdv_, seperti Func_sdv_ atau Func_sdv_foo.

  • Pustaka menggunakan .def file untuk mengganti nama fungsi yang diekspor dan nama eksternal sama dengan nama fungsi statis lain di pustaka.

Jika kode driver atau kode pustaka menyertakan elemen-elemen ini, SDV mencoba memverifikasi driver atau memproses pustaka, tetapi hasilnya adalah Fitur Yang Tidak Didukung (NSF). Untuk informasi selengkapnya tentang hasil SDV, lihat Menginterpretasikan Hasil Pemverifikasi Driver Statis.