适用于 Windows 8 的 WDK 提供了一个驱动程序测试框架,其中包括一组名为 Device Fundamentals 测试的测试。 设备基础测试是一系列测试,这些测试在内部Microsoft用于测试随 Windows 和 WDK 附带的驱动程序和驱动程序示例,以及外部作为 Windows 硬件认证计划的一部分。 可以从开发环境运行测试。 运行测试时,可以使用用于 Windows 认证测试的相同参数,也可以根据测试和调试需求配置和自定义运行时参数。
充分利用设备基础功能测试
若要从设备基础测试中获得最大优势,设备必须受默认 I/O 插件支持。若要查看设备类型是否受支持并确定是否有特定测试要求,请参阅 提供的 WDTF 简单 I/O 插件。设备基础测试还包括一个实用工具,可用于测试设备,以查看它是否受支持。 如果设备不受支持,可以创建 WDTF 简单 I/O 插件。 创建一个 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 认证计划的测试。
设备基础测试包括以下类别中的测试。
- CHAOS 测试 (设备基础知识)
- 覆盖率测试(设备基础知识)
- CPU压力测试(设备基础)
- 驱动程序安装测试 (设备基础知识)
- I/O 测试(设备基础知识)
- 渗透测试 (设备基础知识)
- PNP 测试 (设备基础知识)
- 重新启动测试 (设备基础知识)
- 睡眠测试 (设备基础知识)
- 实用工具
- 驱动程序验证程序
设置运行时测试参数
可以编辑许多设备基础测试的运行时参数。 在“驱动程序测试组”窗口中,测试名称旁边的箭头(»)指示测试具有可以更改的参数。 选择箭头(»)以显示运行时参数。
最有用的参数之一是 DQ,它指定要测试的目标设备。 默认值 (IsDevice) 测试目标计算机上的所有设备。 DQ 参数采用用于标识目标设备的 WDTFSDEL 查询。 可以指定用于测试的特定设备,例如:
DeviceID='USB\ROOT_HUB\4&1CD5D022&0' 仅选择使用指定的 DeviceID 进行测试的设备。
有关 DQ 和其他运行时参数的详细信息,请参阅 Device Fundamentals 测试参数。
设备基础知识测试参数
参数 | DESCRIPTION |
---|---|
DQ |
识别用于测试的设备。 DQ 参数采用用于标识目标设备的 WDTFSDEL 查询。 此查询非常灵活,可用于表达任意数量的设备,从单个设备到系统中的所有设备。 常见示例:
|
DoPoolCheck |
对或错。 通过使用池标记和旁视列表监控驱动程序对分页和非分页系统内存池的使用情况。 此选项还会监视所处理的异常数的更改,这可能指示异常处理中的错误。 |
ChangeBufferProtectionFlags |
对或错。 更改传递给测试设备的缓冲区的内存保护标志。 此内存保护标志在无访问权限、只读和具有页防护的只读之间变化。 |
DoSimpleIO |
对或错。 在执行 PNP 操作之前和之后,在测试设备上运行简单 I/O(如发现)。 |
DoConcurrentIO |
对或错。 在执行 PnP作时,使用 WDTF 并发 I/O 接口将 I/O 请求发送到目标设备堆栈。 |
FillZeroPageWithNull |
对或错。 将零页映射,并用空值填充。 此测试用于识别那些在解除指针引用前没有验证指针引用的驱动程序。 |
FuzzTestPeriod |
模糊测试周期(分钟)。 |
HPU |
指定高处理器利用率百分比。 |
模拟 |
对或错。 以没有管理员权限的用户身份运行测试。 |
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 网关地址的有线网络适配器时,才需要此参数。 如果网络上需要此参数,则必须提供测试网络适配器可以 ping 以测试网络的 IPv6 地址。 示例: fe80::78b6:810:9c12:46cd |
Wpa2PskAesSsid |
仅当受测试的设备或其子设备之一是 WiFi 适配器时,才需要此参数。 提供测试可用于测试 WiFi 适配器的 WPA2 AES WiFi 网络的 SSID。 默认值: kitstestssid |
Wpa2PskPassword |
仅当受测试的设备或其子设备之一是 WiFi 适配器时,才需要此参数。 提供使用 Wpa2PskAesSsid 参数指定的 WPA2 AES WiFi 网络的密码。 默认值: 密码 |
实用工具测试
测试 | DESCRIPTION |
---|---|
显示具有 WDTF 简单 I/O 插件的设备 |
参数: 没有 |
显示启用了驱动程序验证程序的设备 |
参数: 没有 |
显示设备 |
参数: 没有 |
驱动验证工具
测试 | DESCRIPTION |
---|---|
禁用驱动程序验证程序 |
在测试计算机上禁用 驱动程序验证程序 。 参数: 没有 |
启用驱动程序验证程序 |
可以使用此测试为测试计算机上的设备(或设备)的所有驱动程序启用 驱动程序验证程序 。 参数: - 请参阅 驱动程序验证程序选项。 |