首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误MSB6006:在运行SDV (静态驱动程序验证程序)时,link.exe退出,Visual 2019,SDK 10 build 19041,windows 10 build 19041

错误MSB6006:在运行SDV (静态驱动程序验证程序)时,link.exe退出,Visual 2019,SDK 10 build 19041,windows 10 build 19041
EN

Stack Overflow用户
提问于 2021-09-23 03:13:17
回答 2查看 782关注 0票数 3

我们创建了新的KMDF项目,OpenVisualStudio2019v16.11,转到文件->新->项目->选择内核模式驱动程序,USB (KMDF)。没有任何修改,这个项目没有错误,在建设时没有警告。当我们为这个项目运行SDV (静态驱动验证器)时,smvbuild.log会显示这个错误。

代码语言:javascript
复制
C:\Program Files (x86)\Windows Kits\10\TOOLS\SDV\smv\bin\link.exe /ERRORREPORT:QUEUE /OUT:"C:\Users\tungpvt\source\repos\USB Driver2Release\USBDriver2.sys" /VERSION:"10.0" /INCREMENTAL:NO /NOLOGO /WX /SECTION:"INIT,d" "C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\km\x86\BufferOverflowFastFailK.lib" "C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\km\x86\ntoskrnl.lib" "C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\km\x86\hal.lib" "C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\km\x86\wmilib.lib" "C:\Program Files (x86)\Windows Kits\10\lib\wdf\kmdf\x86\1.15\WdfLdr.lib" "C:\Program Files (x86)\Windows Kits\10\lib\wdf\kmdf\x86\1.15\WdfDriverEntry.lib" usbdex.lib ntstrsafe.lib "C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\km\x86\wpprecorder.lib" /NODEFAULTLIB /MANIFEST:NO /DEBUG /PDB:"C:\Users\tungpvt\source\repos\USB Driver2Release\USBDriver2.pdb" /SUBSYSTEM:NATIVE,"10.00" /Driver /OPT:REF /OPT:ICF /ENTRY:"FxDriverEntry@8" /RELEASE /IMPLIB:"C:\Users\tungpvt\source\repos\USB Driver2Release\USBDriver2.lib" /MERGE:"_TEXT=.text;_PAGE=PAGE" /MACHINE:X86 /PROFILE /SAFESEH /guard:cf /kernel /IGNORE:4198,4010,4037,4039,4065,4070,4078,4087,4089,4221 /osversion:10.0 /pdbcompress /debugtype:pdata Release\Device.obj
  Release\Driver.obj
  Release\Queue.obj
  
C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(1074,5): error MSB6006: "link.exe" exited with code 1. [C:\Users\tungpvt\source\repos\USB Driver2\USB Driver2\USB Driver2.vcxproj]
Done executing task "Link" -- FAILED.
Done building target "Link" in project "USB Driver2.vcxproj" -- FAILED.
Done Building Project "C:\Users\tungpvt\source\repos\USB Driver2\USB Driver2\USB Driver2.vcxproj" (rebuild target(s)) -- FAILED.

此外,在命令行上运行link.exe时,具有与上述相同参数的Visual studio -> Tools -> Command Line -> Developer Command Prompt将显示:

代码语言:javascript
复制
Failed to load Intercept.XML:
Could not find file 'c:\program files (x86)\windows kits\10\tools\sdv\smv\bin\%BE%-Intercept.xml'.

我们在Windows系统环境中添加了BE和smv变量

代码语言:javascript
复制
variable name: BE , variable value: MSBuild
variable name: smv , variable value: C:\Program Files (x86)\Windows Kits\10\Tools\sdv\smv

在项目属性中的链接器会话中,我们将Project properties -> Linker -> Input -> Additional依赖项修改为

代码语言:javascript
复制
%(AdditionalDependencies);$(DDK_LIB_PATH)usbdex.lib;$(DDK_LIB_PATH)ntstrsafe.lib

然后我们可以传递命令行。

