Программное отключение USB устройств, проверка USB устройств на "занятость". С++
Пишу небольшую программу для работы с USB С++, ОС Linux. Использую библиотеку libusb-1.0. Задачи, которые я себе поставил.
- Вывод списка подключенных USB устройств.(Сделано)
- Обрабатывать события(вывод информации об устройстве) при подключении\отключении USB устройства.(Сделано).
- Обрабатывать события безопасного\небезопасного извлечения. (Не сделано)
- Возможность программного отключения USB устройств. (Не сделано)
Подскажите, как мне определить занято ли устройство операциями записи, чтения? (Относятся к устройствам хранения данных). Как можно организовать программное отключение USB устройств? Из того, что я нашёл:
- для отключения, можно использовать команду
libusb_control_transfer, однако я не нашёл какой сигнал нужно отправить для отключения питания устройства. Ссылка на исходный код утилиты, которая должна решить это вопрос https://github.com/mvp/uhubctl/blob/master/uhubctl.c но у меня она не заработала(я установил и попытался отключить питание от 1 порта, у меня там была флешка, но ничего не произошло). - Для решения задачи, должна подходить библиотека
libudev, однако я хотел бы решить все задачи используяlibusb-1.0