HLK failure on windows 10 2004 when running PNP Stop (Rebalance) Device Test

Long Ma 25 Reputation points
2023-02-01T02:50:47.4+00:00

We have a software-only KMDF driver (initialized with WdfDriverInitNonPnpDriver) that fails the HLK "PNP Stop (Rebalance) Device Test" on Windows 10 version 2004. The log shows an error code on "PNP_VetoLegacyDevice", a few lines up is an error "Failed to open the EDT device," which pass by filter.

I'm wondering if there's an issue with a filter for Windows 10 version 2004 HLK tests, or whether there's something I need to change to pass those tests.

Here is the log:


Test Authoring and Execution Framework v10.43k for x64
Verify: IsTrue(m_Ev.SetVariableData(L"Wpa2PskAesSsid", m_Wpa2PskAesSsid))
Verify: IsTrue(m_Ev.SetVariableData(L"Wpa2PskPassword", m_Wpa2PskPassword))

One or more parameters required for this test were not passed in. This test accepts the following TAEF runtime parameters:

                                      DQ: An SDEL query that WDTF can use to find the devices to test.
                                      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.

Test execution will continue using default values for unspecified parameters.

About to log start telemetry data ...
Telemetry: Registering trace logging.
Telemetry: Creating new TelemetryRegistration.
Telemetry trace logging registration status: 0x0
Telemetry trace logging initialization status: True

StartGroup: PNPDTest::PNPTryStopDeviceAndFailRestart
Verify: SUCCEEDED(m_pWDTF.CoCreateInstance(__uuidof(WDTF2)))
WDTF_TARGET               :  - GetInterface("System")
WDTF_TARGET               :          Target: DOWIN10
WDTF_SYSTEM               :  SYSTEM_POWER_CAPABILITIES =
  Power Button    = YES
  Sleep Button    = NO
  Lid             = NO
  AoAc            = NO
  S1              = NO
  S2              = NO
  S3              = YES
  S4              = YES
  Hibernate       = YES
  S5              = YES
  Battery         = YES
  RTC Wake        = S4
