安全地使用Win32 API删除USB驱动器?

如何使用Win32 API删除USB驱动器? 我在embedded式系统上做了很多工作,其中一个就是将我的程序复制到U盘上,然后插入到目标硬件中。

由于我主要在控制台上工作,我不喜欢使用鼠标,每天点击一次小的任务栏图标一百次。

我很想编写一个小程序来做到这一点,所以我可以把它放到我的makefile中,但是我还没有find任何API调用来做同样的事情。

有任何想法吗?

您可以使用CM_Request_Device_Eject()函数以及一些其他的可能性。 请参阅以下项目和文章:

DevEject:直截了当。 http://www.withopf.com/tools/deveject/

一个有用的CodeProject文章: http : //www.codeproject.com/KB/system/RemoveDriveByLetter.aspx

请参阅Microsoft知识库文章Q165721: http : //support.microsoft.com/kb/165721 – 包含完整的C源代码

它看起来像同步让你指定-epopup可移动驱动器。 虽然不是win32 API,但你可能只需要从makefile中调用sync -e [drive_letter]

本文和示例应该这样做: http : //support.microsoft.com/default.aspx ?scid = kb; en- us; 165721

这里是关于可移动存储介质的technet文章 。 寻找DismountNtmsMedia

Delphi中有一个解决scheme,我已经修改并把它放到一个非常大的企业中使用。 转到: 链接文本

查找“scapi(安装和configurationpipe理器API)”,并下载它。 将会有一个名为USBView的演示程序,可以帮助您顺利完成任务。 如果你有Delphi,那么还包括一个TUSBDeviceTree组件,你可以用它来收集有关USB设备的信息。

问候