从读卡器弹出存储卡C#
我有一个定制开发的USB读卡器。我使用以下代码进行交互和iterrate设备:
http://www.codeproject.com/KB/system/usbeject.aspx
上面的代码使用以下行提供了'eject'方法:
Native.CM_Request_Device_Eject_NoUi(device.InstanceHandle, IntPtr.Zero, null, 0, 0);
但是,这种“弹出”方法会卸载整个驱动器,而不是简单地弹出介质卡。
为什么这是一个问题是因为我想“弹出”媒体卡,然后放入另一个。然而,当整个阅读器被弹出时,我必须拔出/重新插入设备才能显示备份。
在Windows资源管理器中,当我右键单击“弹出”时,它按照我想象的方式运行,它可以安全地移除存储卡但不能读取读卡器。
我怎样才能在c#中推动这种不同类型的弹出?
谢谢,
斯蒂芬妮
没有找到相关结果
已邀请:
2 个回复
盛虱
稼悸
而不是“在使用操作系统安全删除硬件时系统所做的一切”): 从如何在Windows中弹出可移动媒体中概述的步骤开始。 将操作替换为
,代码实际上是如何准备安全移除USB驱动器中的
方法的主体。请注意,以后的工作很大程度上依赖于其他两个CodeProject文章—包括你在问题中引用的那个—移植到C#。 2,我说“实际上”是因为—在实践中—在两个解决方案中都使用相同的
,在Microsoft解决方案中调用
,
或
之前,在CodeProject
方法中执行所有检查更有意义,然后调用Code9ject解决方案中显示的
。 一个简短的伪代码摘要: 用
打开音量(CodeProject) 获取驱动器的设备实例句柄和驱动器的父设备 实例句柄(CodeProject) 在打电话之前退出—特别是—
, 如果上述任何步骤失败(CodeProject) 拨打
,
和
使用从
(微软)返回的
此后您可以随时关闭
在驱动器的父设备上调用
实例句柄(CodeProject)