You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Device address mismatch after windows hibernation when at least 2 devices are connected to same hub
Scenario:
Enable hibernation in windows via using following command in cmd.exe "powercfg.exe /hibernate on"
Connect mouse and keyboard to same hub (same bus id)
Start capture using Wireshark or USBPcapCMD for few seconds then stop it.
Observe that device address for injected descriptors and packages that arrives to/from device are matched
for instance:
keyboard - injected descriptor device address 1
mouse - injected descriptor device address 2 and its packages transferred to/from host have got device address 2
Take look at attached file in zip (1.before_hibernation.pcap)
Hibernate windows OS, then wake it up.
When system get resumed, start again capture using Wireshark or USBPcapCMD for few seconds then stop it.
Observe that device address for injected descriptors and packages that arrives to/from device are mismatched.
for instance:
keyboard - injected descriptor device address 2
mouse - injected descriptor device address 1 and its packages transferred to/from host have got device address 2 -> this incorrect
Take look at attached file in zip (2.after_hibernation.pcap) capture_hibernation_issue.zip
The text was updated successfully, but these errors were encountered:
I have reproduced this issue on my laptop (xHCI host controller). I have monitored the USB connection to the mouse with OpenVizsla. The device addresses in Injected descriptors (in user-space USBPcapCMD) are correct. The bug seems to be in kernel-space (USBPcapDriver).
After resuming, USBPcapDriver seems to use the address that was assigned before hibernation. In reality however, the address has changed (in fact it has changed twice; first time by BIOS and then by Windows).
I am not sure if the problem can be reproduced with EHCI host controllers. The important difference between xHCI and EHCI is that xHCI assigns addresses in hardware (OS can check this information; this is why on Linux the device number as seen by usbmon is not necessarily matching the address that was assigned to the device), while with EHCI the address is assigned by kernel software.
Device address mismatch after windows hibernation when at least 2 devices are connected to same hub
Scenario:
Observe that device address for injected descriptors and packages that arrives to/from device are matched
for instance:
Take look at attached file in zip (1.before_hibernation.pcap)
Observe that device address for injected descriptors and packages that arrives to/from device are mismatched.
for instance:
Take look at attached file in zip (2.after_hibernation.pcap)
capture_hibernation_issue.zip
The text was updated successfully, but these errors were encountered: