- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
usb加载详细过程
【转】?usb加载详细过程(zz)
2010-06-20 21:00
转载自?分享
最终编辑?pulerain当你的u盘插入以后.?usbhub能检测到有某个设备连接进来(usb某根数据线的电平超过最小输入电压2.5us).通知windows有一新设备连接进来了.?然后pnp manager发送一系列的pnp irp到这个新设备?比如query caps,query id.query resource,query resource req等等.?和我们讨论有关的就是query id了.?pnp manager首先query的是device id.目的是用来定位所谓的device key?他位于current control set\\enum下面.?usbhub为其返回的id格式如下?USB\\VID_xxxxPID_xxxx 当然了,这两个数来自于device descriptor?pnp manager接着query instance id.根据需要生成一个instance id string并附加到device id后面形成如下的string.也就是所谓的某个device的instance path?USB\\VID_xxxxPID_xxxx\\xxxx?然后用他作为sub key的名字去打开?LOCAL_MACHINE\\system\\CurrentControlSet\\Enum\\下的某个key?比如我的u盘的instance path是?USB\\Vid_0c45Pid_1060\\51489a8501?对应的device key就是?LOCAL_MACHINE\\System\\CurrentControlSet\\Enum\\USB\\Vid_0c45Pid_1060\\51489a8501?如果这个key已经存在.pnp manager则认为是一个以前就安装好驱动程序的设备.如果这个key不存在,pnp manager则认为是一个新设备,出现发现新硬件的提示.通知user mode要为这个设备选择一个驱动.?先看key存在的情况.?pnp manager会query他的resource和resource requirement.并且查询适当的arbiter和translator交给他们作仲裁.并分配适当的资源.资源分配完成了以后.pnp manager开始start这个新的设备.?首先是为其加载function device和filter device.?function driver 是由device key下面service字段指出来的?windows读取他.用他作为subkey的name去?current control set\\Services下面打开这个key?按照需要加载其driver的sys文件,创建driver object?而对于filter则有好些种?一类是专属于这个device的,另外一类是属于则device所在的class的?专属device的lower跟upper filters就在device key下面?而class的filter则是在class key的下面?在device key下面有一个classguid的value,pnp manager读取他?作为subkey?到?current control set\\control\\class下面去打开key?然后读取lower 跟upper filters..?当然这些filters本身的driver也会被加载进来?然后把他们的driver objects放到一个数组里面,先后顺序是?LowerDeviceFilters?LowerClassFilters?DeviceService?UpperDeviceFilters?UpperClassFilters?从上到下逐一调用其AddDevice函数?这样就算初步搭建完了这个新设备的device stack?接下来就会有其他的pnp irp发送.?比如filter resource requirement,query caps,start device等等?然后pnp manager为这个新搭建的device stack发送query bus relations 的irp,如果这个新的设备是个bus driver的话,他也会按照通知windows有新的设备连接在其上面.windows再重复以上的步骤.?回过来.如果instance key不存在.windows则为其创建这个instance key并通知user mode,user mode的pnp man
您可能关注的文档
最近下载
- DB34_T 4557-2023 城市道路智能交通管理设施运行维护规范.docx VIP
- 数控轧辊磨床学习课件.ppt VIP
- 2025年秋季新人教版PEP版3年级上册英语全册课件.pptx
- 硬笔正楷字帖.pdf VIP
- 黑龙江哈尔滨向阳66千伏变电站2号主变扩建输变电工程技术文档.docx VIP
- 黑龙江饶河小佳河66千伏变电站2号主变扩建工程-技术规范书.doc VIP
- 康复医学概论康复医学.pptx VIP
- 电工安全基本知识.pptx VIP
- 机器人伺服控制系统及应用技术-课件全套 孙巍伟 第1--10章 绪论、机器人本体 --- 机器人视觉伺服技术.pptx
- 中国古代史笔记(朱绍侯版本).pdf VIP
文档评论(0)