Windows driver framework(WDF): In UAS USB2.0, WarmReset dosen't trigger SUSPEND exit from U3 state
I have an inhouse developed WDF based driver which can run USB WarmReset command in UAS mode in USB2.0 speed.
Drive is executing some SCSI commands(Write10) continuously and every minute the test script invokes WarmReset to the device using WdfUsbTargetDeviceCyclePortSynchronously WDF API in USB2.0 speed. Initial few WarmReset commands are successful and post that the drive reenumerates properly. Within 10 to 15 minutes, one of the WarmReset commands doesn't trigger SUSPEND exit from U3 state. On checking the lecroy traces, FW confirms that the drive is in U3 state and doesn't receive the warm reset request.
We never faced the issue if WdfUsbTargetDeviceCyclePortSynchronously is invoked on USB3.0 speed.
Windows version: 10.0.19045 Build 19045
Queries:
- Why doesn't the WdfUsbTargetDeviceCyclePortSynchronously work in the above failure scenario for USB2.0?