静态驱动程序验证程序错误消息

本部分介绍一些更频繁出现 SDV 错误消息的含义,并建议解决这些问题的方法。

从 Visual Studio 启动 SDV 时,可能会看到以下错误:

  • SDV 仅对非调试配置运行:如消息所指出,必须在非调试配置中运行 SDV。 请确保项目设置为"发布"配置,或者创建一个(如果不可用)并重新启动 SDV。
  • 加载可用规则时出错:SDV 找不到驱动程序模型的规则,或者无法正确确定驱动程序模型 (如果驱动程序不是 WDM、KMDF、NDIS 或 Storport 驱动程序) 。 如果 WDK 安装正确,则可以直接从命令行运行 SDV 来 (请参阅静态 驱动程序验证程序命令 (MSBuild) ) 。
  • SDV 无法清理驱动程序目录:在某些情况下,单击"清理"按钮时,权限错误可能会阻止 SDV 正确清理驱动程序目录中的旧结果。 如果当前使用以前运行中的 sdv 文件,也会出现此错误。 确保驱动程序目录中没有使用 SDV 文件,然后删除任何"sdv"和"sdv.temp"文件夹和任何"staticdv.job"文件。

如果 SDV 在尝试分析时失败,它将输出它未能进入标准输出的阶段。 从 VISUAL STUDIO GUI 运行 SDV 时,可以通过切换到"警报"选项卡来查看此输出。

SDV 可能失败的阶段包括:

  • NormalBuild:SDV 无法使用标准命令生成MSBuild驱动程序。 如果具有专用生成逻辑、依赖于项目文件中的解决方案元素或具有外部生成组件,则可能会发生这种情况。 如果项目依赖于 $ (SolutionDir) 属性,则可以通过从命令行重新运行 SDV 并将其追加到命令行,通过将 /p:SolutionDir=[solution dir] 添加到 MSBuild 命令末尾来直接提供此变量。 请参阅静态驱动程序验证程序命令 (MSBuild)
  • InterceptedBuild:SDV 无法生成驱动程序进行分析。
  • 扫描:SDV 找不到驱动程序的入口点。 此处的错误可能指示未找到入口点,应更新函数 roletypes 或 sdv-map.h。 有关详细信息 ,请参阅 使用函数角色类型声明和 批准 Sdv-map.h 文件。
  • FinalCompile:SDV 无法使用规则和 OS 模型编译驱动程序。
  • CheckRule:SDV 无法正确验证规则。

通过为 SDV 启用诊断,可以了解有关错误的更多详细信息。 有关详细信息 ,请参阅静态驱动程序验证程序 诊断。