WDTF_TARGET               :  - GetInterface("Support")
WDTF_TARGET               :          Target: DOWIN10
WDTF_SUPPORT              :  - SetSANPolicyToOnline
WDTF_TEST                 : Test parameter values:
WDTF_TEST                 : DQ:  IsDevice AND (DriverBinaryNames!='i8042prt.sys') AND (Class!=hdc) AND (Class!=scsiadapter) AND (DsmDevice!=TRUE) AND (DeviceID='ROOT\TESTGUARD\0000')
WDTF_TEST                 : TestCycles:  3
WDTF_TEST                 : DoSimpleIO:  True
WDTF_TEST                 : IOPeriod:  1
WDTF_TEST                 : DoConcurrentIO:  True
WDTF_TARGETS              :  - Query("IsDevice AND (DriverBinaryNames!='i8042prt.sys') AND (Class!=hdc) AND (Class!=scsiadapter) AND (DsmDevice!=TRUE) AND (DeviceID='ROOT\TESTGUARD\0000')")
WDTF_TARGETS              :          Target: TestGuardDevice ROOT\TESTGUARD\0000
WDTF_SUPPORT              :  - ClearSetupAPILogs()
WDTF_TARGETS              :  - Query("IsDevice AND (SemiUniqueTargetHardwareIdentifier='Root\apegw')")
WDTF_TARGETS              :          Target: TestGuardDevice ROOT\TESTGUARD\0000
WDTF_TEST                 : WARNING: The test is not enforcing that Driver Verifier is enabled.
WDTF_TEST                 : DV is enabled with Flag:=0x1209bb
WDTF_TEST                 : DV is successfully enabled for all drivers of this devnode(UniqueTargetName):=TestGuardDevice ROOT\TESTGUARD\0000
WDTF_TARGETS              :  - GetInterfacesIfExist("EDT")
WDTF_TARGETS              :          Target: TestGuardDevice ROOT\TESTGUARD\0000
Telemetry: [1 of 2] Driver name: msdmfilt.sys
Telemetry: [1 of 2] Driver version: 10.0.19041.1
Telemetry: [1 of 2] Driver package INF name: 0
Telemetry: [1 of 2] Driver package flight ID: 0
Telemetry: [1 of 2] Driver package submission ID: 0
Telemetry: [2 of 2] Driver name: apegw.sys
Telemetry: [2 of 2] Driver version: 1.0.0.17
Telemetry: [2 of 2] Driver package INF name: 0
Telemetry: [2 of 2] Driver package flight ID: 0
Telemetry: [2 of 2] Driver package submission ID: 0
WDTF_TEST                 : Starting PNPTryStopDeviceAndFailRestart test [1 of 3]
WDTF_TARGETS              :  - GetInterfacesIfExist("PNP")
WDTF_TARGETS              :          Target: TestGuardDevice ROOT\TESTGUARD\0000
WDTF_TEST                 : Querying for devices to test I/O on during the test
WDTF_TARGETS              :  - Query("IsDevice AND (DriverBinaryNames!='i8042prt.sys') AND (Class!=hdc) AND (Class!=scsiadapter) AND (DsmDevice!=TRUE) AND (DeviceID='ROOT\TESTGUARD\0000')")
WDTF_TARGETS              :          Target: TestGuardDevice ROOT\TESTGUARD\0000
WDTF_TARGETS              :  - GetRelations("below-or-self/","IsDevice AND (DriverBinaryNames!='i8042prt.sys') AND (Class!=hdc) AND (Class!=scsiadapter) AND (DsmDevice!=TRUE) AND (DeviceID='ROOT\TESTGUARD\0000')")
WDTF_TARGETS              :          Target: TestGuardDevice ROOT\TESTGUARD\0000
WDTF_TARGETS              :  - GetInterfacesIfExist("SimpleIOStressEx")
WDTF_SIMPLE_IO            :  - For Target:TestGuardDevice ROOT\TESTGUARD\0000  no Simple IO Interface was found.
WDTF_SIMPLE_IO_ANY      :  - The Generic Any SimpleIO plugin will be used to generate IO for Target: TestGuardDevice ROOT\TESTGUARD\0000
WDTF_SIMPLE_IO            :  - For Target:TestGuardDevice ROOT\TESTGUARD\0000  WDTF will use the ANY Simple IO Interface.
WDTF_TARGETS              :          Target: TestGuardDevice ROOT\TESTGUARD\0000
WDTF_SIMPLEIO_STRESS      :  - Start(TestGuardDevice ROOT\TESTGUARD\0000 )
WDTF_SIMPLE_IO            :  - Open(TestGuardDevice ROOT\TESTGUARD\0000 ) Try count 1
WDTF_SUPPORT              :  - WaitForMinutes : 1
WDTF_SIMPLE_IO            :  - PerformIO(TestGuardDevice ROOT\TESTGUARD\0000 ) Count 1
WDTF_SIMPLEIO_STRESS      :  - Stop(TestGuardDevice ROOT\TESTGUARD\0000 )
WDTF_SIMPLE_IO            :  - Close(TestGuardDevice ROOT\TESTGUARD\0000 )
WDTF_TARGETS              :  - GetInterfacesIfExist("ConcurrentIO")
WDTF_PNP                  :  - EDTTryStopDeviceFailRestart()
WDTF_PNP                  :          Target: TestGuardDevice ROOT\TESTGUARD\0000
WDTF_PNP                  :          Waiting for Target: TestGuardDevice ROOT\TESTGUARD\0000  to rebalance the test will try again in 5 seconds.
WDTF_PNP                  :          Waiting for Target: TestGuardDevice ROOT\TESTGUARD\0000  to rebalance the test will try again in 5 seconds.
WDTF_PNP                  :          Waiting for Target: TestGuardDevice ROOT\TESTGUARD\0000  to rebalance the test will try again in 5 seconds.
WDTF_PNP                  : Failed to open the EDT device m_EDTDevice.OpenDevice is returning error:-2147024894 for Target:TestGuardDevice ROOT\TESTGUARD\0000 .
WDTF_PNP                  :  - RestartDevice()
WDTF_PNP                  :          Target: TestGuardDevice ROOT\TESTGUARD\0000
Error: WDTF_PNP                  :          Result: Error : PNP_VetoLegacyDevice : Instance Path: ROOT\TESTGUARD\0000.
WDTF_PNP                  :          For Target: TestGuardDevice ROOT\TESTGUARD\0000  we will Rescan now.
WDTF_PNP                  :  - RescanParentDevice()   :  ( get status count:  1 )
WDTF_PNP                  :          Target: TestGuardDevice ROOT\TESTGUARD\0000
WDTF_SUPPORT              :  - WaitForSeconds : 15
WDTF_TARGETS              :  - GetInterfacesIfExist("ConcurrentIO")
WDTF_TEST                 : Querying for devices to test I/O on during the test
WDTF_TARGETS              :  - Query("IsDevice AND (DriverBinaryNames!='i8042prt.sys') AND (Class!=hdc) AND (Class!=scsiadapter) AND (DsmDevice!=TRUE) AND (DeviceID='ROOT\TESTGUARD\0000')")
WDTF_TARGETS              :          Target: TestGuardDevice ROOT\TESTGUARD\0000
WDTF_TARGETS              :  - GetRelations("below-or-self/","IsDevice AND (DriverBinaryNames!='i8042prt.sys') AND (Class!=hdc) AND (Class!=scsiadapter) AND (DsmDevice!=TRUE) AND (DeviceID='ROOT\TESTGUARD\0000')")
WDTF_TARGETS              :          Target: TestGuardDevice ROOT\TESTGUARD\0000
WDTF_TARGETS              :  - GetInterfacesIfExist("SimpleIOStressEx")
WDTF_SIMPLE_IO            :  - For Target:TestGuardDevice ROOT\TESTGUARD\0000  no Simple IO Interface was found.
WDTF_SIMPLE_IO_ANY      :  - The Generic Any SimpleIO plugin will be used to generate IO for Target: TestGuardDevice ROOT\TESTGUARD\0000
WDTF_SIMPLE_IO            :  - For Target:TestGuardDevice ROOT\TESTGUARD\0000  WDTF will use the ANY Simple IO Interface.
WDTF_TARGETS              :          Target: TestGuardDevice ROOT\TESTGUARD\0000
WDTF_SIMPLEIO_STRESS      :  - Start(TestGuardDevice ROOT\TESTGUARD\0000 )
WDTF_SIMPLE_IO            :  - Open(TestGuardDevice ROOT\TESTGUARD\0000 ) Try count 1
WDTF_SUPPORT              :  - WaitForMinutes : 1
WDTF_SIMPLE_IO            :  - PerformIO(TestGuardDevice ROOT\TESTGUARD\0000 ) Count 1
WDTF_SIMPLEIO_STRESS      :  - Stop(TestGuardDevice ROOT\TESTGUARD\0000 )
WDTF_SIMPLE_IO            :  - Close(TestGuardDevice ROOT\TESTGUARD\0000 )
WDTF_TEST                 : Starting PNPTryStopDeviceAndFailRestart test [2 of 3]
WDTF_TARGETS              :  - GetInterfacesIfExist("PNP")
WDTF_TARGETS              :          Target: TestGuardDevice ROOT\TESTGUARD\0000
WDTF_TEST                 : Querying for devices to test I/O on during the test
WDTF_TARGETS              :  - Query("IsDevice AND (DriverBinaryNames!='i8042prt.sys') AND (Class!=hdc) AND (Class!=scsiadapter) AND (DsmDevice!=TRUE) AND (DeviceID='ROOT\TESTGUARD\0000')")
WDTF_TARGETS              :          Target: TestGuardDevice ROOT\TESTGUARD\0000
WDTF_TARGETS              :  - GetRelations("below-or-self/","IsDevice AND (DriverBinaryNames!='i8042prt.sys') AND (Class!=hdc) AND (Class!=scsiadapter) AND (DsmDevice!=TRUE) AND (DeviceID='ROOT\TESTGUARD\0000')")
WDTF_TARGETS              :          Target: TestGuardDevice ROOT\TESTGUARD\0000
WDTF_TARGETS              :  - GetInterfacesIfExist("SimpleIOStressEx")
WDTF_SIMPLE_IO            :  - For Target:TestGuardDevice ROOT\TESTGUARD\0000  no Simple IO Interface was found.
WDTF_SIMPLE_IO_ANY      :  - The Generic Any SimpleIO plugin will be used to generate IO for Target: TestGuardDevice ROOT\TESTGUARD\0000
WDTF_SIMPLE_IO            :  - For Target:TestGuardDevice ROOT\TESTGUARD\0000  WDTF will use the ANY Simple IO Interface.
WDTF_TARGETS              :          Target: TestGuardDevice ROOT\TESTGUARD\0000
WDTF_SIMPLEIO_STRESS      :  - Start(TestGuardDevice ROOT\TESTGUARD\0000 )
WDTF_SIMPLE_IO            :  - Open(TestGuardDevice ROOT\TESTGUARD\0000 ) Try count 1
WDTF_SUPPORT              :  - WaitForMinutes : 1
WDTF_SIMPLE_IO            :  - PerformIO(TestGuardDevice ROOT\TESTGUARD\0000 ) Count 1
WDTF_SIMPLEIO_STRESS      :  - Stop(TestGuardDevice ROOT\TESTGUARD\0000 )
WDTF_SIMPLE_IO            :  - Close(TestGuardDevice ROOT\TESTGUARD\0000 )
WDTF_TARGETS              :  - GetInterfacesIfExist("ConcurrentIO")
WDTF_PNP                  :  - EDTTryStopDeviceFailRestart()
WDTF_PNP                  :          Target: TestGuardDevice ROOT\TESTGUARD\0000
WDTF_PNP                  :          Waiting for Target: TestGuardDevice ROOT\TESTGUARD\0000  to rebalance the test will try again in 5 seconds.
WDTF_PNP                  :          Waiting for Target: TestGuardDevice ROOT\TESTGUARD\0000  to rebalance the test will try again in 5 seconds.
WDTF_PNP                  :          Waiting for Target: TestGuardDevice ROOT\TESTGUARD\0000  to rebalance the test will try again in 5 seconds.
WDTF_PNP                  : Failed to open the EDT device m_EDTDevice.OpenDevice is returning error:-2147024894 for Target:TestGuardDevice ROOT\TESTGUARD\0000 .
WDTF_PNP                  :  - RestartDevice()
WDTF_PNP                  :          Target: TestGuardDevice ROOT\TESTGUARD\0000
Error: WDTF_PNP                  :          Result: Error : PNP_VetoLegacyDevice : Instance Path: ROOT\TESTGUARD\0000.
WDTF_PNP                  :          For Target: TestGuardDevice ROOT\TESTGUARD\0000  we will Rescan now.
WDTF_PNP                  :  - RescanParentDevice()   :  ( get status count:  1 )
WDTF_PNP                  :          Target: TestGuardDevice ROOT\TESTGUARD\0000
WDTF_SUPPORT              :  - WaitForSeconds : 15
WDTF_TARGETS              :  - GetInterfacesIfExist("ConcurrentIO")
WDTF_TEST                 : Querying for devices to test I/O on during the test
WDTF_TARGETS              :  - Query("IsDevice AND (DriverBinaryNames!='i8042prt.sys') AND (Class!=hdc) AND (Class!=scsiadapter) AND (DsmDevice!=TRUE) AND (DeviceID='ROOT\TESTGUARD\0000')")
WDTF_TARGETS              :          Target: TestGuardDevice ROOT\TESTGUARD\0000
WDTF_TARGETS              :  - GetRelations("below-or-self/","IsDevice AND (DriverBinaryNames!='i8042prt.sys') AND (Class!=hdc) AND (Class!=scsiadapter) AND (DsmDevice!=TRUE) AND (DeviceID='ROOT\TESTGUARD\0000')")
WDTF_TARGETS              :          Target: TestGuardDevice ROOT\TESTGUARD\0000
WDTF_TARGETS              :  - GetInterfacesIfExist("SimpleIOStressEx")
WDTF_SIMPLE_IO            :  - For Target:TestGuardDevice ROOT\TESTGUARD\0000  no Simple IO Interface was found.
WDTF_SIMPLE_IO_ANY      :  - The Generic Any SimpleIO plugin will be used to generate IO for Target: TestGuardDevice ROOT\TESTGUARD\0000
WDTF_SIMPLE_IO            :  - For Target:TestGuardDevice ROOT\TESTGUARD\0000  WDTF will use the ANY Simple IO Interface.
WDTF_TARGETS              :          Target: TestGuardDevice ROOT\TESTGUARD\0000
WDTF_SIMPLEIO_STRESS      :  - Start(TestGuardDevice ROOT\TESTGUARD\0000 )
WDTF_SIMPLE_IO            :  - Open(TestGuardDevice ROOT\TESTGUARD\0000 ) Try count 1
WDTF_SUPPORT              :  - WaitForMinutes : 1
WDTF_SIMPLE_IO            :  - PerformIO(TestGuardDevice ROOT\TESTGUARD\0000 ) Count 1
WDTF_SIMPLEIO_STRESS      :  - Stop(TestGuardDevice ROOT\TESTGUARD\0000 )
WDTF_SIMPLE_IO            :  - Close(TestGuardDevice ROOT\TESTGUARD\0000 )
WDTF_TEST                 : Starting PNPTryStopDeviceAndFailRestart test [3 of 3]
WDTF_TARGETS              :  - GetInterfacesIfExist("PNP")
WDTF_TARGETS              :          Target: TestGuardDevice ROOT\TESTGUARD\0000
WDTF_TEST                 : Querying for devices to test I/O on during the test
WDTF_TARGETS              :  - Query("IsDevice AND (DriverBinaryNames!='i8042prt.sys') AND (Class!=hdc) AND (Class!=scsiadapter) AND (DsmDevice!=TRUE) AND (DeviceID='ROOT\TESTGUARD\0000')")
WDTF_TARGETS              :          Target: TestGuardDevice ROOT\TESTGUARD\0000
WDTF_TARGETS              :  - GetRelations("below-or-self/","IsDevice AND (DriverBinaryNames!='i8042prt.sys') AND (Class!=hdc) AND (Class!=scsiadapter) AND (DsmDevice!=TRUE) AND (DeviceID='ROOT\TESTGUARD\0000')")
WDTF_TARGETS              :          Target: TestGuardDevice ROOT\TESTGUARD\0000
WDTF_TARGETS              :  - GetInterfacesIfExist("SimpleIOStressEx")
WDTF_SIMPLE_IO            :  - For Target:TestGuardDevice ROOT\TESTGUARD\0000  no Simple IO Interface was found.
WDTF_SIMPLE_IO_ANY      :  - The Generic Any SimpleIO plugin will be used to generate IO for Target: TestGuardDevice ROOT\TESTGUARD\0000
WDTF_SIMPLE_IO            :  - For Target:TestGuardDevice ROOT\TESTGUARD\0000  WDTF will use the ANY Simple IO Interface.
WDTF_TARGETS              :          Target: TestGuardDevice ROOT\TESTGUARD\0000
WDTF_SIMPLEIO_STRESS      :  - Start(TestGuardDevice ROOT\TESTGUARD\0000 )
WDTF_SIMPLE_IO            :  - Open(TestGuardDevice ROOT\TESTGUARD\0000 ) Try count 1
WDTF_SUPPORT              :  - WaitForMinutes : 1
WDTF_SIMPLE_IO            :  - PerformIO(TestGuardDevice ROOT\TESTGUARD\0000 ) Count 1
WDTF_SIMPLEIO_STRESS      :  - Stop(TestGuardDevice ROOT\TESTGUARD\0000 )
WDTF_SIMPLE_IO            :  - Close(TestGuardDevice ROOT\TESTGUARD\0000 )
WDTF_TARGETS              :  - GetInterfacesIfExist("ConcurrentIO")
WDTF_PNP                  :  - EDTTryStopDeviceFailRestart()
WDTF_PNP                  :          Target: TestGuardDevice ROOT\TESTGUARD\0000
WDTF_PNP                  :          Waiting for Target: TestGuardDevice ROOT\TESTGUARD\0000  to rebalance the test will try again in 5 seconds.
WDTF_PNP                  :          Waiting for Target: TestGuardDevice ROOT\TESTGUARD\0000  to rebalance the test will try again in 5 seconds.
WDTF_PNP                  :          Waiting for Target: TestGuardDevice ROOT\TESTGUARD\0000  to rebalance the test will try again in 5 seconds.
WDTF_PNP                  : Failed to open the EDT device m_EDTDevice.OpenDevice is returning error:-2147024894 for Target:TestGuardDevice ROOT\TESTGUARD\0000 .
WDTF_PNP                  :  - RestartDevice()
WDTF_PNP                  :          Target: TestGuardDevice ROOT\TESTGUARD\0000
Error: WDTF_PNP                  :          Result: Error : PNP_VetoLegacyDevice : Instance Path: ROOT\TESTGUARD\0000.
WDTF_PNP                  :          For Target: TestGuardDevice ROOT\TESTGUARD\0000  we will Rescan now.
WDTF_PNP                  :  - RescanParentDevice()   :  ( get status count:  1 )
WDTF_PNP                  :          Target: TestGuardDevice ROOT\TESTGUARD\0000
WDTF_SUPPORT              :  - WaitForSeconds : 15
WDTF_TARGETS              :  - GetInterfacesIfExist("ConcurrentIO")
WDTF_TEST                 : Querying for devices to test I/O on during the test
WDTF_TARGETS              :  - Query("IsDevice AND (DriverBinaryNames!='i8042prt.sys') AND (Class!=hdc) AND (Class!=scsiadapter) AND (DsmDevice!=TRUE) AND (DeviceID='ROOT\TESTGUARD\0000')")
WDTF_TARGETS              :          Target: TestGuardDevice ROOT\TESTGUARD\0000
WDTF_TARGETS              :  - GetRelations("below-or-self/","IsDevice AND (DriverBinaryNames!='i8042prt.sys') AND (Class!=hdc) AND (Class!=scsiadapter) AND (DsmDevice!=TRUE) AND (DeviceID='ROOT\TESTGUARD\0000')")
WDTF_TARGETS              :          Target: TestGuardDevice ROOT\TESTGUARD\0000
WDTF_TARGETS              :  - GetInterfacesIfExist("SimpleIOStressEx")
WDTF_SIMPLE_IO            :  - For Target:TestGuardDevice ROOT\TESTGUARD\0000  no Simple IO Interface was found.
WDTF_SIMPLE_IO_ANY      :  - The Generic Any SimpleIO plugin will be used to generate IO for Target: TestGuardDevice ROOT\TESTGUARD\0000
WDTF_SIMPLE_IO            :  - For Target:TestGuardDevice ROOT\TESTGUARD\0000  WDTF will use the ANY Simple IO Interface.
WDTF_TARGETS              :          Target: TestGuardDevice ROOT\TESTGUARD\0000
WDTF_SIMPLEIO_STRESS      :  - Start(TestGuardDevice ROOT\TESTGUARD\0000 )
WDTF_SIMPLE_IO            :  - Open(TestGuardDevice ROOT\TESTGUARD\0000 ) Try count 1
WDTF_SUPPORT              :  - WaitForMinutes : 1
WDTF_SIMPLE_IO            :  - PerformIO(TestGuardDevice ROOT\TESTGUARD\0000 ) Count 1
WDTF_SIMPLEIO_STRESS      :  - Stop(TestGuardDevice ROOT\TESTGUARD\0000 )
WDTF_SIMPLE_IO            :  - Close(TestGuardDevice ROOT\TESTGUARD\0000 )
EndGroup: PNPDTest::PNPTryStopDeviceAndFailRestart [Failed]
Telemetry: Unregistering Trace Logging.

Summary of Non-passing Tests:
    PNPDTest::PNPTryStopDeviceAndFailRestart [Failed]

Summary: Total=1, Passed=0, Failed=1, Blocked=0, Not Run=0, Skipped=0
Windows for business | Windows Client for IT Pros | Devices and deployment | Other
{count} votes

Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.