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

时间:2020-03-05 18:59:29  来源:igfitidea点击:

如何使用Win32 API移除USB驱动器?我在嵌入式系统上做了很多工作,在其中一个系统上,我必须将程序复制到USB记忆棒上并将其插入目标硬件中。

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

我很想编写一个小程序来完成该操作,以便可以将其放入我的makefile中,但是我还没有找到任何执行相同操作的API调用。

有任何想法吗?

解决方案

回答

看起来Sync使我们可以指定-e弹出可移动驱动器。虽然不是win32 API,但我们可能只需要从makefile中调用sync -e [drive_letter]

回答

本文和示例应该可以解决这个问题:
http://support.microsoft.com/default.aspx?scid=kb;zh-cn;165721

回答

我们可以使用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源代码

回答

这是有关可移动存储介质的Technet文章。寻找DismountNtmsMedia

回答

这是Delphi中的一个解决方案,我已经对其进行了修改并将其投入服务以供大型企业使用。转到:链接文本

查找" scapi(安装和配置管理器API)",然后下载。将有一个名为USBView的演示程序,它将带我们上路。如果我们有Delphi,它还包含一个TUSBDeviceTree组件,我们可以在该组件时收集有关USB设备的信息。

问候