Безопасно удалить USB-накопитель с помощью Win32 API?

StackOverflow https://stackoverflow.com/questions/85649

  •  01-07-2019
  •  | 
  •  

Вопрос

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

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

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

Есть какие-нибудь идеи?

Это было полезно?

Решение

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

Разрабатывать:Прямолинейный.http://www.withopf.com/tools/deveject/

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

Другие советы

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

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

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

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

С уважением

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top