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.
Analisis Kode untuk Driver menyediakan informasi tentang kemungkinan cacat dalam kode sumber. Anda dapat menjalankan analisis kode secara manual, dan Anda juga dapat menjalankan analisis kode secara otomatis dengan setiap build.
Dalam topik ini:
- Menjalankan analisis kode
- Menampilkan hasil analisis kode
- Menyembunyikan laporan cacat
- Mengubah batas penggunaan stack untuk warning C6262 pada driver mode kernel
- Topik terkait
Penting
Analisis Kode untuk driver tersedia di Windows 24H2 WDK dan EWDK, tetapi perlu diperhatikan bahwa ini akan dihentikan di masa mendatang.
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.
Menjalankan analisis kode
Untuk menjalankan analisis kode pada kode sumber driver secara manual
- Di Visual Studio, pilih file atau solusi proyek driver dan pilih konfigurasi dan platform proyek untuk dianalisis.
- Dari menu Analisis atau Build , klik Jalankan Analisis Kode pada Solusi.
Untuk menjalankan analisis kode pada kode sumber driver secara otomatis dengan setiap build
- Di Visual Studio, klik kanan proyek atau solusi driver di Penjelajah Solusi dan klik Properti.
- Dalam kotak dialog properti untuk proyek, klik Analisis Kode.
- Di halaman Analisis Kode untuk Properti C/C++ , pilih konfigurasi proyek dan platform yang ingin Anda analisis (misalnya, Windows 8 dan Win32).
- Pilih Aktifkan Analisis Kode untuk C/C++ pada Build.
- Di bawah Seperangkat aturan, pilih Aturan yang Direkomendasikan Driver Microsoft. Ini adalah aturan default yang ditetapkan untuk driver.
- Di menu Build , klik Bangun Solusi.
Menampilkan hasil analisis kode
Jika kemungkinan cacat ditemukan dalam kode sumber, jendela Hasil Analisis Kode menampilkan nomor peringatan analisis kode dan nomor baris dalam file sumber tempat cacat terjadi.
Untuk melihat kerusakan
Di jendela Hasil Analisis Kode , klik nomor baris dan deskripsi cacat ditampilkan di jendela Hasil Analisis Kode .
Jendela Kode menampilkan kode sumber dan menunjukkan di mana cacat terjadi.
Untuk mengetahui selengkapnya tentang peringatan tertentu, klik Peringatan di jendela Hasil Analisis Kode .
Untuk melihat file log analisis kode yang terkait dengan sebuah build
- Navigasi ke direktori untuk konfigurasi dan platform build Anda (misalnya,
\\Windows7Release\\x64). - Jika Anda menggunakan aturan yang direkomendasikan, file log disebut
vc.\*codeanalysis.xml. Jika Anda membuat driver untuk Windows Server 2012, file ini digunakan untuk membuat log Verifikasi Driver.
Menahan laporan kerusakan
Dalam beberapa kasus, Anda mungkin ingin mengabaikan laporan pesan peringatan tertentu; misalnya, jika peringatannya bersifat informatif dan Anda tahu penyebab masalah.
Untuk menyembunyikan pesan peringatan
Untuk menghapus instans cacat yang dilaporkan, pilih nomor baris dan peringatan di jendela Hasil Analisis Kode .
Dalam deskripsi peringatan yang diperluas, klik Tindakan>Sembunyikan Pesan>Di sumber.
Arahan peringatan pragma dengan penentu penekanan menekan peringatan hanya untuk baris kode yang segera mengikuti pernyataan peringatan #pragma.
#pragma warning(suppress: 6014)
Mengubah batas penggunaan stack untuk peringatan C6262 pada driver mode kernel
Dalam kode mode pengguna dan mode kernel, ruang tumpukan terbatas, dan kegagalan untuk melakukan komitmen halaman tumpukan menyebabkan pengecualian kelebihan tumpukan. Penggunaan tumpukan tinggi terutama menjadi perhatian dalam mode kernel karena total ruang tumpukan yang tersedia hanya 12 KB. Kode kernel mode harus secara agresif membatasi penggunaan stack.
Alat Analisis Kode mengeluarkan peringatan C6262 jika lebih dari 1 KB ruang tumpukan digunakan secara lokal dalam fungsi. Jika Anda ingin menyelidiki fungsi yang mungkin berpotensi intensif sumber daya, Anda dapat menyesuaikan atau menurunkan batas ambang batas tumpukan yang digunakan oleh C6262. Jika Anda menurunkan batas ambang batas tumpukan, alat Analisis Kode berpotensi menemukan lebih banyak masalah. Anda kemudian dapat memilih untuk mengatasi masalah penggunaan stack tersebut. Misalnya, Anda dapat menurunkan ambang batas menjadi 400 byte, untuk melihat apakah fungsi lain menggunakan sumber daya.
Untuk menyesuaikan batas ukuran tumpukan pada C6262
- Buka file proyek Visual Studio (.vcxproj) untuk driver mode kernel (atau komponen) Anda di Notepad atau editor teks lainnya.
- Tambahkan ItemDefinitionGroup> baru< untuk pengkompilasi <ClCompile>.
- <Tambahkan elemen PREfastAdditionalOptions> dan atur stacksize< byte>. Nilai defaultnya adalah stacksize1024.
<ItemDefinitionGroup>
<ClCompile>
<!-- Change stack depth for C6262 from 1024 to 400 -->
<PREfastAdditionalOptions>stacksize400</PREfastAdditionalOptions>
</ClCompile>
</ItemDefinitionGroup>
Simpan file proyek. Mulai Visual Studio, muat proyek driver yang diperbarui, dan jalankan analisis kode.
Untuk kembali ke default 1 KB, urungkan perubahan yang Anda buat pada file proyek, atau ubah nilai ukuran tumpukan menjadi stacksize1024.