如何注册特定 GUID 的设备通知?

2018-03-31 15:10:45 +08:00
 v2byy
比如一个设备有 GUID,当设备插入到 window 时,可以收到通知。就像 USB。目前找到的信息是可以通过 win32 api,RegisterDeviceNotificaiton 来注册,但是貌似只能注册某一类型的设备,比如说 USB,打印机等。我如果可以在该设备的驱动中标识一个 GUID,当该设备插入到 window,是否可以通过贵 GUID 进行过滤,从而只有该 GUID 的设备插入时,才进行处理?
2138 次点击
所在节点    程序员
5 条回复
v2byy
2018-03-31 15:22:04 +08:00
或者说,如何识别特定 USB 设备的插入或移除?
XinLake
2018-03-31 20:06:51 +08:00
USB 设备(首次)接入系统后有个枚举过程,系统会根据设备类型加载驱动,完成后可以通过相关 API 得到 USB 设备的 VID ( vender id )、PID ( product id )。

这 2 个 id 可以区分 USB 设备的唯一性( USB 协议规范约束)。但你收到设备接入通知后(程序也可以主动查找设备),可以检测设备的这 2 个 id 来判断是否你关心的设备。
XinLake
2018-03-31 20:11:39 +08:00
VID、PID,存储于设备由设备上报给系统,是设备固件层的,不能随便改。更新固件若改动,系统则会重新识别。

guid 则不是,有的设备是操作系人在成功加载后分配一个 guid。
XinLake
2018-03-31 20:16:06 +08:00
尴尬 会完才发现问题解决
v2byy
2018-03-31 23:44:35 +08:00
@XinLake 哈哈,还是谢谢你

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/443134

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX