/* * usb.c * * Created on: 12 июл. 2022 г. * Author: alexander */ #include #include void printUSB(libusb_device *dev) { struct libusb_device_descriptor desc; struct libusb_config_descriptor *config; const struct libusb_interface *inter; const struct libusb_interface_descriptor *interdesc; const struct libusb_endpoint_descriptor *epdesc; int r = libusb_get_device_descriptor(dev, &desc); if (r < 0) { fprintf(stderr, "Ошибка: дескриптор устройства не получен, код: %d.\n", r); return; } libusb_get_config_descriptor(dev, 0, &config); for (int i = 0; i < (int) config->bNumInterfaces; i++) { inter = &config->interface[i]; for (int j = 0; j < inter->num_altsetting; j++) { interdesc = &inter->altsetting[j]; if (interdesc->bInterfaceClass == LIBUSB_CLASS_MASS_STORAGE) { fprintf(stdout, "0x%04X:0x%04X\n", desc.idVendor, desc.idProduct); } } } libusb_free_config_descriptor(config); }