如何选择和配置设备基本测试

Windows 8 的 WDK 提供驱动程序测试框架,该框架包括称为设备基本测试的一系列测试。设备基本测试是 Microsoft 在内部使用的测试(用于测试 Windows 和 WDK 附带的驱动程序和驱动程序示例)以及在外部作为 Windows 硬件认证计划的一部分使用的测试集合。 可以从开发环境运行这些测试。当运行这些测试时,可以使用与 Windows 认证测试所用参数相同的参数,也可以根据你的测试和调试需求来配置和自定义运行时参数。

让设备基本测试发挥最大效用

要让设备基本测试发挥最大效用,则默认的 I/O 插件必须支持你的设备。 要查看是否支持你的设备类型以及确定是否有进行测试的具体要求,请参阅提供的 WDTF Simple I/O 插件。设备基本测试还包括一个实用工具,你可以使用该实用工具来测试你的设备,以查看是否支持该设备。如果不支持你的设备,那么你可以创建一个 WDTF 简单 I/O 插件。在 Visual Studio 中。有关详细信息,请参阅如何使用 WDTF 简单 I/O 操作插件为设备自定义 I/O

关于设备基本测试

WDK 在两个配置(即,“基本”和“认证”)中提供设备基本测试。在这两个配置中,你可以编辑测试参数以改变测试的长度、要执行的测试周期数量以及其他测试参数,具体情况取决于你想如何测试目标设备或驱动程序。“基本”配置适用于常规的驱动程序和设备测试和调试。可以在开发周期的早期使用“基本”配置,也可以在整个开发周期期间都使用“基本”配置。“基本”配置中的测试与 Windows 认证测试使用相同的设置,但运行时间较短。在“认证”配置中,测试与 Windows 认证测试使用相同的设置。使用“认证”配置可验证你的设备或驱动程序是否已准备好进行 Windows 硬件认证计划测试。

设备基本测试包含以下类别的测试。

设置运行时测试参数

你可以编辑很多设备基本测试的运行时参数。 在“驱动程序测试组”窗口中,测试名称旁边的箭头 (») 表示该测试包含可以更改的参数。 单击该箭头 (») 可显示运行时参数。

其中一个最有用的参数是 DQ,该参数指定要测试的目标设备。默认值 (IsDevice) 测试目标计算机上的所有设备。 DQ 参数带有一个 WDTF SDEL 查询,该查询标识目标设备。 你可以指定特定设备以便进行测试,例如:

DeviceID=’USB\ROOT_HUB\4&1CD5D022&0’ 只选择具有指定 DeviceID 的测试设备。

有关 DQ 及其他运行时参数的详细信息,请参阅设备基本测试参数。

设备基本测试参数

参数 描述

DQ

标识应该用于测试的设备。DQ 参数带有一个 WDTF SDEL 查询,该查询标识目标设备。该查询非常灵活,可用来表示任意数量的设备,从单个设备到系统中的所有设备。

常见示例:

测试随特定 INF 文件一起安装的所有设备:

INF::FileName=INF_File_Name

例如,INF::OriginalInfFileName='%InfFileName%'

这是默认值。

测试具有特定设备 Id 的设备:

DeviceId=’DeviceId

例如,DeviceID=’USB\ROOT_HUB\4&1CD5D022&0’

测试具有特定接口的设备:

Interfaces::InterfaceGUID

测试具有特定驱动器号的设备:

Volume::DriverLetter=’DriveLetter

例如,Volume::DriverLetter=’c:\’

测试具有特定驱动程序的设备:

DriverBinaryNames=mydriver.sys

测试特定设备类别的所有设备:

例如,Class=CDROM 将测试 CDROM 类别的所有设备。

例如,ClassGUID= {36fc9e60-c465-11cf-8056-444553540000} 将测试其类别 GUID 与指定的 GUID 匹配的所有设备。在本例中,GUID 适用于 USB 类别。

DoPoolCheck

True 或 False。通过使用池标记和 lookaside 列表监视驱动程序对分页和未分页系统内存池的使用。该选项还监视处理的异常数量的更改(可能会指示处理异常时发生的错误)。

ChangeBufferProtectionFlags

True 或 False。更改传递给测试设备的缓冲区的内存保护标志。内存保护标志在没有访问权限、只读权限以及带有页面保护的只读权限之间交替。

DoSimpleIO

True 或 False。在执行 PNP 操作前后,在测试设备上执行 SimpleI/O(如果找到)。

DoConcurrentIO

True 或 False。使用 WDTF 并发 I/O 接口在执行 PnP 操作的同时向目标设备堆栈发送 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

指定 ping pong 周期(以分钟为单位);处理器在高 (HPU) 和低 (LPU) 处理器利用率级别之间交替的时间。

ResumeDelay

计算机从休眠模式恢复后到下一个 I/O 周期开始前的延迟时间(以秒为单位)。若要允许设备恢复其工作状态(续订网卡的 IP 地址等),必须使用延迟时间。

TestCycles

指定要执行的测试循环(迭代)数量。

WDTFREMOTESYSTEM

仅当设备处于测试状态或者它的子设备之一是没有 IPv6 网关地址的有线网络适配器时才需要此参数。如果你的网络上需要此参数,则必须提供测试网络适配器可以对测试网络执行 ping 操作的 IPv6 地址。

示例:fe80::78b6:810:9c12:46cd

Wpa2PskAesSsid

仅当设备处于测试状态或者它的子设备之一是 WiFi 适配器时才需要此参数。提供该测试可用来测试 WiFi 适配器的 WPA2 AES WiFi 网络的 SSID。

默认值:kitstestssid

Wpa2PskPassword

仅当设备处于测试状态或者它的子设备之一是 WiFi 适配器时才需要此参数。提供通过使用 Wpa2PskAesSsid 参数指定的 WPA2 AES WiFi 网络的密码。

默认值:password

 

实用工具测试

测试 描述

显示具有 WDTF 简单 I/O 插件的设备

参数:

显示启用了驱动程序验证程序的设备

参数:

显示设备

参数:

 

驱动程序验证程序

测试 描述

禁用驱动程序验证程序

在测试计算机上禁用驱动程序验证程序

参数:

启用驱动程序验证程序

你可以使用此测试在测试计算机上为设备的所有驱动程序启用驱动程序验证程序

参数:-— 请参阅驱动程序验证程序选项

 

相关主题

如何使用 Visual Studio 在运行时测试驱动程序

设备基本测试

提供的 WDTF Simple I/O 插件

如何使用 WDTF 简单 I/O 操作插件为设备自定义 I/O