解释静态驱动程序验证程序结果

从 Visual Studio 启动静态驱动程序验证程序并运行驱动程序分析时,结果将显示在“主”选项卡上 的“结果 ”摘要中。

运行静态驱动程序验证程序后 Visual Studio 中结果摘要的屏幕截图。

统计

入口点 报告在驱动程序源代码中找到的入口点数。 入口点是驱动程序提供的回调或调度例程。 使用函数角色类型声明定义入口点。 若要执行分析,SDV 必须至少包含一个入口点。 有关详细信息,请参阅 使用函数角色类型声明

发现的缺陷 报告在分析期间发现的缺陷数。 缺陷是违反 DDI 符合性规则。

执行的测试 报告在分析期间测试的规则数。 这些是你在“规则”选项卡上选择 的规则

地位

报告分析的状态。 完成后,可以查看找到的结果。

结果

已完成 (规则)
SDV 测试了驱动程序是否违反了规则,但它无法证明任何违反规则的行为。

此结果并不意味着驱动程序没有错误。 它仅意味着 SDV 无法证明它违反了验证通道中的规则。

缺陷
如果 SDV 报告了一个或多个缺陷,请单击“ 缺陷 ”链接 以使用静态驱动程序验证程序报告 查看错误的跟踪。

不适用
SDV 测试了驱动程序是否违反了规则,但驱动程序不支持分析所需的入口点,或者驱动程序未调用规则监视的函数。

如果规则监视函数调用中的特定参数通常 (,则指向资源的指针) 并且驱动程序不调用函数或不引用该参数,则规则不适用于驱动程序。

如果驱动程序指定了入口点,并且它确实调用了规则监视的函数,则此结果可能表明 SDV 未找到或未正确解释入口点。 若要确认是否发生了这种情况,请检查并在必要时更正 Sdv-map.h 文件。 有关此过程的信息,请参阅 扫描驱动程序

有关每个规则的详细信息,请参阅 静态驱动程序验证程序规则 参考。

若要进一步检查驱动程序,请使用不同的规则运行验证。

超时
SDV 停止验证规则,因为它超出了验证每个规则的时间限制。 时间限制在 静态驱动程序验证程序选项文件中设置,或在 “配置 ”选项卡上的“最长时间”字段中设置。

超时被视为无定论的结果。 它不指示驱动程序错误。 如果 SDV 报告超时,请延长验证允许的时间, (sdv-default.xmlfile) 中的 SDV_SlamConfig_Timeout 值,然后再次运行验证。

已完成 (属性)
SDV 运行指定驱动程序的驱动程序属性规则。 驱动程序属性规则检查驱动程序功能或支持的功能,是进一步分析的前奏。 例如,驱动程序属性规则 CancelRoutine 检查 WDM 驱动程序是否已注册 Cancel 例程。 如果未检测到 Cancel 例程,则不会应用特定的 WDM 规则。 这意味着不满足驱动程序属性。

满足 (属性)
SDV 运行指定驱动程序的驱动程序属性规则。 驱动程序属性规则检查驱动程序功能或支持的功能,是进一步分析的前奏。 例如,驱动程序属性规则 CancelRoutine 检查 WDM 驱动程序是否已注册 Cancel 例程。 如果检测到 Cancel 例程,则应用特定的 WDM 规则。 这意味着驱动程序属性已得到满足

空格
SDV 因超出验证规则的内存限制而停止验证的规则数。 内存限制在 静态驱动程序验证程序选项文件中设置,sdv-default.xml。

空格被视为无结论的结果。 如果 SDV 报告了空格,请扩展为验证分配的空间, (sdv-default.xml 文件中 SDV_SlamConfig_Spaceout值) ,然后再次运行验证。

其他

SDV 遇到无法恢复的内部错误的次数。 有关错误和调试的详细信息,请参阅 静态驱动程序验证程序错误消息 页。