代码语言:javascript
复制
C:\Program Files (x86)\Windows Kits\10\TOOLS\SDV\smv\bin\link.exe /ERRORREPORT:QUEUE /OUT:"C:\Users\tungpvt\source\repos\USB Driver2Release\USBDriver2.sys" /VERSION:"10.0" /INCREMENTAL:NO /NOLOGO /WX /SECTION:"INIT,d" "C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\km\x86\BufferOverflowFastFailK.lib" "C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\km\x86\ntoskrnl.lib" "C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\km\x86\hal.lib" "C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\km\x86\wmilib.lib" "C:\Program Files (x86)\Windows Kits\10\lib\wdf\kmdf\x86\1.15\WdfLdr.lib" "C:\Program Files (x86)\Windows Kits\10\lib\wdf\kmdf\x86\1.15\WdfDriverEntry.lib" "C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\km\x86\usbdex.lib" "C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\km\x86\ntstrsafe.lib" "C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\km\x86\wpprecorder.lib" /NODEFAULTLIB /MANIFEST:NO /DEBUG /PDB:"C:\Users\tungpvt\source\repos\USB Driver2Release\USBDriver2.pdb" /SUBSYSTEM:NATIVE,"10.00" /Driver /OPT:REF /OPT:ICF /ENTRY:"FxDriverEntry@8" /RELEASE /IMPLIB:"C:\Users\tungpvt\source\repos\USB Driver2Release\USBDriver2.lib" /MERGE:"_TEXT=.text;_PAGE=PAGE" /MACHINE:X86 /PROFILE /SAFESEH /guard:cf /kernel /IGNORE:4198,4010,4037,4039,4065,4070,4078,4087,4089,4221 /osversion:10.0 /pdbcompress /debugtype:pdata Release\Device.obj
  Release\Driver.obj
  Release\Queue.obj

但仍然运行SDV错误。

请帮我把这个修好。谢谢。

===========================================================================

在我更新到最新的SDK、WDK到10.1.22000版本、更新visual studio 2019和模板驱动程序的错误之后,但是我在我的项目中还面临其他问题

代码语言:javascript
复制
sdv/smvcl.log 

c1 : fatal error C1252: Circular or missing dependency between plugins: 'PREfast Drivers Plugin' requires GUID '{EB170136-3433-4C16-AE1D-8998BA5CAB16}'.

有谁可以帮我?

EN

回答 2

Stack Overflow用户

发布于 2022-03-24 16:28:16

嗨,我在WDK 10.0.22000 ( visual 2019)中遇到了这个问题(静态驱动程序验证器构建上的链接错误),下面是我找到的解决方案:它在编译时定义了宏NT_PROCESSOR_GROUPS (必须重新构建所有宏),所以将这个宏添加到预处理器定义中是有用的(至少对我的设置是这样)。

如果您现在或将来遇到静态驱动程序验证器故障,下面是一个有用的提示:

在启用/debug的情况下运行SDV目标:

代码语言:javascript
复制
msbuild /t:sdv /p:Inputs="/check:* /debug" path\to\myproject.vcxproj /p:Configuration=Release /p:Platform=x64 /maxCpuCount=8

将创建调试日志。链接器的输出位于sdv子目录中,名为sdv 1.log。该目录中还有其他有用的日志文件(我花了很长时间才找到它们,但输出指向了我前面提出的解决方案)。

票数 1
EN

Stack Overflow用户

发布于 2022-04-26 15:29:36

在VisualStudio2019中遇到SDV问题的并不只有您。在更新工具和重新构建之后,我遇到了一个成熟的驱动程序。幸运的是,就像通常的情况一样,OSR的好人们已经一头撞上了这堵墙,找到了一种解决方案

如果您试图在一个已将“在构建上启用代码分析”设置为“是”的驱动程序项目上运行SDV,则SDV将始终以上面所示的方式失败。因此,修复方法是在生成时禁用代码分析,并确保将项目保存到磁盘。然后运行SDV。

我正在工作的驱动程序确实打开了“”。关闭它可以让SDV成功地构建它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69293585

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档