Программно возобновить работу USB-устройства (Windows OS)

Известно, что перед тем как вытянуть USB-флешку из порта, нужно её предварительно безопасно извлечь. Это легко сделать, с учётом того, что в WinAPI предусмотрена спец. функция для этого (несмотря на все ньюансы, проблема вроде решена).

А как можно вернуть устройство в активное состояние, не извлекая его из USB-порта? USB Safely Remove и Zentimo xStorage Manager это делать умеют:

image
  • Вопрос задан
  • 2814 просмотров
Пригласить эксперта
Ответы на вопрос 3
Вам наверное в сторону «SetupDiCallClassInstaller» нужно копать… вот пример кода, правда на Delphi:
programmersforum.ru/showpost.php?p=31168&postcount=12
с вроде необходимым вам функционалом.
Ответ написан
Комментировать
Dzuba
@Dzuba
Прошу прощения, а разве нет рядом другой спец.функции для установки девайса?

Кстати, в той же статье есть ссылка на другую, где описывается фокус с кодом ошибки 21 вместо 47, если пользователь — администратор.
Ответ написан
USB Safely Remove при попытки вернуть устройство как-то спросил у меня: мол уверен ли я, что в соседний порт того же концентратора не воткнут wifi-модуль? И посулил проблемы с сетью в случае положительного ответа. Посему я подозреваю, что при возврате устройства производится передергивание usb-контроллера, а не волшебное возвращение отдельного устройства.

Но естественно это лишь мои домыслы и в проблеме на низком уровне я не разбираюсь, поэтому рекомендую обратиться к разработчиками USB SM; они по-моему русские и вполне адекватны.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы