Bagikan melalui


Cara menjalankan Analisis Kode untuk driver

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:

Penting

Analisis Kode untuk driver tersedia di Windows 24H2 WDK dan EWDK, tetapi disarankan agar diatur untuk dihentikan pada tanggal 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

  1. Di Visual Studio, pilih file atau solusi proyek driver dan pilih konfigurasi dan platform proyek untuk dianalisis.
  2. Dari menu Analisis atau Build , klik Jalankan Analisis Kode pada Solusi.

Untuk menjalankan analisis kode pada kode sumber driver secara otomatis dengan setiap build

  1. Di Visual Studio, klik kanan proyek atau solusi driver di Penjelajah Solusi dan klik Properti.
  2. Dalam kotak dialog properti untuk proyek, klik Analisis Kode.
  3. Di halaman Analisis Kode untuk Properti C/C++, pilih konfigurasi proyek dan platform yang ingin Anda analisis (misalnya, Windows 8 dan Win32).
  4. Pilih Aktifkan Analisis Kode untuk C/C++ pada Build.
  5. Di bawah Seperangkat aturan, pilih Aturan yang Direkomendasikan Driver Microsoft. Ini adalah aturan default yang ditetapkan untuk driver.
  6. 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 cacat

  1. 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.

  2. Untuk mengetahui selengkapnya tentang peringatan tertentu, klik Peringatan di jendela Hasil Analisis Kode.

Untuk melihat file log analisis kode yang terkait dengan build

  1. Navigasi ke direktori untuk konfigurasi dan platform build Anda (misalnya, \\Windows7Release\\x64).
  2. 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.

Menekan laporan cacat

Dalam beberapa kasus, Anda mungkin ingin menekan laporan pesan peringatan tertentu; misalnya, jika peringatan terutama informasi dan Anda tahu penyebab kesalahan.

Untuk menyembunyikan pesan peringatan

  1. Untuk menghapus instans cacat yang dilaporkan, pilih nomor baris dan peringatan di jendela Hasil Analisis Kode.

  2. 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 tumpukan untuk peringatan C6262 untuk driver mode kernel

Dalam kode mode pengguna dan mode kernel, ruang tumpukan terbatas, dan kegagalan untuk menerapkan halaman tumpukan menyebabkan pengecualian luapan tumpukan. Penggunaan tumpukan tinggi terutama menjadi perhatian dalam mode kernel karena total ruang tumpukan yang tersedia hanya 12 KB. Kode mode kernel harus secara agresif membatasi penggunaan tumpukan.

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 tumpukan tersebut. Misalnya, Anda dapat menurunkan ambang batas menjadi 400 byte, untuk melihat apakah fungsi lain menggunakan sumber daya.

Untuk menyesuaikan batas tumpukan untuk C6262

  1. Buka file proyek Visual Studio (.vcxproj) untuk driver mode kernel (atau komponen) Anda di Notepad atau editor teks lainnya.
  2. Tambahkan ItemDefinitionGroup> baru <untuk pengkompilasi< ClCompile.>
  3. Tambahkan elemen PREfastAdditionalOptions> dan atur byte> stacksize<.< Nilai defaultnya adalah stacksize1024.
     <ItemDefinitionGroup>
       <ClCompile>


      <!-- Change stack depth for C6262 from 1024 to 400 -->
      <PREfastAdditionalOptions>stacksize400</PREfastAdditionalOptions>

    </ClCompile>
  </ItemDefinitionGroup>
  1. 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.

Analisis Kode untuk Peringatan Driver