解释静态驱动程序验证程序结果
从 Visual Studio 启动静态驱动程序验证程序并运行驱动程序分析后,结果将显示在主选项卡上的结果摘要中。
统计信息
入口点 报告在驱动程序源代码中发现的入口点数量。 入口点是驱动程序提供的回调或调度例程。 您可以使用函数角色类型声明来定义入口点。 要进行分析,SDV 必须找到至少一个入口点。 更多信息,请参见使用函数角色类型声明。
发现的缺陷 报告分析过程中发现的缺陷数量。 缺陷是对 DDI 合规规则的违反。
测试执行情况 报告分析期间测试的规则数量。 这些是您在规则选项卡上选择的规则。
Status
报告分析的状态。 完成后,您可以查看找到的结果。
结果
已完成(规则)
SDV 对驱动程序进行了违规测试,但无法证明任何违规行为。
这一结果并不意味着驱动程序没有错误。 这只意味着 SDV 无法证明它在验证通过时违反了规则。
脱离
如果 SDV 报告了一个或多个缺陷,请单击缺陷链接,使用静态驱动程序验证程序报告查看错误跟踪。
不适用
SDV 测试了驱动程序是否违反规则,但驱动程序不支持分析所需的入口点,或者驱动程序没有调用规则监控的函数。
如果规则监控函数调用中的某个参数(通常是资源指针),而驱动程序没有调用函数或没有引用该参数,则规则不适用于驱动程序。
如果驱动程序确实指定了入口点,并且确实调用了规则监控的函数,那么这一结果可能表明 SDV 没有找到或没有正确解释入口点。 要确认是否出现了这种情况,请检查 Sdv-map.h 文件,必要时进行更正。 有关此步骤的信息,请参阅扫描驱动程序。
有关每条规则的详细信息,请参阅静态驱动程序验证程序规则参考资料。
要进一步检查驱动程序,请使用不同的规则进行验证。
超时值
SDV 停止验证规则,因为它超过了验证每条规则的时间限制。 时间限制在静态驱动程序验证程序选项文件中设置,或在配置选项卡的“最长时间”字段中设置。
超时被视为无结果。 这并不表示驱动程序出错。 如果 SDV 报告超时,请延长允许验证的时间(sdv-default.xmlfile 中的 SDV_SlamConfig_Timeout 值)并再次运行验证。
已完成(属性)
SDV 为指定的驱动程序运行驱动程序属性规则。 驱动程序属性规则检查驱动程序的能力或支持的功能,是进一步分析的前奏。 例如,驱动程序属性规则 CancelRoutine会检查 WDM 驱动程序是否注册了取消例程。 如果未检测到取消例程,则不适用特定的 WDM 规则。 这意味着驾驶员属性没有得到满足。
满意(属性)
SDV 为指定的驱动程序运行驱动程序属性规则。 驱动程序属性规则检查驱动程序的能力或支持的功能,是进一步分析的前奏。 例如,驱动程序属性规则 CancelRoutine会检查 WDM 驱动程序是否注册了取消例程。 如果检测到取消例程,则适用特定的 WDM 规则。 这意味着满足了驱动程序属性
超出空间
SDV 因超出验证规则的内存限制而停止验证的规则数量。 内存限制在静态驱动程序验证程序选项文件 (sdv-default.xml) 中设置。
超出空间视为不确定的结果。 如果 SDV 报告超出空间,请扩展分配给验证的空间(sdv-default.xml 文件中的 SDV_SlamConfig_Spaceout 值)并再次运行验证。
其他
SDV 遇到无法恢复的内部错误的次数。 有关错误和调试的更多信息,请参见静态驱动程序验证程序错误消息页面。