问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何代码安装驱动

发布网友 发布时间:2022-04-21 20:43

我来回答

1个回答

热心网友 时间:2022-05-23 15:47

  UpdateDriverForPlugAndPlayDevices
  该函数可以完成两件事
  1:安装驱动,只要指定inf文件及设备ID
  2:检查指定设备ID的设备是否插入(usbdetect.dll可能就是通过该函数完成的)
  
  *****************************************************

  问:如何和一个硬件设备交互?即如何打开一个设备?
  答:通过设备的符号链接打开设备。

  设备的符号链接含义:
  "//?/hid#vid_093a&pid_2510#6&1da905e4&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}"
  |----1---|-----------2--------------|------------3--------------|-----------------------------4------------------------|
  第一部分:何种总线的设备 eg ROOT, //?/hid
  第二部分:当前设备硬件的名称 eg zhangfandevice, vid_093a&pid_2510
  第三部分:当前设备硬件的第几个设备 eg:6&1da905e4&0&0000,可以同时插上好几个相同的设备硬件,不同的设备的这个域不同
  第四部分:当前设备硬件所属的设备接口的GUID

  eg:电脑上同时插入两个相同的2代硬件:
  分别显示:
  "//?/usb#vid_0471&pid_0668#6&2ea1fb62&0&1#{77f49320-16ef-11d2-ad51-006097b514dd}"
  "//?/usb#vid_0471&pid_0668#6&3822C75E&0&1#{77f49320-16ef-11d2-ad51-006097b514dd}"

  这两个设备的差别就在序号上,这个序号可能是系统随机分配的。
  通过任务管理器,可以看到这两个设备的名字一样,都是TOLTech xeyez 2.0
  右键查看详细信息-如下:
  USB/VID_0471&PID_0668/6&2ea1fb62&0&1
  USB/VID_0471&PID_0668/6&3822C75E&0&1

  设备接口GUID, 设备ID, 兼容ID等概念:
  1:设备接口:即GUID,
  1.1)多个设备可以具有相同的GUID。
  eg不同的HID鼠标键盘设备具有相同的GUID。
  eg不同不同的识别器硬件具有相同的GUID。
  1.2)GUID存在于inf文件的前几行。
  [Version]
  Signature="$CHICAGO$"
  Class=USB //用于指示设备装好后出现在设备管理器中的那个分支下
  ClassGUID={36FC9E60-C465-11CF-8056-444553540000} // xeyez1代2代3代的GUID,和周立同的一样
  Provider=%Provider%
  CatalogFile=xeyez.cat
  DriverVer=05/15/2009,1.1.0.0
  
  1.3)安装驱动时,这个信息无用。可用于SetupDiXXX函数通过该GUID查找属于该GUID的设备。然后可以通过查找到的信息创建句柄和设备通信。
  
  2:设备ID
  2.1)也即硬件id HardwareID eg vidpid
  2.2)硬件自身含有自己的vidpid信息。该信息可用于帮组系统定位inf文件,然后根据inf的指示安装驱动

  3:兼容ID
  3.1)硬件自身含有自己的兼容ID信息,该信息可用于帮组系统定位inf文件,然后根据inf的指示安装驱动
  eg hid兼容的usb鼠标就是通过提供兼容id来实现免驱的。

  4:驱动程序.sys文件是否和设备接口GUID一一对应?
  答:不对应。.sys里面不含有GUID,vidpid,兼容id等任何信息。

  5:系统如何为新插入的usb硬件安装驱动?
  系统通过usb设备的设备id,和兼容id,然后寻找相匹配的inf文件,然后安装inf文件记载的sys文件。
  (至于该sys文件是否真的可用,系统可不管,要不不可用,就会导致蓝屏!)
  举例1:从不同的鼠标可以免驱直接使用。是因为这些HID鼠标虽然vidpid不同,系统中也没有对应vidpid的inf文件,但它们具有相同的兼容id,系统中含有该兼容id的inf文件,可以顺利的找到驱动并安装成功。
  举例2:不同的识别器硬件pidvid不一样,兼容id也不一样,所以安装失败了。需要对应vidpid的inf才能装上。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...先讲女主的灵魂飘荡了一段时间,然后重生,请问是那本? 拯救者散热器怎么开 电脑如何一键还原系统电脑一键还原怎么操作 神舟笔记本电脑怎么重新设置神舟战神bios恢复出厂设置 神舟电脑恢复出厂设置神舟战神怎么恢复原厂系统 水泥楼梯如何铺木楼梯 家里面楼梯是水泥的不想铺地毯或者地砖还能铺什么 楼梯的水泥台阶上可以铺地板革吗 手机腾讯会议共享屏幕播放视频没声 腾讯会议共享屏幕没声音怎么办 mac版starcraft怎样改战网区 战网账号地区如何变更 Win10战网怎么改外服 《战网》国服怎么改成国际服? windows10上战网怎么改地区? 我的战网为什么无法更改地区 战网怎么改国际服? 暴雪战网国际服怎么修改地区求大神 暴雪战网注册为什么换不了地区? 战网怎么改地区 windows10 使命召唤17战网地区应该怎么才能修改? 战网地区修改 战网怎么修改地区 暴雪战网怎样切换地区? 战网怎么该国际服? 怎么改战网的地区设置 战网国际服怎么改阿根廷 怎么改战网的地区设置? 梦见坟墓在寒洞里还有古墓 无线局域网有哪些部分组成 农业银行信用卡怎么注销? 索尼笔记本EG系列, 鼠标触摸屏突然就没反应了, 哪位大神有通用鼠标宏驱动 V1.0 官方版软件百度云资源 雷蛇奥罗波若蛇鼠标驱动在哪里下??? Sony索尼 EB系列笔记本 和 EG系列笔记本 驱动一样吗 linux设备驱动程序这本书怎么阅读 T43 上网时笔记本鼠标指针总是自动下移 雷蛇黑寡妇终极版EG限量版的键盘不能统计 求魅谷EG-C1017手柄驱动 明基r55eg,键盘在BIOS模式能用,进Windows系统就... 安装黑苹果的索尼本本EG38EC没得触控板驱动 谁能教... 索尼笔记本 EG35 摄像头驱动 求魅谷手柄 eg-c1016 自带手柄驱动安装包 装系统不... 跪求win10系统64位下的Qualcomm Atheros ar9485wb-... 索尼EG38装了win7旗舰32位的无法用Fn+F5与Fn+F6调... EG8010为什么要用IR21110做驱动 EG4320引脚功能 如何在excel中同一列中筛选出公式不同的 EXCEL函数如何在同一列筛选不同数据 在excel同一列里找相同的内容有没有公式 如何在EXCEL中,通过公式筛选出一列数据的不重复项