DF - PNP 删除设备测试(开发和集成)
此测试使用 EDT 筛选器驱动程序将 IRP_MN_QUERY_REMOVE_DEVICE 和 IRP_MN_REMOVE_DEVICE 发送到目标设备堆栈。
测试尝试在目标设备堆栈上安装其上层筛选器驱动程序。 此尝试会导致生成查询删除 IRP。
如果此查询删除 IRP 失败,测试会重启计算机,将筛选器驱动程序放到设备堆栈上。 如果未阻止删除请求,设备堆栈将被删除,然后使用设备堆栈上的筛选器驱动程序重启。
使用设置 API 进行测试会导致将查询删除 IRP 发送到设备堆栈。 筛选器驱动程序会使此删除请求失败,因此会发送取消删除 IRP。 筛选器驱动程序将断言取消删除已成功。
接下来,测试应用程序调用相应的类安装程序和任何已注册的共同安装程序来禁用或启用并删除或重新枚举设备(这会测试使用 DICS_DISABLE、DICS_ENABLE 和 DICS_PROPCHANGE 处理 DIF_PROPERTYCHANGE 的类和共同安装程序)。 收到 IRP_MN_REMOVE_DEVICE 时,筛选器驱动程序将断言下层驱动程序已成功完成。
上述每个步骤都涉及一个初步删除请求。 如果请求被阻止,将不会删除设备。 可以选择在适当的时候(例如,在 USB 相机上流式传输视频,或者目标设备位于启动或分页路径中时)来阻止删除请求。 请记住,不建议直接使所有删除请求失败。 即使所有删除请求失败,仍不能保证驱动程序永远不会收到删除,因为意外删除后,或者设备堆栈中的任何人使启动 IRP 失败时,仍将发出删除 IRP。
- 测试二进制文件:Devfund_PnPDTest.dll
- 测试方法:PNPRemoveAndRestartDevice
禁用增强设备测试 (EDT) 支持测试卸载测试筛选器驱动程序 (msdmfilt.sys) 作为使用 DQ 参数指定的设备的上层筛选器。 此测试筛选器作为在此测试类别中运行测试的一部分进行安装
- 测试二进制文件:Devfund_PnPDTest.dll
- 测试方法:DisableEnhancedDeviceTestingSupport
测试详细信息
规范 |
|
平台 |
|
支持的版本 |
|
预计运行时间(以分钟为单位) | 3 |
类别 | 方案 |
超时(以分钟为单位) | 45 |
需要重启 | 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”。 |
WDTFREMOTESYSTEM | 只有当 DUT 或它的一个子设备是没有 IPv6 网关地址的有线 NIC 时,才需要。 如果确定为必需,请提供测试 NIC 可以 ping 以测试网络 I/O 的 IPv6 地址。 例如:fe80::78b6:810:9c12:46cd |
DriverVerifierAdditionalDrivers | 应启用驱动程序验证程序的其他驱动程序 |
DriverVerifierExcludedFlags | 可以手动排除以运行测试的驱动程序验证程序标志的占位符 |
MultiDeviceHardwareIdSdelQueryHardwareID | 多设备 SDEL |
MultiDeviceInstanceIdSdelWDKDeviceID | DUT 的设备 ID |
DriverVerifierCustomizeConfiguration | 指定此测试可能需要自动更新驱动程序验证程序设置 |
TestCycles | 要运行测试的周期数。 |
DoSimpleIO | True 或 False。 在执行 PNP 操作之前和之后,在测试设备上运行 SimpleIO(如发现)。 |
IOPeriod | 运行 SimpleIO(如发现)的时间段(以分钟为单位)。 |
DoConcurrentIO | True 或 False。 执行 PNP 操作时,使用 WDTF 并发 IO 接口向目标设备堆栈发送 I/O 请求。 |