2009-05-27 7 views
1

Мне нужно подключить и отключить USB программно. То есть, я вставил USB-устройство. Мне нужно перенести файл с помощью приложения C# .NET. Приложение будет следить за конкретной папкой и переносить файл из этой папки на USB-накопитель. Мне нужно отключить USB-устройство после передачи файла и подключить USB при необходимости - без выключения и повторного подключения.Подключить и отключить USB-программу «БЕЗ ОТВЕРСТИЯ И ЗАМЕНА»

Каким будет код для этого или есть ли доступный DLL-файл?

Главное: ВНИМАНИЕ, ВНИМАНИЕ: Без отключить и снова подключить устройство USB.

+1

Аналогичный вопрос? http://stackoverflow.com/questions/404097/windows-power-off-an-usb-device-in-software – Stobor

ответ

0

Я не совсем уверен, но это можно сделать. В Linux я испытал определенные ситуации, когда питание отключено от устройства программно. Ядро обычно делает это, если подключенное устройство USB обнаруживает слишком много ошибок. Таким образом, это должно быть возможно сделать это даже в Windows. Возможно, вам придется писать собственную внешнюю DLL.

+0

На общих USB-контроллерах хоста нет возможности (в аппаратном обеспечении) отключить питание от USB-порта программно, поэтому вряд ли Windows сможет это сделать. – Ilya

+0

Илья, в следующий раз, пожалуйста, сначала используйте поиск, прежде чем комментировать и проголосовать за другие (правильные) ответы. См. Здесь для получения дополнительной информации: http://stackoverflow.com/questions/4702216/controlling-a-usb-power-supply-on-off-with-linux –

1

Если ваша цель состоит в том, чтобы сделать определенный том диска недоступным, пока вы его не используете, более разумным подходом может быть использование API управления томом, например. используя код управления IOCTL_VOLUME_OFFLINE. (Я предполагаю, что вы знаете, какая буква диска принадлежит вашему USB-диску.)

В качестве альтернативы вы можете отключить и включить устройство громкости программным способом с помощью CfgMgr/SetupAPI - то же самое, что щелчок правой кнопкой мыши по громкости в Device Manager и выбирая Отключить. (Для получения информации об использовании SetupAPI ознакомьтесь с образцом кода DevCon, представленным в Windows WDK, и см. MSDN для таких функций, как SetupDiChangeState.)

Для последнего варианта может потребоваться привилегированная учетная запись пользователя.

+0

У вас есть ссылка для API CfgMgr? Если вы это сделаете, вы можете отредактировать его в своем ответе. –

+0

@PeterMortensen сделано :) – Ilya