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