微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从C#设备句柄中获取驱动器号

参见英文答案 > How to detect using c# if a pendrive is plugged into a USB port?                                    6个
我正在使用一个小工具来记录USB设备中的活动.
我的工具用作捕获所有设备事件的Windows服务,基本上我在捕获DBT_DEVICEARRIVAL事件时就开始监视USB设备.在此之后,我需要在获得DBT_DEVICEQUERYREMOVE后立即停止监视器(否则我的服务将拒绝设备被安全弹出).问题是该工具应该能够监控多个设备,因此我需要能够确定用户试图弹出哪个设备.
我发现DBT_DEVICEQUERYREMOVE事件带有 DEV_BROADCAST_HANDLE结构.我试图从这个结构中提取一些有用的信息,这些信息可以让我识别出正在弹出的设备.我发现有一个设备的句柄,我试图使用系统功能 GetFinalPathNameByHandle提取驱动器号但是不能正常工作(返回空值).
知道我该怎么办?

非常感谢你!

解决方法

由于答案似乎没有我想象的那么明显:为您感兴趣的每个设备调用RegisterDeviceNotification,通过其句柄识别设备.由于您创建了注册,因此您将知道哪个驱动器号映射到哪个通知句柄.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