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.
Memindai driver menggunakan opsi perintah /scan bersifat opsional. Jika Anda tidak memindai sebelum memverifikasi driver, SDV memindai deklarasi jenis peran fungsi dan membuat file Sdv-map.h saat Anda memverifikasi driver.
Selama pemindaian ini, SDV mencoba mendeteksi poin masuk pengemudi yang diperlukan untuk memverifikasi pengemudi. Ini mencatat hasil pemindaian di Sdv-map.h, file yang dibuatnya di direktori sumber driver.
Namun, sangat penting bagi Anda untuk meninjau file ini, baik setelah langkah pemindaian atau setelah verifikasi, untuk memastikan bahwa SDV telah mendeteksi titik masuk yang benar. Jika titik masuk hilang atau salah, verifikasi mungkin tidak dapat diandalkan. Lebih penting lagi, jika SDV tidak dapat mendeteksi titik masuk apa pun, SDV tidak dapat memverifikasi driver.
Anda hanya perlu memindai sekali untuk setiap penggerak. Setelah itu, SDV mempertahankan file Sdv-map.h untuk driver untuk verifikasi di masa mendatang.
Periksa file Sdv-map.h
Setelah menjalankan perintah pemindaian atau memverifikasi driver, buka file Sdv-map.h dan periksa file. Sdv-map.h adalah file teks yang diformat. Anda dapat membacanya editor teks apa pun, seperti Notepad.
Bandingkan konten file Sdv-map.h dengan jenis peran fungsi yang dideklarasikan untuk driver Anda. Periksa konten file Sdv-map.h untuk melihat bahwa rutinitas panggilan balik atau pengiriman driver telah diidentifikasi dengan benar.
File Sdv-map.h tidak diperlukan untuk mencantumkan semua titik masuk di driver Anda; hanya titik entri untuk kode fungsi utama IRP atau jenis peran fungsi yang digunakan dalam analisis. Jangan tambahkan kode fungsi utama IRP atau jenis peran fungsi ke file.
Untuk informasi terperinci tentang file Sdv-map.h, lihat Sdv-map.h. Format dijelaskan dalam Format File Sdv-map.h. Kesalahan yang dapat muncul dalam file Sdv-map.h dijelaskan dalam Menyetujui File Sdv-map.h.
Contoh berikut menunjukkan konten file Sdv-map.h dari Fail_driver1, contoh driver WDM di direktori tools\sdv\samples\fail_drivers\wdm.
//Approved=false
//DriverAddDevice
#define fun_AddDevice DriverAddDevice
//DriverEntry
#define fun_DriverEntry DriverEntry
//DriverUnload
#define fun_DriverUnload DriverUnload
//CompletionRoutine
#define fun_IO_COMPLETION_ROUTINE_1 CompletionRoutine
//DpcForIsrRoutine
#define fun_IO_DPC_ROUTINE_1 DpcForIsrRoutine
//DispatchCreate
#define fun_IRP_MJ_CREATE DispatchCreate
//DispatchPnp
#define fun_IRP_MJ_PNP DispatchPnp
//DispatchPower
#define fun_IRP_MJ_POWER DispatchPower
//DispatchRead
#define fun_IRP_MJ_READ DispatchRead
//DispatchSystemControl
#define fun_IRP_MJ_SYSTEM_CONTROL DispatchSystemControl
//InterruptServiceRoutine
#define fun_KSERVICE_ROUTINE_1 InterruptServiceRoutine
Mengoreksi File Sdv-map.h
Sebelum Anda memverifikasi driver, koreksi kesalahan apa pun dalam file Sdv-map.h. SDV akan memverifikasi driver, bahkan jika file Sdv-map.h salah atau tidak disetujui, tetapi hasil verifikasi mungkin tidak dapat diandalkan. Misalnya, jika Anda tidak mendeklarasikan rutinitas pengiriman atau panggilan balik driver dengan menggunakan jenis peran fungsi yang sesuai, rutinitas driver tidak akan muncul dalam file Sdv-map.h. Akibatnya, Anda dapat melewatkan menemukan cacat dalam kode Anda karena SDV menganggap aturan yang menggunakan jenis peran fungsi tidak berlaku, bahkan jika Anda menentukan aturan tersebut sebagai bagian dari verifikasi.
Untuk memperbaiki file Sdv-map.h, pastikan bahwa rutinitas pengiriman atau panggilan balik driver Anda dideklarasikan dengan menggunakan jenis peran fungsi yang sesuai. Kemudian, pindai ulang driver dan verifikasi bahwa driver muncul di file Sdv-map.h..
Setujui file Sdv-map.h
Setelah menentukan bahwa file Sdv-map.h sudah benar, Anda dapat menyetujui file tersebut. Jika Anda tidak membuat perubahan apa pun pada file, Anda tidak perlu menyetujuinya.
SDV akan memverifikasi driver meskipun file Sdv-map.h tidak disetujui.
Untuk menyetujui file Sdv-map.h, pada baris pertama file, ubah:
//Approved=false
Kepada:
//Approved=true
Anda hanya perlu menyetujui file Sdv-map.h sekali untuk setiap driver. Setelah itu, SDV mempertahankan file Sdv-map.h yang disetujui untuk driver untuk verifikasi di masa mendatang. Jika Anda ingin SDV memindai kode sumber Anda lagi untuk deklarasi jenis peran fungsi, cukup hapus file.
Contoh berikut menunjukkan file Sdv-map.h yang disetujui untuk driver sampel KMDF, Fail_Driver1. SDV menggunakan file Sdv-map.h untuk memetakan fungsi panggilan balik yang dinyatakan driver dengan jenis peran fungsi yang dibutuhkan SDV untuk verifikasi.
//Approved=true
//DriverEntry
#define fun_DriverEntry DriverEntry
//EvtDriverDeviceAdd
#define fun_WDF_DRIVER_DEVICE_ADD EvtDriverDeviceAdd
//EvtIoDeviceControl
#define fun_WDF_IO_QUEUE_IO_DEVICE_CONTROL EvtIoDeviceControl
//EvtIoInternalDeviceControl
#define fun_WDF_IO_QUEUE_IO_INTERNAL_DEVICE_CONTROL EvtIoInternalDeviceControl
//EvtIoRead
#define fun_WDF_IO_QUEUE_IO_READ EvtIoRead
//EvtRequestCancel
#define fun_WDF_REQUEST_CANCEL_1 EvtRequestCancel