想通过硬件的VID和PID来更新驱动,USB设备插入U口后驱动还未安装,此时怎样获取VID和PID呢?谁能讲一下流程呢?一个USB插入U口后的驱动是怎样更新的呢,比如说手机连接电脑后打开360手机助手或者豌豆荚软件,没有驱动的话,会联网下载驱动并安装。大家来讨论一下。

解决方案 »

  1.   

    我也正做这个了,目前的流程是:枚举系统所有USB口,然后CreateFile打开该USB,通过api可以获取PID,VID,在xp下没问题,但是win7下没权限,还不知道如何解决?
      

  2.   

    系统有4中办法可以获取配置空间,张帆的windows设备驱动开发详解说的很明白的,WDM里发送IRP_MN_START_DEVICE的IRP就能得到的
      

  3.   

    对驱动开发不了解,我用的win7系统,不知道怎么能获取Pid和Vid。
      

  4.   

    如果有驱动了获取pid和vid也就没什么意义了,目的是想通过pid和vid来判断设备型号,更新驱动的。如果一直查询注册表,那么插入U盘的话也pid和vid也一样写进注册表了。
      

  5.   

    不对!我说的驱动是说,你要去枚举配置空间的信息罢了,而不是针对某种USB设备的驱动程序,这个就像是枚举总线的上设备驱动那种功能!没有那么傻啦,不会是搞出来鸡生蛋蛋生鸡的问题,而是说你搞个专门的驱动,专门等USB插入的时候就获取信息
    DEV_BROADCAST_DEVICEINTERFACE在VC下可以得到,你百度下这个结构
      

  6.   

    你的软件里首先要有一个支持的PVID的列表,然后将机器目前所有的USB设备的PVID跟支持设备列表的PVID做对比,找到匹配的PVID。