Подключайте и отключите USB-программу "БЕЗ ОТВЕРСТИЯ И ЗАВЕРШИТЕ" - программирование

Подключайте и отключите USB-программу "БЕЗ ОТВЕРСТИЯ И ЗАВЕРШИТЕ"

Мне нужно подключить и отключить USB программно. То есть, я вставил USB-устройство. Мне нужно перенести файл с помощью приложения С#.NET. Приложение будет следить за конкретной папкой и переносить файл из этой папки на USB-накопитель. Мне нужно отключить USB-устройство после передачи файла и подключить USB при необходимости - без выключения и повторного подключения.

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

Главное: ПРИМЕЧАНИЕ, ПРИМЕЧАНИЕ: Без отсоединения и повторной загрузки USB-устройства.

4b9b3361

Ответ 1

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

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

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

Ответ 2

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