如何收集 IRP 覆盖范围数据

注意Windows 10不再需要驱动程序覆盖率工具包,并且安装程序也不再包含在 WDK 中。 若要执行Windows 10中所述的任务,请改用驱动程序验证器和IRP 日志记录

以下步骤介绍如何使用驱动程序覆盖率工具和驱动程序覆盖率筛选器驱动程序收集 I/O 请求数据包的覆盖率数据, (IRP) 。 这些工具在“覆盖范围”类别下作为 设备基础测试的一部分提供。

有关设置 WDK 和 Visual Studio 测试环境的信息,请参阅 如何使用 Visual Studio 在运行时测试驱动程序。 有关选择和配置测试和工具参数的信息,请参阅 如何选择和配置设备基础测试如何选择和配置设备基础测试

  1. 在测试计算机上安装 驱动程序覆盖率筛选器驱动程序

    • 若要在指定的设备上安装筛选器驱动程序并在) (启用 IRP 覆盖率,请运行“启用 IRP 覆盖率”数据收集 工具。 该工具作为 “设备基础测试”的一部分提供,位于“覆盖范围”下。

    • 若要在指定的设备上安装筛选器驱动程序并在) (启用 IRP 覆盖范围,请使用 DQ 参数指定要监视的设备 () 。

    • 若要将驱动程序覆盖率筛选器驱动程序安装为设备的上层筛选器驱动程序或低筛选器驱动程序, () 请使用 UpperFilter 参数。 有关覆盖率筛选器驱动程序以及如何安装驱动程序的指南,请参阅 驱动程序覆盖率筛选器驱动程序

    有关运行工具的信息,请参阅 如何在运行时使用 Visual Studio 测试驱动程序如何选择和配置设备基础测试

  2. 清除当前 IRP 覆盖率数据。

    在一个或多个设备上开始代码覆盖率测试之前,请先清除 驱动程序覆盖率筛选器驱动程序已收集的 IRP 覆盖率数据。 为此,请在测试计算机上运行 清除 IRP 覆盖率数据 工具。

  3. 重启测试计算机。

    在一个或多个设备上安装 驱动程序覆盖率筛选器驱动程序 后,请重启测试计算机以加载驱动程序覆盖率筛选器驱动程序并启动 IRP 覆盖范围。

  4. 验证 驱动程序覆盖率筛选器驱动程序 安装。

    重启测试计算机后,验证是否已安装筛选器驱动程序,以及是否为 IRP 覆盖范围启用了正确的设备。 为此,请在测试计算机上运行 为 IRP 覆盖率数据收集启用的显示设备 工具。

    Drvcov /D
    

    以下示例显示了此工具的示例输出:

    |------------------------------------------------------------------
    | List of devices we can get coverage data from.
    |------------------------------------------------------------------
    |  Device # : 1 
    |  Devnode #: 3884 Class:  USB Desc:  USB Root Hub
    |  Device ID: " USB\ROOT_HUB\4&413399C&0"
    |------------------------------------------------------------------
    | 1 device(s) found.
    |------------------------------------------------------------------
    
  5. 收集 IRP 覆盖率数据。

    现在可以 () 收集设备的 IRP 覆盖率数据。 首先在测试计算机上运行代码覆盖率测试。 运行完代码覆盖率测试后,可以查看 IRP 覆盖率报告。 为此,请在测试计算机上运行 显示收集的 IRP 覆盖率数据 工具。

    有关如何分析 IRP 覆盖率数据的信息,请参阅 如何分析 IRP 覆盖率数据

  6. 禁用 IRP 覆盖率并卸载 驱动程序覆盖率筛选器驱动程序

    完全执行代码覆盖率测试后,可以通过在测试计算机上运行 禁用 IRP 覆盖率数据收集工具来禁用 IRP 覆盖 所有设备。

    如果为 IRP 覆盖禁用了最后一台设备,则每当重新启动测试计算机时,筛选器驱动程序将不再加载。 但是,若要从内存中卸载筛选器驱动程序,必须重启测试计算机。