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.
Halaman ini menjelaskan masalah umum yang mungkin Anda temui saat menggunakan alat Static Driver Verifier (SDV) di Windows Driver Kit (WDK). Informasi di bawah ini berkaitan secara khusus dengan versi alat yang dikirim dengan Pembaruan Windows 10 Oktober 2018 (Versi 1809).
Silakan lihat Masalah Yang Diketahui WDK untuk masalah SDV yang diketahui dengan WDK resmi terbaru.
Kegagalan InterceptedBuild
Gejala utama: SDV gagal dengan FATAL ERROR: Unrecoverable error in InterceptedBuild stage.
Saat memeriksa file DVL, Anda akan melihat AssessmentScore nilai dengan ScoreName="[driverName].[architecture].SDV.NA.Reason" dan ScoreUnit="Unrecoverable error in InterceptedBuild stage."
Untuk kegagalan InterceptedBuild, lakukan langkah-langkah berikut untuk mendiagnosis masalah.
Jalankan ulang SDV dari Baris Perintah Alat Asli Visual Studio 2017 dengan bendera /debug. Untuk detail tentang opsi perintah, lihat Perintah Pemverifikasi Driver Statis.
a. Pertama, jalankan fungsi pustaka SDV pada proyek pustaka dependen apa pun. Misalnya:
msbuild /p:Configuration=Release /p:Platform=x64 /t:sdv /p:inputs="/lib /debug".b. Kemudian jalankan SDV pada proyek driver itu sendiri. Misalnya:
msbuild /p:Configuration=Release /p:Platform=x64 /t:sdv /p:inputs="/check /debug"Konfirmasikan bahwa kegagalan kembali terjadi pada tahap InterceptedBuild.
Navigasi ke
sdvfolder yang dihasilkan di folder driver saat Anda menjalankan SDV.Buka
smvcl.logdan cari frasa "kesalahan kompilator internal".a. Jika pesan kesalahan yang berisi kesalahan kompilator internal dan frasa yang mirip dengan kesalahan fatal C1001: Kesalahan internal telah terjadi di kompilator. (file kompilator 'msc1.cpp', baris 1511) ada, ini adalah masalah yang diketahui yang membutuhkan errata (ID errata 40705). Jika Anda memerlukan bantuan lebih lanjut, silakan email stlogohelp@microsoft.com.
b. Jika pesan kesalahan yang berisi kesalahan kompilator internal ada tetapi tidak terlihat seperti di atas, ini kemungkinan akan memerlukan errata tetapi mungkin bukan masalah yang diketahui yang ada. Email stlogohelp@microsoft.com.
c. Jika Anda tidak melihat baris yang berisi kesalahan kompilator internal, cari baris apa pun yang dimulai dengan kesalahan. Ini mungkin atau mungkin bukan masalah yang memerlukan errata. Email stlogohelp@microsoft.com.
Buka smvlink1.log dan cari kesalahan kompilator internal frasa.
a. Jika pesan kesalahan yang berisi kesalahan kompilator internal dan slamcl: kesalahan: pada fase 2: kehabisan memori ada, ini adalah masalah umum yang memerlukan errata.
b. Jika Anda tidak melihat baris yang berisi kesalahan kompilator internal, cari baris apa pun yang dimulai dengan kesalahan. Ini mungkin atau mungkin bukan masalah yang memerlukan errata. Email stlogohelp@microsoft.com.
c. Jika Anda tidak melihat salah satu hal di atas, hubungi MSFT untuk mendapatkan dukungan.
Untuk menghubungi MSFT untuk mendapatkan dukungan, pastikan kode sumber tidak dibagikan dengan menjalankan hal berikut:
Jalankan SDV dengan bendera /debug diaktifkan, dan pipa output ke file teks.
Navigasi ke
sdvfolder di direktori driver dan jalankan perintah berikut untuk menghapus hasil build yang mungkin mengekspos sumber:del /s *.obj del /s *.rawcfg* del /s *.li del /s *.pdb del /s *.sysKirim file berikut ke stlogohelp@microsoft.com:
a. File teks dengan output menjalankan SDV
b. File smexecute-NormalBuild.log
c. File smvexecute-InterceptedBuild.log
d. Subfolder "sdv"
Runtime Visual Studio C++ 2013 tidak ada
Gejala utama: Saat menjalankan SDV pada sistem yang tidak memiliki runtime Visual Studio C++ 2012 dan 2013, pengguna mungkin melihat kesalahan dalam kotak pop-up seperti Eksekusi kode tidak dapat dilanjutkan karena [MSVCR110.dll atau VCOMP110.dll] tidak ditemukan. Menginstal ulang program dapat memperbaiki masalah ini.
Dalam hal ini, solusinya adalah menginstal Visual C++ X86 dan x64 yang Dapat Didistribusikan Ulang untuk Visual Studio 2012 dan 2013.
Praktik terbaik: gunakan Visual Studio 2017 Versi 15.8
Secara default, analisis kode tidak secara otomatis membangun driver di Visual Studio 15.7. Jika driver bergantung pada biner yang dihasilkan, ini dapat menyebabkan kegagalan di panel Output . Sebagai gantinya, sebaiknya gunakan versi 15.8 sebagai gantinya.
Kegagalan pembuatan DVL setelah menghapus konfigurasi dari proyek
Gejala utama: Setelah menghapus konfigurasi dari proyek melalui jendela Configuration Manager, pengguna melihat pesan berikut saat memilih Buat Log Verifikasi Driver:Please select a driver project. Driver Verification Log cannot be created for the selected platform tool set: 'v100'"
Solusi sementara:
Cadangkan file proyek Anda, lalu buka file proyek di editor teks.
Di bawah bagian ,
\<PropertyGroup Label="Globals"\>temukan dua tag XML: satu dengan format\<Configuration\>\[Configuration type\]\</Configuration\>dan satu dengan format\<Platform Condition="'$(Platform)' == ''"\>\[Architecture\]\</Platform\>, di mana\[Configuration type\]dan\[Architecture\]merupakan konfigurasi dan rilis default untuk jenis proyek ini.Perbarui
\[Configuration type\]dan\[Architecture\]ke nilai yang sesuai untuk proyek Anda. Misalnya, jika Anda menghapus platform Win32, Anda dapat memperbarui\[Architecture\]ke x64 sebagai gantinya.
Solusi alternatif:
Buka Perintah Alat Asli Visual Studio 2017.
Navigasi ke folder driver.
Jalankan
msbuild [Your Project] /p:Configuration=[Configuration type] /p:Platform=[Architecture] /t:dvl, di mana\[Your Project\]adalah file vcxproj,\[Configuration type\]adalah konfigurasi yang valid seperti Rilis, dan\[Architecture\]merupakan arsitektur yang valid seperti x64.
Pembuatan DVL tidak berfungsi di ServerCore, gunakan GUI Server
Pengujian Logo Static Tools gagal saat dijalankan. Meninjau log pengujian menunjukkan kegagalan yang mirip dengan Failed to load 'C:\hlk\JobsWorkingDir\Tasks\WTTJobRun4749E809-0166-E811-8368-F4521454FFE1\Devfund_DvlTest.dll'. (Could not load managed test module because RoMetadata.dll could not be found)
Pastikan paket TAEF disebarkan atau RoMetadata.dll disebarkan ke lokasi dalam variabel lingkungan PATH Anda.
Gejala utama adalah kegagalan memuat RoMetadata.dll.
Jika Anda memiliki penginstalan GUI Server dengan arsitektur dan versi Windows yang sama dengan penginstalan ServerCore Anda, salin file RoMetadata.dll dari GUI Server ke ServerCore. DLL dapat ditemukan di folder System32 (misalnya, C:\Windows\System32) dan harus ditempatkan di folder yang sama pada komputer ServerCore. Ini harus mengaktifkan pengujian untuk berjalan di ServerCore. Jika Anda masih mengalami masalah, silakan lihat solusi berikutnya.
Solusi kedua adalah menjalankan pada GUI Server dan kemudian menggabungkan paket dengan paket yang berisi hasil dari Server Core. Untuk informasi tentang menggabungkan paket, lihat Menggabungkan paket.
Pemverifikasi Driver Statis gagal dengan keluar dari lib.exe/iwrap.exe dengan kesalahan 0xc0000142
File smvbuild.log berisi pesan yang mirip dengan kesalahan ini:
c:\Program Files\Microsoft Visual Studio\2017\BuildTools\Common7\IDE\VC\VCTargets\Microsoft.CppCommon.targets(1144,5): error MSB6006: "Lib.exe" exited with code -1073741502.
Done executing task "LIB" -- FAILED.
Ini adalah masalah yang sudah diketahui. Jika masalah ini memblokir sertifikasi WHCP Anda, silakan gunakan errata 41600.