DF - 模糊零长度缓冲区 IOCTL 测试(可靠性)

在零长度缓冲区测试期间,模糊测试会发出一系列对 DeviceIoControl 函数的调用,其中的输入和/或输出缓冲区长度为 0。 该测试通过使用不同的函数代码、设备类型、数据传输方法和访问要求,生成不同的 I/O 控制代码。 有关 I/O 控制代码的内容的信息,请参阅定义 I/O 控制代码

为了测试驱动程序对无效缓冲区指针的处理,这些用户模式调用中的缓冲区指针指定内核虚拟地址空间中的高位地址,例如 0xFFFFFC00)。

模糊测试对基本和其他开放性测试期间打开的所有设备执行零长度缓冲区测试。 可以通过以下方式自定义此测试:使用 MinFunctionCode 和 MaxFunctionCode 命令参数指定调用中使用的 IOCTL 函数代码的范围,并使用 MinDeviceType 和 MaxDeviceType 指定在调用中使用的设备类型的范围。

  • 测试二进制文件:Devfund_FuzzTest.dll
  • 测试方法:DoZeroLengthBufferIOCTLTest

测试详细信息

   
规范
  • Device.DevFund.Reliability.BasicReliabilityAndPerformance
  • Device.DevFund.Reliability.BasicSecurity
  • Device.DevFund.DriverFramework.KMDF.Reliability
  • Device.DevFund.DriverFramework.UMDF.Reliability
平台
  • Windows 10,客户端版本 (x86)
  • Windows 10,客户端版本 (x64)
  • Windows Server 2016 (x64)
  • Windows 10,客户端版本 (Arm64)
  • Windows 10,移动版本 (Arm)
  • Windows 10,移动版本 (Arm64)
支持的版本
  • Windows 10
  • Windows 10 版本 1511
  • Windows 10 版本 1607
  • Windows 10 版本 1703
  • Windows 10 版本 1709
  • Windows 10 版本 1803
  • Windows 10 版本 1809
  • Windows 10 版本 1903
  • Windows 10 的下一次更新
预计运行时间(以分钟为单位) 15
类别 方案
超时(以分钟为单位) 180
需要重启 false
需要特殊配置
类型 automatic

 

其他文档

此功能区域中的测试可能会有其他文档,包括先决条件、设置和故障排除信息,这些内容可在以下主题中找到:

运行测试

在运行测试之前,请按照如下测试要求中所述完成测试设置:Device.Fundamentals 可靠性测试先决条件

故障排除

有关 HLK 测试失败的常规故障排除,请参阅排查 Windows HLK 测试失败问题

有关 HLK 和 WDK 中特定于设备基础功能测试的故障排除信息,请参阅 Device.DevFund 附加文档

更多信息

参数

参数名称 参数说明
DQ 一个 WDTF SDEL 查询,用于标识目标设备 - https://go.microsoft.com/fwlink/?LinkId=232678
Wpa2PskAesSsid 只有当 DUT 或它的一个子设备是 WiFi 适配器时才需要。 请提供测试可用其测试 WiFi 适配器的 WPA2 AES WiFi 网络 SSID。 默认值为“kitstestssid”。
Wpa2PskPassword 只有当 DUT 或它的一个子设备是 WiFi 适配器时才需要。 请提供由使用 Wpa2PskAesSsid 参数指定的 WPA2 AES WiFi 网络的密码。 默认值为“password”。
ChangeBufferProtectionFlags True 或 False。 更改传递至已测试设备的缓冲区的内存保护标志。 此内存保护标志在无访问权限、只读和具有页防护的只读之间变化。
Impersonate True 或 False。 以非管理用户身份运行测试。
FillZeroPageWithNull True 或 False。 映射零页并使用 NULL 值进行填充。 此测试确定在取消指针引用之前未验证指针引用的驱动程序。
DoPoolCheck True 或 False。 通过使用池标记和旁视列表监控驱动程序对分页和非分页系统内存池的使用情况。 此选项还可监控已处理的异常数量变化,这可能指示在异常处理时出错。
DoSync True 或 False。 此外,还会在 SYNC 模式下打开设备句柄 (FILE_SYNCHRONOUS_IO_ALERT)。 跳过随机读取和写入操作。
TestCycles 测试周期数。
DriverVerifierAdditionalDrivers 应启用驱动程序验证程序的其他驱动程序
DriverVerifierExcludedFlags 可以手动排除以运行测试的驱动程序验证程序标志的占位符
WDKDeviceID 受测设备的设备 ID
QueryHardwareID 受测设备的硬件 ID
WDTFREMOTESYSTEM 只有当 DUT 或它的一个子设备是没有 IPv6 网关地址的有线 NIC 时,才需要。 如果确定为必需,请提供测试 NIC 可以 ping 以测试网络 I/O 的 IPv6 地址。 例如:fe80::78b6:810:9c12:46cd
DriverVerifierCustomizeConfiguration 指定此测试可能需要自动更新驱动程序验证程序设置
MinDeviceType 指定 IOCTL 中的 DeviceType 字段的最小值。 可能的最小值为 0。 使用 -1 进行自动类型检测(首选)。
MaxDeviceType 指定 IOCTL 中的 DeviceType 字段的最大值。 可能的最大值是 65535。 使用 -1 进行自动类型检测(首选)。
MinFunctionCode 指定 IOCTL 中的 FunctionCode 字段的最小值。 可能的最小值为 0。
MaxFunctionCode 指定 IOCTL 中的 FunctionCode 字段的最大值。 可能的最大值是 4095。