我有一个复合USB设备,是U盘+HID.我希望通过盘符获取HID的句柄,该如何实现?
主要是想实现一个通过在U盘中存放的可执行程序,能与设备进行通信的方式.

解决方案 »

  1.   

    一个 USB composity device,有 Disk + HID.1  Disk -> 盘符
    2  HID 和 盘符没有联系。如果硬要产生关系的话,有如下技术细节需要打通:1  DISK GUID VS HID GUID
    2  DISK GUID 得到的 HANDLE 哪个是你的。
    4  HID GUID 得到的 HANDLE 哪个是你的。5  DISK GUID 获得的 HANDLE 如何和 盘符沟通起来。
    6  CM_GetParent 等函数可以获得其 拓扑关系。
      

  2.   

    我已经知道了盘符,怎么获得当前disk的句柄?
      

  3.   

    @jslisong
    是不是通过CM_GetParent,分别获取父类的句柄,当句柄相同时,可以确认是一个呢?
      

  4.   

    Caller-supplied device instance handle that is bound to the local machine. 是不是说这个句柄在本机上唯一,和使用CreateFile打开的不同?
      

  5.   

    Disk -> Volume .. mount device -> dos root path.这其中的关系是比较隐晦的,不止单一的 盘符HANDLE 这么简单。楼上下功夫研究下 SetupDiXXX 函数才行。这些可以找到 Disk 的 handle。
      

  6.   

    好吧,我换了一种方式跟设备通信,算是把这块绕过去了.不再使用HID,也避免了一些系统底层的调用.