Безопасно удалить USB-накопитель с помощью Win32 API? - PullRequest
30 голосов
/ 17 сентября 2008

Как удалить USB-накопитель с помощью Win32 API? Я много работаю со встроенными системами, и на одной из них мне приходится копировать свои программы на USB-накопитель и вставлять его в целевое оборудование.

Поскольку я в основном работаю с консолью, я не люблю использовать мышь и нажимать на маленькую иконку на панели задач сто раз в день.

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

Есть идеи?

Ответы [ 4 ]

17 голосов
/ 17 сентября 2008

Вы можете использовать функцию CM_Request_Device_Eject (), а также некоторые другие возможности. Ознакомьтесь со следующими проектами и статьями:

DevEject: просто. http://www.withopf.com/tools/deveject/

Полезная статья CodeProject: http://www.codeproject.com/KB/system/RemoveDriveByLetter.aspx

4 голосов
/ 17 сентября 2008

Похоже, Синхронизация позволяет указать -e для извлечения съемных дисков. Хотя это и не win32 API, вы, вероятно, могли бы просто вызвать sync -e [drive_letter] из вашего make-файла.

3 голосов
/ 17 сентября 2008

Вот статья technet о съемных носителях. Ищите DismountNtmsMedia.

0 голосов
/ 26 ноября 2008

Вот решение в Delphi, которое я модифицировал и включил в сервис для использования на очень крупном предприятии. Перейти к: текст ссылки

Найдите «scapi (API Setup & Config Manager)» и загрузите его. Будет демонстрационная программа USBView, которая поможет вам в этом. Если у вас есть Delphi, он также включает в себя компонент TUSBDeviceTree, который вы можете использовать для сбора информации об устройстве USB, когда.

Привет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...