使用Win32 API安全删除USB驱动器吗?
如何使用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设备的信息。
问候