DF - PNP Rebalance Fail Restart Device Test (Reliability)

As with the removal test, the test application attempts to add an upper filter to the target device stack and then restart the device stack by using SetupDiCallClassInstaller with DIF_PROPERTYCHANGE. If this attempt is not successful (that is, if someone on the target device stack failed the query-remove IRP), the test restarts the computer to test rebalance.

This test initiates a rebalance but when the filter driver gets the start after the rebalance, it deliberately fails it-which causes the surprise removal IRP followed by Removal IRP.

First, it starts the rebalance procedure and makes sure that the driver gets a stop and a start by generating fake resource requirement for a device which does not consume any resources.

  • IRP_MN_QUERY_STOP_DEVICE (assuming this IRP is passed by all the drivers. The test already covered the case where this IRP is failed.)
  • IRP_MN_QUERY_RESOURCE_REQUIREMENTS
  • IRP_MN_FILTER_RESOURCE_REQUIREMENTS (If the actual resource requirement are null, filter assign fake resource requirement, so there is a stop and a start.)
  • IRP_MN_STOP_DEVICE
  • IRP_MN_START_DEVICE (The filter fails this IRP while going up. This action causes the surprise remove IRP.)
  • IRP_MN_SURPRISE_REMOVAL
  • IRP_MN_REMOVE

After the rebalance test is complete, the device will be uninstalled and reenumerated, also removing the filter driver from the stack.

  • Test binary: Devfund_PnPDTest.dll
  • Test method: PNPTryStopDeviceAndFailRestart

The Disable Enhanced Device Testing (EDT) Support test uninstalls the test filter driver (msdmfilt.sys) as an upper filter on devices specified using the DQ parameter. This test filter gets installed as part of running tests in this test category

  • Test binary: Devfund_PnPDTest.dll
  • Test method: DisableEnhancedDeviceTestingSupport

Test details

   
Specifications
  • Device.DevFund.Reliability.BasicReliabilityAndPerformance
  • Device.DevFund.Reliability.PnPIRPs
  • Device.DevFund.DriverFramework.KMDF.Reliability
  • Device.DevFund.DriverFramework.UMDF.Reliability
Platforms
  • Windows 10, client editions (x86)
  • Windows 10, client editions (x64)
  • Windows Server 2016 (x64)
  • Windows 10, client editions (Arm64)
  • Windows 10, mobile edition (Arm)
  • Windows 10, mobile edition (Arm64)
Supported Releases
  • Windows 10
  • Windows 10, version 1511
  • Windows 10, version 1607
  • Windows 10, version 1703
  • Windows 10, version 1709
  • Windows 10, version 1803
  • Windows 10, version 1809
  • Windows 10, version 1903
  • Next update to Windows 10
Expected run time (in minutes) 8
Category Scenario
Timeout (in minutes) 210
Requires reboot false
Requires special configuration true
Type automatic

 

Additional documentation

Tests in this feature area might have additional documentation, including prerequisites, setup, and troubleshooting information, that can be found in the following topic(s):

Running the test

Before you run the test, complete the test setup as described in the test requirements: Device.Fundamentals Reliability Testing Prerequisites.

Troubleshooting

For generic troubleshooting of HLK test failures, see Troubleshooting Windows HLK Test Failures.

For troubleshooting information specific to the Device Fundamentals tests in the HLK and WDK, see Device.DevFund additional documentation.

More information

Parameters

Parameter name Parameter description
DQ A WDTF SDEL query that is used to identify the target device(s) - https://go.microsoft.com/fwlink/?LinkId=232678
Wpa2PskAesSsid Required ONLY if DUT or one of its child devices is a WiFi adapter. Please provide SSID of a WPA2 AES WiFi network that the test can use to test the WiFi adapter. The default is 'kitstestssid'.
Wpa2PskPassword Required ONLY if DUT or one of its child devices is a WiFi adapter. Please provide password of the WPA2 AES WiFi network specified using the Wpa2PskAesSsid parameter. The default is 'password'.
WDTFREMOTESYSTEM Required ONLY if DUT or one of its child devices is a wired NIC that doesn't have an IPv6 gateway address. If determined to be required, please provide an IPv6 address that the test NIC can ping to test network I/O. Eg: fe80::78b6:810:9c12:46cd
DriverVerifierAdditionalDrivers Additional drivers that should have Driver Verifier enabled
DriverVerifierExcludedFlags Placeholder for Driver Verifier flags that may be manually excluded for the test run
MultiDeviceHardwareIdSdelQueryHardwareID Multi Device SDEL
MultiDeviceInstanceIdSdelWDKDeviceID Device id of DUT
DriverVerifierCustomizeConfiguration Specifies that this test may want to automatically update Driver Verifier settings
TestCycles Number of cycles to run the test for.
DoSimpleIO True or False. Runs SimpleIO (if found) on test devices before and after performing PNP operations.
IOPeriod Time period in minutes to run SimpleIO (if found).
DoConcurrentIO True or False. Uses WDTF concurrent IO interface to send I/O requests to target device stacks while performing PNP operations.