加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 21:44:22 所属栏目:百科 来源:网络整理
导读:参见英文答案 How to detect using c# if a pendrive is plugged into a USB port?????????????????????????????????????6个 我正在使用一个小工具来记录USB设备中的活动. 我的工具用作捕获所有设备事件的Windows服务,基本上我在捕获DBT_DEVICEARRIVAL事件时
参见英文答案 > 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,通过其句柄识别设备.由于您创建了注册,因此您将知道哪个驱动器号映射到哪个通知句柄.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读