Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Op deze pagina worden veelvoorkomende problemen beschreven die kunnen optreden bij het gebruik van het hulpprogramma Static Driver Verifier (SDV) in de Windows Driver Kit (WDK). De onderstaande informatie heeft specifiek betrekking op de versie van het hulpprogramma dat wordt geleverd met Windows 10 oktober 2018 Update (versie 1809).
Zie wdk bekende problemen voor bekende SDV-problemen met de nieuwste officiële WDK.
InterceptedBuild fouten
Primair symptoom: SDV mislukt met FATAL ERROR: Unrecoverable error in InterceptedBuild stage.
Wanneer u het DVL-bestand bekijkt, ziet u een AssessmentScore waarde met ScoreName="[driverName].[architecture].SDV.NA.Reason" en ScoreUnit="Unrecoverable error in InterceptedBuild stage."
Voer voor InterceptedBuild-fouten de volgende stappen uit om het probleem te diagnosticeren.
Voer SDV opnieuw uit vanaf de Native Tools-opdrachtregel van Visual Studio 2017 met de /debug-vlag. Zie Opdrachten voor statische stuurprogrammaverifier voor meer informatie over opdrachtopties.
a. Voer eerst de bibliotheekfunctie van SDV uit op afhankelijke bibliotheekprojecten. Voorbeeld:
msbuild /p:Configuration=Release /p:Platform=x64 /t:sdv /p:inputs="/lib /debug".b. Voer vervolgens SDV uit op het stuurprogrammaproject zelf. Bijvoorbeeld:
msbuild /p:Configuration=Release /p:Platform=x64 /t:sdv /p:inputs="/check /debug"Bevestig dat de fout zich opnieuw voordoet tijdens de InterceptedBuild-fase.
Navigeer naar de
sdvmap die wordt gegenereerd in de stuurprogrammamap wanneer u SDV uitvoert.Open
smvcl.logen zoek naar de woordgroep 'interne compilerfout'.a. Als een foutbericht met een interne compilerfout en een woordgroep die vergelijkbaar is met fatale fout C1001: Er is een interne fout opgetreden in de compiler. (compilerbestand 'msc1.cpp', regel 1511) is aanwezig, dit is een bekend probleem dat errata (errata-id 40705) vereist. Als u meer hulp nodig hebt, kunt u een e-mail sturen stlogohelp@microsoft.com.
b. Als er een foutbericht met een interne compilerfout aanwezig is, maar niet lijkt op het bovenstaande, is er waarschijnlijk een errata vereist, maar is dit mogelijk geen bestaand bekend probleem. E-mail stlogohelp@microsoft.com.
Hoofdstuk c. Als u geen regels met een interne compilerfout ziet, zoekt u naar regels die beginnen met een fout. Dit kunnen problemen zijn waarvoor mogelijk correcties nodig zijn. E-mail stlogohelp@microsoft.com.
Open smvlink1.log en zoek naar de zin interne compilerfout.
a. Als een foutbericht met interne compilerfout en slamcl: fout: in fase 2: onvoldoende geheugen aanwezig is, is dit een bekend probleem waarvoor errata is vereist.
b. Als u geen regels met een interne compilerfout ziet, zoekt u naar regels die beginnen met een fout. Deze kwesties kunnen al dan niet correcties vereisen. E-mail stlogohelp@microsoft.com.
Hoofdstuk c. Als u geen van de bovenstaande informatie ziet, neemt u contact op met MSFT voor ondersteuning.
Als u contact wilt opnemen met MSFT voor ondersteuning, moet u ervoor zorgen dat de broncode niet wordt gedeeld door het volgende uit te voeren:
Voer SDV uit met de vlag /debug ingeschakeld en sluis de uitvoer door naar een tekstbestand.
Navigeer naar de
sdvmap in de map met stuurprogramma's en voer de volgende opdrachten uit om de buildresultaten te wissen die bronnen mogelijk beschikbaar maken:del /s *.obj del /s *.rawcfg* del /s *.li del /s *.pdb del /s *.sysVerzend de volgende bestanden naar stlogohelp@microsoft.com:
a. Het tekstbestand met de uitvoer van het uitvoeren van SDV
b. Het bestand smexecute-NormalBuild.log
Hoofdstuk c. Het smvexecute-InterceptedBuild.log-bestand
d. De submap sdv
Visual Studio C++ 2013-uitvoeringsomgevingen zijn niet aanwezig
Primaire symptoom: Bij het uitvoeren van SDV op een systeem dat geen Visual Studio C++ 2012- en 2013-runtimes heeft, kan de gebruiker fouten zien in pop-upvensters met de melding dat de uitvoering van de code niet kan doorgaan omdat [MSVCR110.dll of VCOMP110.dll] niet is gevonden. Als u het programma opnieuw installeert, kan dit probleem worden opgelost.
In dit geval is de oplossing het installeren van zowel de x86 als x64 Visual C++ Redistributable voor Visual Studio 2012 en 2013.
Aanbevolen procedure: Visual Studio 2017 versie 15.8 gebruiken
Codeanalyse bouwt standaard niet automatisch het stuurprogramma in Visual Studio 15.7. Als het stuurprogramma afhankelijk is van binaire bestanden die worden gegenereerd, kan dit leiden tot een fout in het deelvenster Uitvoer . In plaats daarvan raden we u aan versie 15.8 te gebruiken.
DVL-generatiefout na het verwijderen van de configuratie uit een project
Primair symptoom: Na het verwijderen van een configuratie uit een project via het Configuration Manager-venster, ziet de gebruiker het volgende bericht wanneer hij verificatielogboek voor stuurprogramma's maken selecteert: Please select a driver project. Driver Verification Log cannot be created for the selected platform tool set: 'v100'"
Tijdelijke oplossing:
Maak een back-up van het projectbestand en open het projectbestand in een teksteditor.
Zoek in de
\<PropertyGroup Label="Globals"\>sectie twee XML-tags: één met de indeling\<Configuration\>\[Configuration type\]\</Configuration\>en één met de indeling\<Platform Condition="'$(Platform)' == ''"\>\[Architecture\]\</Platform\>, waarbij\[Configuration type\]en\[Architecture\]de standaardconfiguratie en release voor dit type project zijn.Werk
\[Configuration type\]en\[Architecture\]bij naar waarden die geschikt zijn voor uw project. Als u bijvoorbeeld het Win32-platform hebt verwijderd, kunt u bijwerken naar x64 in plaats daarvan.
Alternatieve tijdelijke oplossing:
Open een opdrachtprompt voor systeemeigen hulpprogramma's van Visual Studio 2017.
Navigeer naar de map met stuurprogramma's.
Voer
msbuild [Your Project] /p:Configuration=[Configuration type] /p:Platform=[Architecture] /t:dvluit, waar\[Your Project\]is het vcxproj-bestand,\[Configuration type\]is een geldige configuratie zoals Release en\[Architecture\]is een geldige architectuur zoals x64.
DVL-generatie werkt niet op ServerCore, gebruikt server-GUI
De test voor het logo van Static Tools mislukt wanneer deze wordt uitgevoerd. Als u de testlogboeken bekijkt, ziet u een fout die vergelijkbaar is met 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)
Zorg ervoor dat het TAEF-pakket is geïmplementeerd of RoMetadata.dll is geïmplementeerd op een locatie in uw PATH-omgevingsvariabele.
Het belangrijkste symptoom is de fout bij het laden van RoMetadata.dll.
Als u een server-GUI-installatie met dezelfde architectuur en Windows-versie als uw ServerCore-installatie hebt, kopieert u het RoMetadata.dll-bestand van server-GUI naar ServerCore. Het DLL-bestand vindt u in de map System32 (bijvoorbeeld C:\Windows\System32) en moet in dezelfde map op de ServerCore-computer worden geplaatst. Dit zou de test in staat moeten stellen op ServerCore te draaien. Als u nog steeds problemen ondervindt, raadpleegt u de volgende tijdelijke oplossing.
De tweede tijdelijke oplossing is om uit te voeren op server-GUI en vervolgens het pakket samen te voegen met het pakket met de resultaten van Server Core. Zie Samenvoegpakketten voor meer informatie over het samenvoegen van pakketten.
Statische stuurprogrammaverifier mislukt bij het afsluiten van lib.exe/iwrap.exe met een 0xc0000142 fout.
Het bestand smvbuild.log bevat een bericht dat lijkt op deze fout:
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.
Dit is een bekend probleem. Als dit probleem uw WHCP-certificering blokkeert, gebruikt u errata 41600.