41 lines
1.1 KiB
C
41 lines
1.1 KiB
C
/*
|
||
* usb.c
|
||
*
|
||
* Created on: 12 июл. 2022 г.
|
||
* Author: alexander
|
||
*/
|
||
|
||
#include <libusb-1.0/libusb.h>
|
||
#include <stdio.h>
|
||
|
||
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);
|
||
}
|