我可以从WM_DEVICECHANGE消息的内容中告诉它对应哪个设备?

时间:2011-06-15 14:58:44

标签: windows

我的应用程序需要检测何时插入/移除特定的USB设备。该设备公开了几个接口(串行端口,网络适配器等)。我可以捕获WM_DEVICECHANGE消息,但是我没有在消息本身中看到任何可以唯一标识我的设备的数据(相反,有人插入/删除了一个USB到串行适配器)。我错过了什么吗?

我知道每当我收到一个事件时我都可以进行WMI查询,看看我的设备是否存在,但我希望有一个更简单/更优雅的解决方案。

我尝试过做一个WMI“事件”查询(而不是捕获WM_DEVICECHANGE),但显然我的设备不支持WMI事件。

1 个答案:

答案 0 :(得分:1)

您需要在WM_DEVICECHANGE的wParam中检查DBT_DEVICEARRIVAL。此时,lParam将指向一个DEV_BROADCAST_HDR结构,其中包含更多信息。