如何选择和配置设备基础功能测试
适用于 Windows 8 的 WDK 提供了一个驱动程序测试框架,其中包括一组设备基础功能测试。 设备基础功能测试是在 Microsoft 内部用于测试 Windows 和 WDK 随附的驱动程序和驱动程序样本以及在外部作为 Windows 硬件认证计划一部分的一系列测试。 可以在开发环境中运行测试。 运行测试时,可以使用与 Windows 认证测试所使用的相同参数,或者可以根据测试和调试需要配置和自定义运行时参数。
充分利用设备基础功能测试
若要从设备基础测试中获得最大优势,设备必须受默认 I/O 插件支持。若要查看设备类型是否受支持并确定是否有特定测试要求,请参阅 提供的 WDTF 简单 I/O 插件。设备基础测试还包括一个实用工具,可用于测试设备,以查看它是否受支持。 如果设备不受支持,则可以在 Visual Studio 中 创建一个 WDTF 简单 I/O 插件。 有关详细信息,请参阅 How to customize I/O for your device using the WDTF Simple I/O Action Plug-in(如何使用 WDTF 简单 I/O 操作插件为你的设备自定义 I/O)。
关于设备基础功能测试
WDK 提供有两种配置的设备基础功能测试:基本和认证。 在两种配置下,都可以通过编辑测试参数来调整测试长度、要执行的测试周期数以及其他测试参数,具体取决于需要测试的目标设备或驱动程序。 基本配置适用于通用驱动程序和设备的测试和调试。 在开发周期早期及整个过程中均可使用基本配置。 基本配置下的测试所使用的设置与 Windows 认证测试使用的设置相同,但前者的运行时更短。 在认证配置下,测试使用的设置与 Windows 认证测试使用的设置完全相同。 使用认证配置来验证设备或驱动程序是否做好 Windows 硬件认证计划的准备。
设备基础功能测试包括以下类别的测试。
- 混沌测试(设备基础功能)
- 覆盖范围测试(设备基础功能)
- CPU 压力测试(设备基础功能)
- 驱动程序安装测试(设备基础功能)
- I/O 测试(设备基础功能)
- 渗透压力测试(设备基础功能)
- PNP 测试(设备基础功能)
- 重新启动测试(设备基础功能)
- 睡眠测试(设备基础功能)
- Utility
- 驱动程序验证程序
设置运行时测试参数
可以编辑多个设备基础功能测试的运行时参数。 在“驱动程序测试组”窗口中,测试名称旁边的箭头 (») 指示你可以更改此测试参数。 选择箭头 (») 即可显示运行时参数。
其中一个最常用的参数是 DQ,用于指定要测试的目标设备。 默认值 (IsDevice) 将测试目标计算机上的所有设备。 DQ 参数将通过 WDTF SDEL 查询来确定目标设备。 可以指定特定测试设备,如:
DeviceID='USB\ROOT_HUB\4&1CD5D022&0' 仅选择使用指定的 DeviceID 进行测试的设备。
有关 DQ 及其他运行时参数的详细信息,请参阅设备基础功能测试参数。
设备基础功能测试参数
参数 | 说明 |
---|---|
DQ |
确定应当用于测试的设备。 DQ 参数将通过 WDTFSDEL 查询来确定目标设备。 此查询非常灵活,可用于表示任何数量的设备,从单个设备到系统中的所有设备。 常见示例:
|
DoPoolCheck |
True 或 False。 通过使用池标记和旁视列表监控驱动程序对分页和非分页系统内存池的使用情况。 此选项还可监控已处理的异常数量变化,这可能指示在异常处理时出错。 |
ChangeBufferProtectionFlags |
True 或 False。 更改传递至已测试设备的缓冲区的内存保护标志。 此内存保护标志在无访问权限、只读和具有页防护的只读之间变化。 |
DoSimpleIO |
True 或 False。 在执行 PNP 操作之前和之后,在测试设备上运行简单 I/O(如发现)。 |
DoConcurrentIO |
True 或 False。 执行 PnP 操作时,使用 WDTF 并发 I/O 接口向目标设备堆栈发送 I/O 请求。 |
FillZeroPageWithNull |
True 或 False。 映射零页并使用 NULL 值进行填充。 此测试用于确定在取消调用指针之前无法验证指针的驱动程序。 |
FuzzTestPeriod |
模糊测试周期(分钟)。 |
HPU |
指定高处理器使用率百分比。 |
Impersonate |
True 或 False。 以用户身份(无管理员权限)运行测试。 |
IOPeriod |
指定 I/O 周期(分钟)。 |
IOType |
指定 I/O 压力测试的类型:SimpleIOStressEx 或 SimpleIOStressProc(单独进程中的 I/O)。 |
LPU |
指定低处理器使用率百分比。 |
MaxInBuffer |
指定测试传递至 FSCTL(或 IOCTL,对于 IOCTL 测试)中的驱动程序的输入缓冲区最大大小(字节)。 |
MinInBuffer |
指定测试传递至 FSCTL(或 IOCTL,对于 IOCTL 测试)中的驱动程序的输入缓冲区最小大小(字节)。 |
MaxOutBuffer |
指定测试传递至 FSCTL(或 IOCTL,对于 IOCTL 测试)中的驱动程序的输出缓冲区最大大小(字节)。 |
MinOutBuffer |
指定测试传递至 FSCTL(或 IOCTL,对于 IOCTL 测试)中的驱动程序的输出缓冲区最小大小(字节)。 |
MaxRandomCalls |
指定测试发出的最大调用次数。 |
MaxTailoredCalls |
指定在定制的随机测试中测试发出的最大调用次数。 |
MaxDeviceType |
指定 FSCTL(或 IOCTL,对于 IOCTL 测试)中的 DeviceType 字段的最大值。 可能的最大值是 65535。 |
MinDeviceType |
指定 FSCTL(或 IOCTL,对于 IOCTL 测试)中的 DeviceType 字段的最小值。 可能的最小值为 0。 |
MaxFunctionCode |
指定 FSCTL(或 IOCTL,对于 IOCTL 测试)中的 FunctionCode 字段的最大值。 可能的最大值是 4095。 |
MinFunctionCode |
指定 FSCTL(或 IOCTL,对于 IOCTL 测试)中的 FunctionCode 字段的最小值。 可能的最小值为 0。 |
PU |
指定处理器使用率百分比 |
PingPongPeriod |
指定乒乓周期(分钟);它是指处理器在高 (HPU) 和低 (LPU) 处理器使用率水平之间变化的时间。 |
ResumeDelay |
计算机从睡眠模式恢复之后与下一个 I/O 周期开始之前的延迟时间(秒)。 此延迟时间对于让设备恢复其工作状态(续订网络卡的 IP 地址等)来说是必要的。 |
TestCycles |
指定要执行的测试周期数(迭代数)。 |
WDTFREMOTESYSTEM |
仅当进行测试的设备或其子设备之一为没有 IPv6 网关地址的有线网络适配器时才需要使用此参数。 如果网络需要使用此参数,则必须提供一个测试网络适配器可用其连接至测试网络的 IPv6 地址。 示例:fe80::78b6:810:9c12:46cd |
Wpa2PskAesSsid |
仅当进行测试的设备或其子设备之一为 WLAN 适配器时才需要使用此参数。 提供测试可用其测试 WLAN 适配器的 WPA2 AES WLAN 网络 SSID。 默认值:kitstestssid |
Wpa2PskPassword |
仅当进行测试的设备或其子设备之一为 WLAN 适配器时才需要使用此参数。 提供由使用 Wpa2PskAesSsid 参数指定的 WPA2 AES WLAN 网络的密码。 默认值:password |
实用程序测试
测试 | 说明 |
---|---|
显示具有 WDTF 简单 I/O 插件的设备 |
参数: 无 |
显示已启用驱动程序验证程序的设备 |
参数: 无 |
显示设备 |
参数: 无 |
驱动程序验证程序
测试 | 说明 |
---|---|
禁用驱动程序验证程序 |
禁用测试计算机上的驱动程序验证程序。 参数: 无 |
启用驱动程序验证程序 |
可以使用此测试在测试计算机上为设备的所有驱动程序启用驱动程序验证程序。 参数: - 请参阅驱动程序验证程序选项。 |
相关主题
- 如何在运行时使用 Visual Studio 测试驱动程序
- 设备基础功能测试
- Provided WDTF Simple I/O plug-ins(提供的 WDTF 简单 I/O 插件)
- How to customize I/O for your device using the WDTF Simple I/O Action Plug-in(如何使用 WDTF 简单 I/O 操作插件为设备自定义 I/O)