我有一个NDIS 6筛选器驱动程序。它是基于官方ndislwf示例的数据包捕获驱动程序。整个项目在this GitHub repo上开源。可以通过npf.sln
打开Visual Studio 2015
。
我的问题是Static Driver Verifier (SDV)在我的项目上不起作用。当单击Driver
上的Launch Static Driver Verifier...
-> Visual Studio 2015
时,它会弹出SDV GUI,然后单击Clean
和Start
。一段时间(3-5分钟)后,弹出一个窗口,提示SDV遇到未知来源的错误。.SDV UI的Alerts
选项卡显示:
J:\npcap\packetWin7\npf\npf>cd /d "J:\npcap\packetWin7\npf\npf" && msbuild "npf.vcxproj" /t:sdv /p:inputs="/devenv /check" /p:configuration="Win7 Release SDV" /p:platform="x64"
Microsoft (R) Build Engine version 14.0.25420.1
Copyright (C) Microsoft Corporation. All rights reserved.
Build started 7/25/2016 12:42:39 PM.
Project "J:\npcap\packetWin7\npf\npf\npf.vcxproj" on node 1 (sdv target(s)).
sdv:
staticdv.exe /devenv /check
---------------------------------------------------------------------
Microsoft (R) Windows (R) Static Driver Verifier Version 4.0.505.8
Copyright (C) Microsoft Corporation. All rights reserved.
---------------------------------------------------------------------
SDV is building for <Win7 Release SDV|x64>
Build 'npf' ... Done
Scan 'npf' ... Done
No reuse data to copy from previous SDV run.
The finalization step failed for 'npf' .
C:\Program Files (x86)\Windows Kits\10\build\windowsdriver.Sdv.targets(65,9): error MSB3073: The command "staticdv.exe /devenv /check" exited with code -1. [J:\npcap\packetWin7\npf\npf\npf.vcxproj]
Done Building Project "J:\npcap\packetWin7\npf\npf\npf.vcxproj" (sdv target(s)) -- FAILED.
Build FAILED.
"J:\npcap\packetWin7\npf\npf\npf.vcxproj" (sdv target) (1) ->
(sdv target) ->
C:\Program Files (x86)\Windows Kits\10\build\windowsdriver.Sdv.targets(65,9): error MSB3073: The command "staticdv.exe /devenv /check" exited with code -1. [J:\npcap\packetWin7\npf\npf\npf.vcxproj]
0 Warning(s)
1 Error(s)
Time Elapsed 00:01:30.61
然后,我查看了
StaticDVTrace.log
日志。它说如下:Information:Calling DriverCleanup.
Information:Creating a new SDV object.
Information:Loading cache data.
Information:Calling cleanup routine.
Information:Creating a new SDV object.
Information:SetBase this.DdkPath=C:\Program Files (x86)\Windows Kits\10\
Information:SetBase this.Path=J:\npcap\packetWin7\npf\npf
Information:SetBase creating the DriverCollection via constructor.
Information:Driver Constructor:Calling RuleCollection constructor with rule list and rule path
Information:SetBase this.Environment=WDK
Information:SetBase Calling InitBaseEnvironment.
Information:Check that we have driver folder.
Information:Calling build to get cl and link flags.
Information:GenerateBuildLogNewCall build.exe.
Information:GenerateBuildLogNewCall to build.exe worked.
Information:Build 'npf' ... Done
Information:Found Sdv links file and attempting to serialize the data into our object model.
Information:Found Sdv source file and attempting to serialize the data into our object model.
Information:Found cflags in Sdv source file.
Information:Slam model equals
Information:Slam rules equals
Information:Slam Data equals
Information:Calling OpenNewConfiguration
Information:SetBase this.DdkPath=C:\Program Files (x86)\Windows Kits\10\
Information:SetBase this.Path=J:\npcap\packetWin7\npf\npf
Information:SetBase Opening All.sdv to load active rule list.
Information:OpenMsft Opening All.sdv from:C:\Program Files (x86)\Windows Kits\10\TOOLS\SDV\data\ndis\All.sdv
Information:OpenMsft Reading :C:\Program Files (x86)\Windows Kits\10\TOOLS\SDV\data\ndis\All.sdv
Information:OpenMsft Adding :DDIUSAGE.SDV.fsm to the list of rules.
Information:OpenMsft Adding :IRQL.SDV.fsm to the list of rules.
Information:OpenMsft Adding :IRQL_SHARED.SDV.fsm to the list of rules.
Information:OpenMsft Adding :LOCKING.SDV.fsm to the list of rules.
Information:OpenMsft Adding :MEMORYUSAGE.SDV.fsm to the list of rules.
Information:OpenMsft Adding :MISCELLANEOUS.SDV.fsm to the list of rules.
Information:OpenMsft Adding :OIDPROCESSING.SDV.fsm to the list of rules.
Information:OpenMsft Adding :WARNING.SDV.fsm to the list of rules.
Information:OpenMsft Adding :.fsm to the list of rules.
Information:SetBase Calling driver constructor.
Information:RuleCollection Constructor:Calling Rule Constructor.
Information:RuleCollection Constructor:add rule object to collection.
...
Information:RuleCollection Constructor:Calling Rule Constructor.
Information:RuleCollection Constructor:add rule object to collection.
Information:SetBase this.Environment=WDK
Information:SetBase Calling InitBaseEnvironment.
Information:this.NumberOfChecks=0100
Information:this.NumberOfNotStarted=100
Information:Opening sdv-default.xml from:C:\Program Files (x86)\Windows Kits\10\TOOLS\SDV\data\ndis
Information:SdvScan:Local sdv-default.xml found.
Information:Calling build to get cl and link flags.
Information:Loading library data from cache at:C:\Program Files (x86)\Windows Kits\10\
Information:Loading build data.
Information:Counting the LOC in the driver.
Information:Loading WDM entry points from :C:\Program Files (x86)\Windows Kits\10\TOOLS\SDV\data\ndis\DdkEntryPoints.xml
Information:Calling CheckScan to validate we have a valid SDV-map.h file.
Information:CheckScan:Generating SDV-map.h file via call to SdvMap.
Information:SdvMap:Iterate over each driver in the collection.
Information:BuildLib:Create sdv folder.
Information:BuildLib:Create sdv\scan folder.
7/25/2016 11:00:08 PM:The SDV-map.h file at: J:\npcap\packetWin7\npf\npf.
Information:The SDV-map.h file at:J:\npcap\packetWin7\npf\npf does not have the "Approved" flag set to "true."
Information:Scan 'npf' ... Done
Information:CheckScan:Calling LoadSdvMap.
Information:Check if debug flags are set.
Information:Start sdv scan step via call to SdvScan.
Information:SdvScan:Calling SetupSdvScanFolders
Information:SdvScan:Checking if we have a local version of sdv-default.xml
Information:BuildLib:Create sdv folder.
Information:BuildLib:Create sdv\scan folder.
Information:Copying old reuse data for this run...J:\npcap\packetWin7\npf\npf
Information:No reuse data to copy from previous SDV run.
Information:Calling the SdvCheck stage.
Information:SdvCheck:Calling CleanupCflags.
Information:SdvCheck:Calling SetupSdvCheckFolders.
Information:SdvCheck:Calling RuleSpec.
Information:RuleSpec:.
Information:RuleSpec:Calling CompileStage for
Information:RuleSpec:Calling CompileStage for pre_isminiport.fsm
7/25/2016 11:00:16 PM:The SDV compile step failed.
从错误消息中我什么也看不到。有谁能够帮助我?谢谢!
最佳答案
您需要approve the sdv-map.h
file。打开SDV在源目录中生成的sdv-map.h
文件,确认所有内容看起来正确,然后将//Approved=false
更改为//Approved=true
。
关于c - 错误MSB3073:命令“staticdv.exe/devenv/check”退出,代码为-1,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38579657/