DF - PNP Rebalance Request New Resources Device Test (Development and Integration)
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 and also manipulates the resource requirement of the device to maximize the chances that actually new resources are allocated to the device. This option also helps a device with no resources to actually go through the complete rebalance procedure:
First the simple rebalance is started, causing the following IRPs:
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. In response to this IRP, while going up, filter driver takes action based on whether the device consumes any resources or not:
- If the device has no resource requirement, filter assigns a fake resource.
- If the device has a resource requirement, it tries to restructure the resource requirement list in such a way that maximizes the probability of changing the current assignment. For example, if a device needs 2 bytes of memory anywhere between 00 to FF and currently is assigned 3A-3B, modify such that the new resource requirement (in order of preference) looks like 00-39 or 3C-FF or 3A-3B. Similarly if the device resource requirement list has any alternate requirements, it will change their order so the alternate requirement comes earlier in the list.
Now the device should always complete the rebalance procedure.
IRP_MN_STOP_DEVICE
IRP_MN_START_DEVICE (The new allocated resources. If fake requirements were created, mask the new resources from the actual drivers.)
- Test binary: Devfund_PnPDTest.dll
- Test method: PNPTryStopDeviceRequestNewResourcesAndRestartDevice
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 |
|
Platforms |
|
Supported Releases |
|
Expected run time (in minutes) | 3 |
Category | Scenario |
Timeout (in minutes) | 45 |
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. |