diff options
Diffstat (limited to 'libusb/os/windows_winusb.c')
-rw-r--r-- | libusb/os/windows_winusb.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/libusb/os/windows_winusb.c b/libusb/os/windows_winusb.c index e3d5cfa..63d4f00 100644 --- a/libusb/os/windows_winusb.c +++ b/libusb/os/windows_winusb.c @@ -909,6 +909,8 @@ static int init_device(struct libusb_device *dev, struct libusb_device *parent_d &conn_info_v2, sizeof(conn_info_v2), &conn_info_v2, sizeof(conn_info_v2), &size, NULL)) { usbi_warn(ctx, "could not get node connection information (V2) for device '%s': %s", priv->dev_id, windows_error_str(0)); + } else if (conn_info_v2.Flags.DeviceIsOperatingAtSuperSpeedPlusOrHigher) { + conn_info.Speed = 4; } else if (conn_info_v2.Flags.DeviceIsOperatingAtSuperSpeedOrHigher) { conn_info.Speed = 3; } @@ -926,6 +928,7 @@ static int init_device(struct libusb_device *dev, struct libusb_device *parent_d case 1: dev->speed = LIBUSB_SPEED_FULL; break; case 2: dev->speed = LIBUSB_SPEED_HIGH; break; case 3: dev->speed = LIBUSB_SPEED_SUPER; break; + case 4: dev->speed = LIBUSB_SPEED_SUPER_PLUS; break; default: usbi_warn(ctx, "unknown device speed %u", conn_info.Speed); break; |