DF - PNP Remove Device Test (Reliability)
This test uses the EDT filter driver to send causes IRP_MN_QUERY_REMOVE_DEVICE and IRP_MN_REMOVE_DEVICE to be sent to target device stacks.
The test attempts to install its upper-filter driver on the target device stack. This attempt results in a query-remove IRP.
If this query-remove IRP fails, the test restarts the computer to get the filter driver onto the device stack. If the remove request is not vetoed, the device stack will be removed and restarted with the filter driver on the device stack.
The test, by using setup APIs, causes a query-remove IRP to be sent to the device stack. The filter driver fails this remove request, so a cancel-remove IRP is sent. The filter driver will assert that the cancel-remove was successful.
Next, the test application calls the appropriate class installer and any registered co-installers to disable or enable and remove or reenumerate the device (this tests the class and co-installers handling of DIF_PROPERTYCHANGE with DICS_DISABLE, DICS_ENABLE, and DICS_PROPCHANGE). When receiving IRP_MN_REMOVE_DEVICE, the filter driver will assert that the lower drivers completed it successfully.
Each of these steps involves a preliminary remove request. If that request is vetoed, the device will not be removed. You can choose to veto a remove request when appropriate, such as while streaming video on a USB camera or if the target device is in the boot or paging path. Remember that simply failing all remove requests is generally not good practice. Failing all remove requests will not guarantee that driver will never receive a remove because a remove IRP will still be issued after a surprise removal, or if anyone in the device stack fails a start IRP.
- Test binary: Devfund_PnPDTest.dll
- Test method: PNPRemoveAndRestartDevice
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) | 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. |