Programmatically restart USB device in Windows

Некоторое программное обеспечение, которое я разрабатываю, требует наличия устройства USB (с которым я взаимодействую как SerialPort, с мостом USB-к-UART).

Иногда после перезагрузки компьютера из режима гибернации устройство не обнаруживается, и я больше не могу записывать или считывать данные с устройства через его последовательный порт. Доступ к устройству для чтения / записи необходим.

Я не могу рассчитывать на то, что пользователь предпримет какие-либо действия (физические или иные), поэтому мне нужен способ перезагрузить устройство программным способом.

Как мне подойти к перезагрузке USB-устройства программно в Windows XP/Vista/7 с использованием.NET Framework?

1 ответ

Решение

Вы можете использовать WDK (Windows Driver Kit). Предоставлено множество примеров исходного кода, но ожидайте крутой кривой обучения.

Devcon - это программа, разработанная MS для демонстрационных целей, которая иногда работает и делает то, что вы хотите. Но имейте в виду, что это странно и дико. В любом случае, исходный код предоставляется, поэтому, если вам нравится возиться с драйверами устройств, вы можете свернуть свой собственный код "Devcon".

С сайта MS:

DevCon (Devcon.exe), the Device Console, is a command-line tool that displays detailed information about devices. Using DevCon, you can search for and manipulate devices from the command line. DevCon enables, disables, installs, configures, and removes devices on the local computer and displays detailed information about devices on local and remote computers.

НТН!

Другие вопросы по тегам