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.
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:
SDV memverifikasi driver dan pustaka yang ditulis dalam C dan C++.
SDV melakukan verifikasi penuh hanya pada driver perangkat yang mematuhi KMDF dan mematuhi WDM (driver fungsi, driver filter, dan driver bus), driver NDIS (driver filter, miniport, dan protokol), dan driver Storport.
SDV mencoba verifikasi terbatas properti generik (seperti NullCheck) pada driver yang tidak sesuai dengan kategori di atas.
SDV dapat memverifikasi driver WDM yang mendeklarasikan fungsi panggilan balik driver mereka dengan menggunakan jenis peran fungsi WDM. Untuk informasi tentang cara mendeklarasikan fungsi, lihat Mendeklarasikan Fungsi Menggunakan Jenis Peran Fungsi untuk Driver WDM.
SDV dapat memverifikasi driver yang dihasilkan dari Kerangka Kerja Driver Mode Kernel, asalkan Anda mendeklarasikan setiap fungsi panggilan balik dengan menggunakan jenis peran fungsi panggilan balik SDV-KMDF. Untuk informasi selengkapnya, lihat Mendeklarasikan Fungsi dengan Menggunakan Jenis Peran Fungsi untuk Driver KMDF.
SDV dapat memverifikasi driver NDIS, asalkan Anda membuat anotasi setiap fungsi panggilan balik dengan deklarasi fungsi dengan menggunakan jenis fungsi panggilan balik SDV-NDIS. Untuk informasi selengkapnya, lihat Mendeklarasikan Fungsi dengan Menggunakan Jenis Peran Fungsi untuk Driver NDIS.
SDV dapat memverifikasi driver Storport, asalkan Anda membuat anotasi setiap fungsi panggilan balik dengan deklarasi fungsi. Anda melakukan ini dengan menggunakan jenis fungsi panggilan balik SDV-Storport. Untuk informasi selengkapnya, lihat Mendeklarasikan Fungsi dengan Menggunakan Jenis Peran Fungsi untuk Driver Storport.
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.
Memiliki rutinitas Bongkar yang ditulis seperti yang direkomendasikan dalam Menulis Rutinitas Bongkar.
Deklarasikan setiap fungsi pengiriman menggunakan deklarasi jenis peran fungsi, yang dijelaskan dalam Menggunakan Deklarasi Jenis Peran Fungsi. Untuk informasi tentang jenis peran WDM dan anotasi _Dispatch_type_ (jenis), lihat Mendeklarasikan Fungsi Menggunakan Jenis Peran Fungsi untuk Driver WDM.
Agar SDV memverifikasi driver KMDF, driver harus:
Sertakan Wdf.h dan Ntddk.h.
Buat objek KMDF yang dijelaskan dalam Menggunakan Kerangka Kerja untuk Mengembangkan Driver.
Anotasi setiap fungsi panggilan balik menggunakan jenis peran fungsi panggilan balik SDV-KMDF, yang dijelaskan dalam Menggunakan Deklarasi Jenis Peran Fungsi. Untuk daftar jenis peran yang didukung, lihat Deklarasi Fungsi KMDF Pemverifikasi Driver Statis.
Agar SDV memverifikasi driver NDIS, driver harus:
Sertakan Ndis.h dan Ntddk.h.
Ikuti panduan dalam Panduan Desain Jaringan untuk membuat driver NDIS.
Anotasi setiap fungsi panggilan balik dengan menggunakan jenis peran fungsi panggilan balik SDV-NDIS, seperti yang dijelaskan dalam Menggunakan Deklarasi Jenis Peran Fungsi. Untuk daftar jenis peran yang didukung, lihat Deklarasi Fungsi NDIS Pemverifikasi Driver Statis.
Selain itu, SDV dapat memverifikasi driver yang mendukung:
Instrumentasi Manajemen Windows (WMI).
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.