首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从C#中的设备句柄获取驱动器号

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

Stack Overflow用户
提问于 2012-12-14 19:17:29
回答 1查看 836关注 0票数 4

我正在使用一个小工具来记录USB设备中的活动。我的工具是一个捕捉所有设备事件的windows服务,基本上我一捕捉到DBT_DEVICEARRIVAL事件就开始监控USB设备。在此之后,我需要在获得DBT_DEVICEQUERYREMOVE后立即停止监视器(否则我的服务将拒绝安全弹出设备)。问题是该工具应该能够监控多个设备,所以我需要能够确定用户正在尝试弹出哪个设备。我发现DBT_DEVICEQUERYREMOVE事件带有一个DEV_BROADCAST_HANDLE结构。我试图从这个结构中提取一些有用的信息,让我能够识别哪个设备正在被弹出。我发现有一个设备的句柄,我试图使用系统函数GetFinalPathNameByHandle提取驱动器号,但不能正常工作(返回空值)。你知道我该怎么做吗?

非常感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-14 22:36:23

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13877622

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档