V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
v2byy
V2EX  ›  程序员

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

  •  
  •   v2byy · Mar 31, 2018 · 2437 views
    This topic created in 2950 days ago, the information mentioned may be changed or developed.
    比如一个设备有 GUID,当设备插入到 window 时,可以收到通知。就像 USB。目前找到的信息是可以通过 win32 api,RegisterDeviceNotificaiton 来注册,但是貌似只能注册某一类型的设备,比如说 USB,打印机等。我如果可以在该设备的驱动中标识一个 GUID,当该设备插入到 window,是否可以通过贵 GUID 进行过滤,从而只有该 GUID 的设备插入时,才进行处理?
    5 replies    2018-03-31 23:44:35 +08:00
    v2byy
        1
    v2byy  
    OP
       Mar 31, 2018
    或者说,如何识别特定 USB 设备的插入或移除?
    XinLake
        2
    XinLake  
       Mar 31, 2018 via Android
    USB 设备(首次)接入系统后有个枚举过程,系统会根据设备类型加载驱动,完成后可以通过相关 API 得到 USB 设备的 VID ( vender id )、PID ( product id )。

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

    guid 则不是,有的设备是操作系人在成功加载后分配一个 guid。
    XinLake
        4
    XinLake  
       Mar 31, 2018 via Android
    尴尬 会完才发现问题解决
    v2byy
        5
    v2byy  
    OP
       Mar 31, 2018 via iPhone
    @XinLake 哈哈,还是谢谢你
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5609 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 07:21 · PVG 15:21 · LAX 00:21 · JFK 03:21
    ♥ Do have faith in what you're doing.