我可以从WM_DEVICECHANGE消息的内容中看出它对应的设备吗?

问题描述

| 我的应用程序需要检测何时插入/移除了特定的USB设备。该设备公开了几个接口(串行端口,网络适配器等)。我可以捕获WM_DEVICECHANGE消息,但是在消息本身中看不到任何可以唯一标识我的设备的数据(与之相反,有人插入/卸下USB到串行适配器)。我想念什么吗? 我知道只要有事件就可以执行WMI查询,以查看我的设备是否在那里,但是我希望有一个更简单/更优雅的解决方案。 我曾尝试执行WMI“事件”查询(而不是捕获WM_DEVICECHANGE),但是显然我的设备不支持WMI事件。     

解决方法

        您需要在WM_DEVICECHANGE的wParam中检查DBT_DEVICEARRIVAL。届时,lParam将指向具有更多信息的DEV_BROADCAST_HDR结构。