V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
v2byy
V2EX  ›  程序员

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

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

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

    guid 则不是,有的设备是操作系人在成功加载后分配一个 guid。
    XinLake
        4
    XinLake  
       2018-03-31 20:16:06 +08:00 via Android
    尴尬 会完才发现问题解决
    v2byy
        5
    v2byy  
    OP
       2018-03-31 23:44:35 +08:00 via iPhone
    @XinLake 哈哈,还是谢谢你
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3213 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 13:32 · PVG 21:32 · LAX 05:32 · JFK 08:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.