DF - 模糊随机 FSCTL 测试(可靠性)

在随机测试期间,模糊测试会颁发一系列 DeviceIoControl 函数的调用,其中函数代码、设备类型、数据传输方法和访问要求都是随机从指定值范围选择的。 调用包括具有有效和无效缓冲区指针和长度的输入和输出缓冲区,以及随机生成的内容。

模糊测试对基本开放性测试和其他开放性测试期间打开的所有设备执行随机测试。 可以使用以下参数来自定义此测试:

  • 使用 MinFunctionCode 和 MaxFunctionCode 指定调用中使用的 IOCTL 或 FSCTL 函数代码的范围
  • 使用 MinDeviceType 和 MaxDeviceType 指定调用中使用的设备类型的范围
  • 使用 SeedNumber 指定随机数字生成例程的种子数字。

模糊测试用于为测试生成随机数字的函数使用种子数字,即 random-number-generating 算法的起始数字。 若要重现测试条件,请使用种子数字参数来指定在原始测试试用中使用的种子数字。

定制随机测试是随机测试的一部分。 定制随机测试使用随机测试的结果来更详细地检查驱动程序对 FSCTL 请求的响应。 定制随机测试根据随机测试调用返回的状态来探测随机测试错过的区域和驱动程序未按预期响应的区域。

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

测试详细信息

   
规范
  • 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 指定 FSCTL 中的 FunctionCode 字段的最小值。 可能的最小值为 0。
MaxFunctionCode 指定 FSCTL 中的 FunctionCode 字段的最大值。 可能的最大值是 4095。
MinInBuffer 指定测试传递至 FSCTL 中的驱动程序的输入缓冲区最小大小(字节)。
MaxInBuffer 指定测试传递至 FSCTL 中的驱动程序的输入缓冲区最大大小(字节)。
MinOutBuffer 指定测试传递至 FSCTL 中的驱动程序的输出缓冲区最小大小(字节)。
MaxOutBuffer 指定测试传递至 FSCTL 中的驱动程序的输出缓冲区最大大小(字节)。
MaxRandomCalls 指定测试发出的最大调用次数。
MaxTailoredCalls 指定在定制的随机测试中测试发出的最大调用次数。
SeedNumber 指定用于生成随机 FSCTL 的种子数字。